Skip to content

Convert all FCalls with HELPER_METHOD_FRAME to QCalls #95695

Open
@jkotas

Description

@jkotas

Benefits:

  • Performance: QCalls are generally faster than FCalls with HELPER_METHOD_FRAME
  • Eliminate duplication: These are redundant mechanism. Once all of them are converted, we can eliminate the duplication.
  • Complexity of stackwalking algorithm: HELPER_METHOD_FRAMEs make the stackwalking algorithm with all its dependencies more complicated than it needs to be. (See nibblemapmacros do a linear scan #93550 for more context.)
    • We want to work towards unification of CoreCLR stackwalker and native AOT stackwalker. Native AOT has much simpler stackwalker and it does not have HELPER_METHOD_FRAMEs.

Work

List of JIT helpers that need the removal of explicit HMFs:

List of JIT helpers with implicit HMFs through a use of FCThrow.

Remove all remaining explicit calls to GCPoll (that is, FC_GC_POLL and FC_GC_POLL_RET):

The following clean-up can occur after all the above is complete:

  • Removal of any HELPER_METHOD_FRAME related infrastrcture in fcall.h and fcall.cpp
  • Update BoTR to remove description of the HELPER_METHOD_FRAME concept.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions