https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104156
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |12.0 Last reconfirmed| |2022-01-21 Version|unknown |12.0 Ever confirmed|0 |1 Keywords| |needs-bisection Status|UNCONFIRMED |NEW Component|middle-end |tree-optimization --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed. -O2 -funswitch-loops is enough to produce the failure. and yes the first difference in the IR (minus the debug statements) between -g and -g0 is 150t.unswitch . --- t.gk.c.150t.unswitch 2022-01-21 07:55:45.860933512 +0000 +++ t.c.150t.unswitch 2022-01-21 07:55:45.623933488 +0000 @@ -1,6 +1,30 @@ ;; Function main (main, funcdef_no=1, decl_uid=2004, cgraph_uid=2, symbol_order=5) (executed once) + +SSA replacement table +N_i -> { O_1 ... O_j } means that N_i replaces O_1, ..., O_j + +.MEM_24 -> { .MEM_42 } +Incremental SSA update started at block: 2 +Number of blocks in CFG: 36 +Number of blocks to update: 5 ( 14%) Without the debug statements unswitch does something.