-
Notifications
You must be signed in to change notification settings - Fork 5.3k
[TODO-List-Cleanup] Refactor fgDebugCheckFlags
#62948
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
[TODO-List-Cleanup] Refactor fgDebugCheckFlags
#62948
Conversation
|
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsThis change does away with one more case of custom traversal logic. Semantic changes have mostly been avoided, with some exceptions:
Note: the Also renamed
|
8bc8fac to
2d98637
Compare
41aeb3c to
b357b78
Compare
|
@dotnet/jit-contrib |
b357b78 to
541904d
Compare
This change does away with one more case of custom traversal logic. Semantic changes have mostly been avoided, with some exceptions: 1) Dead checking of GLOB_REF on ADDR was dropped 2) Dead checking of GLOB_REF on statics was commented out 3) REVERSE_OPS checking was strengthened 4) Flag propagation for calls was also strengthened Note: the GLOB_REF checking was dead because we do not check for "extra" GLOB_REF flags, and the code in question was using the "actual" "treeFlags". Also renamed "treeFlags" to "actualFlags" and "chkFlags" to "expectedFlags" as the handle checking code was apparently confused by the (somewhat unobvious) names and got them swapped.
The code in question was copying GT_LCL_VAR flags to GT_CNS_INT nodes, which is dangerous and not necessary. There is no need to copy the flags in case we didn't create a new constant node as the code under "DONE:" already does that. Found by the new checking code for GTF_REVERSE_OPS.
541904d to
f3dfd94
Compare
AndyAyersMS
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.
LGTM. Thanks!
This change does away with one more case of custom traversal logic.
Semantic changes have mostly been avoided, with some exceptions:
GLOB_REFonADDRwas droppedGLOB_REFon statics was commented outREVERSE_OPSchecking was strengthenedNote: the
GLOB_REFchecking was dead because we do not check for "extra" GLOB_REF flags, and the code in question was using the "actual"treeFlags.Also renamed
treeFlagstoactualFlagsandchkFlagstoexpectedFlagsas the handle checking code was apparently confused by the (somewhat unobvious) names and got them swapped.No diffs.