-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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: move runtime lookup expansion to lower #35551
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone
Comments
erozenfeld
added
the
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
label
Apr 28, 2020
Dotnet-GitSync-Bot
added
the
untriaged
New issue has not been triaged by the area owner
label
Apr 28, 2020
58 tasks
AndyAyersMS
removed
the
untriaged
New issue has not been triaged by the area owner
label
May 6, 2020
@erozenfeld marking this as future; let me know if you think we should try to implement this in 5.0. |
ghost
added
the
in-pr
There is an active PR which will close this issue when it is merged
label
Feb 4, 2023
ghost
removed
the
in-pr
There is an active PR which will close this issue when it is merged
label
Mar 14, 2023
ghost
locked as resolved and limited conversation to collaborators
Apr 14, 2023
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
This is a follow-up to #341.
The jit currently expands runtime lookups in the importer (
impRuntimeLookupToTree
). The optimal expansion requires introducing control flow either viaGT_QMARK
or viaIndirectCallTransformer
.The tail call via helpers mechanism introduced in #341 also needs to insert runtime lookups. The expansion of tail calls via helpers happens in morph and it's impossible to change control flow there the way it's done in the importer. Because of that the runtime lookups introduced in morph use the slower helper call expansion:
runtime/src/coreclr/src/jit/morph.cpp
Lines 8032 to 8040 in e1ffadd
The suggested solution is to move the expansion of runtime lookups to lower so that both the importer and morph can just create and insert a new node representing a runtime lookup and have lower expand it in an optimal way. This will involve teaching optimization phases (e.g., value numbering) about the new runtime lookup node.
category:cq
theme:helpers
skill-level:intermediate
cost:medium
The text was updated successfully, but these errors were encountered: