// This generates the following subgraph: /* // i: -10..4 if((i+min_jint)u<=max_jint){<-ThisisalwaystruebutnotfoldedbyC2 ... }else{ ... CastII(i-5,0..45)<-ReplacedbyTOPbecausei-5rangeis-15..-1butstillconsideredreachablebyC2althoughitisdeadcode ... }
*/ publicstaticvoid test2() { for (int i = 5; i > -10; i--) { switch (i) { case0: case4: case10: case20: case30: case40: case50: case100:
field = 42; break;
}
}
}
// This generates the following subgraph: /* // i: -20..0 if(i!=0){ // i: -20..-1 if(i<0){<-ThisisalwaystruebutnotfoldedbyC2 // Fall through }else{ ... CastII(i-1,0..4)<-ReplacedbyTOPbecausei-1rangeis-21..-1butstillconsideredreachablebyC2althoughitisdeadcode ... } }else{ StoreI<-Duetothisadditionalstoreon,IfNode::has_shared_regionreturnsfalseandthefoldcomparesoptimizationdoesnotkickin }
*/ publicstaticvoid test3() { for (int i = 5; i > -20; i -= 5) { switch (i) { case0: case10: case20: case30: case40: case50: case60: case100:
field = 42; break;
}
}
}
// This generates the following subgraph: /* // i: -20..0 if(i!=0){ // i: -20..-1 if(iu<101){<-ThisisalwaysfalsebutnotfoldedbyC2becauseCmpUisnothandled CastII(i-1,0..49)<-ReplacedbyTOPbecausei-1rangeis-21..-1butstillconsideredreachablebyC2althoughitisdeadcode }else{ ... } }else{ ... }
*/ publicstaticvoid test4() { int local = 0; for (int i = 5; i > -20; i -= 5) { switch (i) { case0: case10: case20: case30: case40: case50: case100:
local = 42; break;
}
}
}
// This generates the following subgraph: /* // i: 0..20 if(i!=20){ // i: 0..19 if((i-20)u<281){<-ThisisalwaysfalsebutnotfoldedbyC2becausethetwoifscomparedifferentvalues CastII(i-21,0..49)<-ReplacedbyTOPbecausei-21rangeis-21..-1butstillconsideredreachablebyC2althoughitisdeadcode }else{ ... } }else{ ... }
*/ publicstaticvoid test5() { int local; for (int i = 25; i > 0; i -= 5) { switch (i) { case20: case30: case40: case50: case60: case70: case300:
local = 42; break;
}
}
}
// This generates the following subgraph: /* // i: 0..20 if((i+10)!=30){ // i: 0..19 if((i-20)u<271){<-ThisisalwaysfalsebutnotfoldedbyC2becausethetwoifscomparedifferentvalues CastII(i-21,0..4)<-ReplacedbyTOPbecausei-21rangeis-21..-1butstillconsideredreachablebyC2althoughitisdeadcode }else{ ... } }else{ ... }
*/ publicstaticvoid test6() { int local; for (int i = 25; i > 0; i -= 5) { switch (i + 10) { case30: case40: case50: case60: case70: case80: case300:
local = 42; break;
}
}
}
publicstaticvoid main(String[] args) { for (int i = 0; i < 50_000; ++i) {
test0();
test1();
test2();
test3();
test4();
test5();
test6();
}
}
}
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.10Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-10-01)
¤