https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86864
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org, | |rguenth at gcc dot gnu.org --- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- It's strange because the CFG looks fine in optimized dump: g (int b, int c, int d) { long int a.0_1; <bb 2> [local count: 1073741825]: if (b_5(D) > 0) goto <bb 3>; [50.00%] else goto <bb 5>; [50.00%] <bb 3> [local count: 1073741825]: switch (b_5(D)) <default: <L6> [75.00%], case 29: <L13> [25.00%], case 32: <L13> [25.00%], case 40: <L13> [25.00%], case 42: <L13> [25.00%], case 48: <L13> [25.00%]> <bb 4> [count: 0]: <L6>: __builtin_unreachable (); <bb 5> [local count: 1073312327]: # c_2 = PHI <1(2), 2(3)> <L13>: if (d_6(D) != 0) goto <bb 7>; [33.00%] else goto <bb 6>; [67.00%] <bb 6> [local count: 719119259]: a.0_1 = a; if (a.0_1 != 0) goto <bb 7>; [50.00%] else goto <bb 8>; [50.00%] <bb 7> [local count: 713752697]: f (); <bb 8> [local count: 1073312326]: if (c_2 == 1) goto <bb 9>; [20.24%] else goto <bb 10>; [79.76%] <bb 9> [local count: 217238415]: f (); [tail call] <bb 10> [local count: 1073312326]: return; I'm adding Jakub and Richi, they are more familiar with GIMPLE representation.