-
Notifications
You must be signed in to change notification settings - Fork 5.3k
JIT: block local constant propagation of handles when compiling with … #1593
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: block local constant propagation of handles when compiling with … #1593
Conversation
…relocs This gives local constant prop the same behavior as value-number-based constant prop; both now block handle propagation when the jit must generate relocs (R2R), to ensure that handle references appear only in simple instruction forms like movs. Prerequisite to dotnet#1309, which can enable such propagation.
|
Semantic change is in No diffs for x86/x64, with/without crossgen. cc @dotnet/jit-contrib |
CarolEidt
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice - thanks!
briansull
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks Good.
| unsigned lclNum = tree->AsLclVarCommon()->GetLclNum(); | ||
| const unsigned lclNum = tree->GetLclNum(); | ||
|
|
||
| #if FEATURE_ANYCSE |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We will probably want to delete all occurrences of FEATURE_ANYCSE as some point in the future.
|
Failures all seem to be infrastructure related: is this worth retrying? Reporting? |
|
Everything has passed on re-run so am going to merge. |
Assertion prop uses `O2K_CONST_INT` for handles, even on 64 bit targets. Make suitable adjustments to the handle propagation blocking logic. Problem was introduced in dotnet#1593 and exposed by dotnet#1309. Fixes dotnet#1777
…relocs
This gives local constant prop the same behavior as value-number-based constant
prop; both now block handle propagation when the jit must generate relocs (R2R),
to ensure that handle references appear only in simple instruction forms like movs.
Prerequisite to #1309, which can enable such propagation.