Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JIT: Optimize expansion of indir cell addresses for CFG #70491

Merged
merged 4 commits into from
Jun 13, 2022

Commits on Jun 9, 2022

  1. JIT: Optimize expansion of indir cell addresses for CFG

    On ARM64 it is expensive to materialize the address of an indirection
    cell since that requires multiple instructions. This is particular a
    problem when CFG is enabled where validation + call uses the indir cell
    twice. This changes the CFG logic to create a local in this case.
    
    We also were forcing the indir cell argument node into the register.
    This is not ideal for this particular case, so remove this logic and let
    LSRA deal with it. This also required fixing a bug where LSRA on ARM32
    would not properly kill the callee-saved indir cell register for R2R
    calls.
    
    Fix dotnet#65076
    jakobbotsch committed Jun 9, 2022
    Configuration menu
    Copy the full SHA
    1b7ff39 View commit details
    Browse the repository at this point in the history
  2. Fix GetIndirectionCellArgKind for delegates

    These are actual invocations of the Invoke method so they have the
    normal flags/entrypoints set, but we do not add indirection cells for
    them.
    jakobbotsch committed Jun 9, 2022
    Configuration menu
    Copy the full SHA
    8fc46d3 View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2022

  1. Revert ARM LSRA changes

    These cause some larger than expected regressions so will open a
    separate issue for it.
    jakobbotsch committed Jun 10, 2022
    Configuration menu
    Copy the full SHA
    6ef03b4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e24f203 View commit details
    Browse the repository at this point in the history