Skip to content

Consider passing enregisterLocalVars as a template argument to LinearScan #82848

Closed

Description

@kunalspathak

Today, we check for enregisterLocalVars at lot of hot code in LinearScan and probably templatizing it would be better.

  • Evaluate the impact on binary size if we do it. If it increases the size significantly, extract out the checks for enregisterLocalVars out of some of the loops or add special paths for it.
  • Evaluate what is the TP gain with it.

Activity

  1. ghost added
    area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
    on Mar 1, 2023
  2. ghost added
    untriagedNew issue has not been triaged by the area owner
    on Mar 1, 2023
  3. self-assigned this
    on Mar 1, 2023
  4. removed
    untriagedNew issue has not been triaged by the area owner
    on Mar 11, 2023
  5. added
    needs-further-triageIssue has been initially triaged, but needs deeper consideration or reconsideration
    on Apr 13, 2023
  6. JulieLeeMSFT commented on Apr 13, 2023

    @JulieLeeMSFT
    Member

    @kunalspathak is this going to be .NET 8 work?

  7. kunalspathak commented on Apr 13, 2023

    @kunalspathak
    ContributorAuthor

    Most likely. Let us keep it in .NET 8 for now and we can reevaluate in next month or so.

  8. added this to the 8.0.0 milestone on Apr 13, 2023
  9. kunalspathak commented on Apr 20, 2023

    @kunalspathak
    ContributorAuthor

    Here is the list of methods that has the checks for if(enregisterLocalVars)

    • recordVarLocationsAtStartOfBB : Called from codegen that cannot access private enregisterLocalVars.
    • isRegCandidate <-- no change in size
    • identifyCandidates <-- no change in size
    • loop and much of the code inside identifyCandidates <-- no change in size
    • initVarRegMap <-- no change in size
    • processBlockEndAllocation <-- no change in size
    • processBlockStartLocations <-- no change in size
    • much of the code in resolveRegisters() <-- 1KB increase
    • isContainableMemoryOp : Not worth doing.
    • buildKillPositionsForNode : Not worth doing.
    • buildIntervals <-- 3KB size increase. Will re-evaluate.
  10. ghost added
    in-prThere is an active PR which will close this issue when it is merged
    on Apr 21, 2023
  11. removed
    needs-further-triageIssue has been initially triaged, but needs deeper consideration or reconsideration
    on Apr 30, 2023
  12. ghost removed
    in-prThere is an active PR which will close this issue when it is merged
    on May 12, 2023
  13. ghost locked as resolved and limited conversation to collaborators on Jun 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions