-
Notifications
You must be signed in to change notification settings - Fork 4.5k
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: Pick some low-hanging fruit in physical promotion throughput #86792
JIT: Pick some low-hanging fruit in physical promotion throughput #86792
Conversation
* 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: Diff JIT options: JitEnablePhysicalPromotion=1 FullOpts (+0.25% to +0.82%) |Collection|PDIFF| |---|--:| |aspnet.run.windows.x64.checked.mch |+0.82%| |benchmarks.run.windows.x64.checked.mch |+0.35%| |benchmarks.run_pgo.windows.x64.checked.mch |+0.58%| |benchmarks.run_tiered.windows.x64.checked.mch |+0.59%| |coreclr_tests.run.windows.x64.checked.mch |+0.25%| |libraries.crossgen2.windows.x64.checked.mch |+0.40%| |libraries.pmi.windows.x64.checked.mch |+0.54%| |libraries_tests.pmi.windows.x64.checked.mch |+0.32%|
Process scalar uses via the linked list and struct uses with the tree walk. The tree walk can skip any entire subtree without GTF_CALL/GTF_ASG. Diff JIT options: JitEnablePhysicalPromotion=1 FullOpts (+0.25% to +0.85%) |Collection |PDIFF | |--- | --:| |aspnet.run.windows.x64.checked.mch |+0.85%| |benchmarks.run.windows.x64.checked.mch |+0.36%| |benchmarks.run_pgo.windows.x64.checked.mch |+0.61%| |benchmarks.run_tiered.windows.x64.checked.mch |+0.62%| |coreclr_tests.run.windows.x64.checked.mch |+0.25%| |libraries.crossgen2.windows.x64.checked.mch |+0.40%| |libraries.pmi.windows.x64.checked.mch |+0.55%| |libraries_tests.pmi.windows.x64.checked.mch |+0.33%|
This reverts commit a5ed498. This is worse than the existing approach.
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue Details
|
cc @dotnet/jit-contrib PTAL @EgorBo
Throughput cost of enabling this by default looks reasonable, but I definitely need to study more cases, especially on linux-x64 and win-x86. Hopefully benchmarks will help to prioritize where to look. |
Agree 👍 |
physical promotion
statement using the linked locals list, before doing the tree walk.