https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106210
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- By using the dump file: -fdump-rtl-pro_and_epologue You will see if it was shrink wrapped (which it does in GCC 5.x): Performing shrink-wrapping. While the full dump in GCC 6 has: Attempting shrink-wrapping optimization. Block 2 needs the prologue. Block 4 needs the prologue. After wrapping required blocks, PRO is now 2 Avoiding non-duplicatable blocks, PRO is now 2 Bumping back to anticipatable blocks, PRO is now 2 Here is the part of the dump for GCC 5 which shows the full thing: Attempting shrink-wrapping optimization. insn 6: replaced reg 1 with 0 rescanning insn with uid = 6. Found candidate edge for shrink-wrapping, 2->4. Performing shrink-wrapping. changing bb of uid 60 unscanned insn Duplicating bb 5 to bb 6, 0 active insns. scanning new insn with uid = 64. Removing jump 48.