Skip to content

JIT: overview of proposed local var reference count changes #10702

@AndyAyersMS

Description

@AndyAyersMS

This issue proposes a series of changes to reduce the overhead and increase the fidelity of local variable reference counts in the jit. The main idea is to get rid of the current costly and buggy incremental count maintenance in favor of batch updates that are done just before accurate ref counts are needed.

See discussion in #8715 for background.

Expected impact is:

  • 4-5% improvement in tier0 / minopts / debug throughput
  • minimal impact to optimized jit throughput
  • smaller frame sizes in some cases where reference counts are currently inflated
  • removal of workarounds to artificially inflate reference counts to avoid asserts

The more accurate reference counts and weighted counts are likely to cause widespread codegen diffs. Hopefully these will mostly be improvements, but some regressions are certainly possible.

Proposed steps are:

cc @dotnet/jit-contrib

category:implementation
theme:ir
skill-level:expert
cost:large

Metadata

Metadata

Assignees

Labels

JitThroughputCLR JIT issues regarding speed of JIT itselfarea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions