JIT: RBO's utilization of liberal VNs is illegal #102158
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone
The following program hits the assert when run with
DOTNET_JitNoCSE=1
.RBO eliminates the
y == k + 1
branch because it is dominated byc.X == k + 1
with the same liberal VN. However, this is not legal sincey
andc.X
evaluated in the dominating test may not have the same value under data races.The example requires
DOTNET_JitNoCSE
because otherwise CSE removes one of the loads ofc.X
, but naturally CSE could decide not to CSE these for any number of reasons (like register pressure).cc @dotnet/jit-contrib
The text was updated successfully, but these errors were encountered: