Skip to content

x86: Assertion failed '!"Too many unreachable block removal loops"' during 'Global local var liveness' #70786

Description

@EgorBo

Fuzzlyn found it in #70749

Reproduces on 32bit alt jit x86

// Generated by Fuzzlyn v1.5 on 2022-06-15 12:29:54// Run on X86 Windows// Seed: 5780366890582234972// Reduced from 39.2 KiB to 2.6 KiB in 00:03:56// Hits JIT assert in Release:// Assertion failed '!"Too many unreachable block removal loops"' in 'Program:M0()' during 'Global local var liveness' (IL size 257; hash 0xaf50ff37; FullOpts)// // File: D:\a\_work\1\s\src\coreclr\jit\fgopt.cpp Line: 747// publicinterfaceI0{}publicinterfaceI1{}publicstructS0:I0,I1{publicintF0;publicsbyteF1;publicbyteF2;publicboolF3;publicbyteF4;publicsbyteF5;publicbyteF6;publicuintF7;publiculongF8;publicbyteF9;publicS0(intf0,sbytef1,bytef2,boolf3,bytef4,sbytef5,bytef6,uintf7,ulongf8,bytef9):this(){F0=f0;F1=f1;F2=f2;F3=f3;F4=f4;F5=f5;F6=f6;F7=f7;F8=f8;F9=f9;}}publicclassProgram{publicstaticI0s_3;publicstaticS0s_5;publicstaticlongs_8;publicstaticshorts_10;publicstaticint[]s_12;publicstaticI1s_21;publicstaticvoidMain(){M0();}publicstaticvoidM0(){intvar0=default(int);uintvar1=default(uint);boolvar43=default(bool);for(intvar6=0;var6<1;var6++){return;}try{var0=-var0;}finally{I1vr2=s_5;shortvr3=default(short);if(0<vr3){varvr0=newS0(0,0,0,true,1,0,0,0,0,0);}else{shortvar10=(short)var1;}}System.Console.WriteLine(var0);try{s_8=s_5.F4;}finally{varvr1=newS0(0,0,0,false,1,0,0,0,0,0);}try{var0<<=s_10;}finally{s_3=newS0(0,0,0,true,0,0,0,0,0,0);}s_8=0;try{var0--;}finally{var1=0;}S0var17=newS0(0,0,0,false,0,-1,0,0,0,0);try{System.Console.WriteLine(1);}finally{intvar14=s_12[0];}try{M2();}finally{System.Console.WriteLine(var43);}try{M1();}finally{s_21=var17;}}publicstaticlongM1(){return0;}publicstaticshortM2(){returndefault(short);}}

cc @jakobbotsch in case if you already filed this

category:implementation
theme:flowgraph
skill-level:intermediate
cost:small
impact:small

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions