JIT: Pick some low-hanging fruit in physical promotion throughput (#86792)
authorJakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
Fri, 26 May 2023 19:39:48 +0000 (21:39 +0200)
committerGitHub <noreply@github.com>
Fri, 26 May 2023 19:39:48 +0000 (21:39 +0200)
commit87d6bbaa59aeeb9bfdca08a01e12bd87e4f2fbdd
tree5153685d2ce6226e2472cd8dd643462030a3e08f
parent0ad8b50f9cae6f1a227cf4c69cf10496c04482c6
JIT: Pick some low-hanging fruit in physical promotion throughput (#86792)

* Skip any IR traversals entirely if there are no candidates locals for
  physical promotion
* During accounting, do a quick pre-check for candidates in each
  statement using the linked locals list, before doing the tree walk.

Result:
```
Collection                                       PDIFF
aspnet.run.windows.x64.checked.mch              -0.59%
benchmarks.run.windows.x64.checked.mch          -0.65%
benchmarks.run_pgo.windows.x64.checked.mch      -0.65%
benchmarks.run_tiered.windows.x64.checked.mch   -0.65%
coreclr_tests.run.windows.x64.checked.mch       -0.66%
libraries.crossgen2.windows.x64.checked.mch     -0.61%
libraries.pmi.windows.x64.checked.mch           -0.63%
libraries_tests.pmi.windows.x64.checked.mch     -0.68%
```
src/coreclr/jit/promotion.cpp
src/coreclr/jit/promotion.h