Fix 1176647: Jit does invalid reordering of left and right side
This bug occurs in the Lowering of the code for a compare, where op1 is an indirection, and op2 is a call. It chooses to make op1 "contained" (i.e. do the load as part of the compare op), but this is invalid because the call may modify op1. This also fixes a similar issue with RMW operators (e.g. +=). Fixing this causes numerous regressions (a few improvements, due to keeping fewer things live across the call), but they look valid - that is, they are a similar case of delaying a load past a call. [tfs-changeset: 1480705] Commit migrated from https://github.com/dotnet/coreclr/commit/f612e01198b00d6ee2a5234dc0101312585b80c1
Showing
想要评论请 注册 或 登录