Uh oh!
There was an error while loading. Please reload this page.
Introduce GenTreeDebugOperKind - #64498
Conversation
ghost
commented
Jan 29, 2022
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsRecently, I've compressed all "oper kinds" into an It also cleans up Diffs are not expected.
|
There was a problem hiding this comment.
It would have been possible to make the values here part of GenTreeOperKind, but I think having a separate enum is clearer overall.
There was a problem hiding this comment.
We also have "early HIR" in the compiler, i. e. HIR before morph: GT_FIELD, GT_PUTARG_TYPE, GT_RET_EXPR, GT_RUNTIMELOOKUP, GT_CNS_STR, GT_FTN_ADDR, GT_INDEX, so something like DBK_EHIR can now be easily added, if people feel like it is valuable (I personally do not see a lot of value).
SingleAccretion
commented
Jan 30, 2022
@dotnet/jit-contrib |
To track invariants related to opers in asserts without increasing the size of the primary oper kind table. Some shuffling of the oper table to make it look better.
Put all OperIsIdir opers together, fix up formatting, move opers around to more logical places.
There is not a lot of point in this being a "release" oper kind, as it is really only useful for debug checks.
AndyAyersMS
commented
Feb 10, 2022
Looks good to me, but want to give the rest @dotnet/jit-contrib one last chance to weigh in... |
Recently, I've compressed all "oper kinds" into an
unsigned char, however, that meant all 8 bits were taken, while not all of the kinds are actually needed in Release builds. This change fixes that by introducing another, DEBUG-only, type that serves the same purpose -GenTreeDebugOperKindand frees 2 bits (GTK_EXOPrequires a bit more work) in the process. It also introduces a new "kind" for opers that should not appear in HIR -DBK_NOTHIR, counterpart toDBK_NOTLIR.It also cleans up
gtlist.ha little by getting rid of redundant parenthesis and moving opers around to more logical places. This speeds upOperIsIndirby a good margin.No diffs.