You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckLoopTable: loop table not valid
*************** Starting PHASE Compute edge weights (2, false)
-- not optimizing or no profile data, so not computing edge weights
*************** Finishing PHASE Compute edge weights (2, false) [no changes]
*************** Starting PHASE Stress gtSplitTree
In gtSplitTree we end up getting:
lvaGrabTemp returning 239 (V239 rat5) called for Spilling to split statement for tree.
Splitting STMT00030 at [002000]
Splitting STMT00031 at [000127]
Splitting STMT00217 at [000129]
And at the end of gtSplitTree in Trees after Stress gtSplitTree we have:
So between STMT00031 and STMT00217 we've introduced a new STMT00323 which contains the comma from STMT00217. We've somehow lost COMMA 000124, it's actually nowhere in the "after split tree" contents, but I would have maybe expected it to be between STMT00030 and STMT00031 based on how the other split happened.
Activity
tannergooding commentedon Mar 13, 2023
This looks unrelated to #82731. The EVEX logic is off without a special opt-in and the test in question has no SIMD logic.
It looks like this might instead be related to the new
gtSplitTreefeature - CC. @jakobbotschIn particular, we have
Trees after Update flow graph opt pass:We then have:
In
gtSplitTreewe end up getting:And at the end of
gtSplitTreeinTrees after Stress gtSplitTreewe have:So between
STMT00031andSTMT00217we've introduced a newSTMT00323which contains the comma fromSTMT00217. We've somehow lostCOMMA 000124, it's actually nowhere in the "after split tree" contents, but I would have maybe expected it to be betweenSTMT00030andSTMT00031based on how the other split happened.jakobbotsch commentedon Mar 13, 2023
@tannergooding What node is it asserting on?
[000124]was just removed because it is a location and it has no side effects.Maybe the
ARR_ADDRnode causes the problem since it is meant as an annotation, so I'm not sure how freely we can move it around.tannergooding commentedon Mar 13, 2023
It's asserting on 000124 because its finding the comma as part of validating LIR immediately after rationalization
Rationalization itself appears to not hit the comma due to the splitting that happens.
jakobbotsch commentedon Mar 13, 2023
Ah, then the problem is that we are improperly rethreading the nodes after the splitting, rationalization should not be seeing that node.
JIT: Add missing 'MadeChanges = true' in gtSplitTree
JIT: Add missing 'MadeChanges = true' in gtSplitTree (#83360)