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
{{ message }}
Repository navigation
JIT: Loop hoisting is overly-conservative with helper calls #6553
Loop hoisting has code to avoid illegally re-ordering side-effects, which includes a check for calls that is overly-general. The check looks at the GTF_CALL flag, which (A) will be set for the entire expression containing a call as a sub-expression (which is unnecessary because this code is walking the whole tree), and (B) doesn't distinguish non-side-effecting helper calls, like we do in value-numbering and in the code just above that identifies hoistable calls. This blocks hoisting of the m_arr accesses (because of the GetStaticBase helper call that precedes them) in the following code, even with a fix for #6552 in place:
Activity
Recognize mod-free helper calls in loop hoisting
Recognize mod-free helper calls in loop hoisting
Recognize mod-free helper calls in loop hoisting
Recognize mod-free helper calls in loop hoisting
Recognize mod-free helper calls in loop hoisting
Recognize mod-free helper calls in loop hoisting