-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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: Remove GTF_IND_INVARIANT
and GTF_IND_NONFAULTING
flags checking
#104976
Conversation
These flags are strictly optimizations. Having them required to be set for certain indirs based on context of the operand introduces IR invariants that are annoying to work with since it suddenly becomes necessary for all transformations to consider "did we just introduce this IR shape?". Instead, handle these patterns during morph as the optimization it is and remove the strict flags checking from `fgDebugCheckFlags`.
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
cc @dotnet/jit-contrib Any objections? |
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.
I personally fully support per discussion in discord
Can this be merged? I'm hitting the issue in another PR and would like to get it unblocked. |
@hez2010 I want to give the rest of the JIT team a chance to comment on this before merging it. For now you can simply merge this PR into your own to unblock it. |
These flags are strictly optimizations. Having them required to be set for certain indirs based on context of the operand introduces IR invariants that are annoying to work with since it suddenly becomes necessary for all transformations to consider "did we just introduce this IR shape?". Instead, handle these patterns during morph as the optimization it is and remove the strict flags checking from
fgDebugCheckFlags
.Also fix
HandleKindDataIsInvariant
which returned true in some questionable cases, and remove some questionable indir flags that morph was setting forGTF_ICON_OBJ_HDL
.