Skip to content

[LSRA] Further tuning of preferencing is needed #11959

Closed

Description

@CarolEidt

LSRA preferencing was improved with dotnet/coreclr#19429, but additional tuning is needed.
On x86, the Span.IndexerBench benchmark, the changes caused additional spill in some key methods due to different allocation choices. Specifically:

  • Span.IndexerBench:TestSameIndex1(struct,int,int):ubyte - V02 gets spilled
  • Span.IndexerBench:TestCoveredIndex2(struct,int,int):ubyte - V02 gets spilled
  • Span.IndexerBench:TestIndexer6(struct):ubyte - V02 gets spilled
  • Span.IndexerBench:TestCoveredIndex3(struct,int,int):ubyte - V04 gets spilled

Another area to investigate (probably independent from the above), is that it seems logical that RefPosition::getRangeEndRef() should only return 'nextRefPosition' if it is a lastUse and otherwise return lastRefPosition, but that tends to excessively lengthen the range for heuristic purposes. Another option might be to iterate to the next lastUse, but that might have excess throughput impact.

category:cq
theme:register-allocator
skill-level:expert
cost:large

Activity

  1. transferred this issue fromdotnet/coreclron Jan 31, 2020
  2. added this to the Future milestone on Jan 31, 2020
  3. dotnet-policy-service commented on Apr 2, 2024

    @dotnet-policy-service
    Contributor

    Due to lack of recent activity, this issue has been marked as a candidate for backlog cleanup. It will be closed if no further activity occurs within 14 more days. Any new comment (by anyone, not necessarily the author) will undo this process.

    This process is part of our issue cleanup automation.

  4. dotnet-policy-service commented on Apr 17, 2024

    @dotnet-policy-service
    Contributor

    This issue will now be closed since it had been marked no-recent-activity but received no further activity in the past 14 days. It is still possible to reopen or comment on the issue, but please note that the issue will be locked if it remains inactive for another 30 days.

  5. removed this from the Future milestone on Apr 17, 2024
  6. locked and limited conversation to collaborators on May 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions