https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65076
--- Comment #19 from Richard Biener <rguenth at gcc dot gnu.org> --- I've meanwhile disabled pass_chkp_instrumentation_passes by default. The fixup_cfg in pass_build_ssa_passes doesn't do anything on tramp3d (and bootstrap/testing shows no issue removing it either). Adding a local_pure_const to the end of build_ssa_passes unfortunately makes us ICE in cgraph node verification during early inlining (we have a dangling call-stmt without a BB on a cgraph edge). Not sure how that happens as we fixup the cfg and rebuild cgraph edges before early inlining. Looks like re-building cgraph edges fixes that. This brings down the number of clobbers and stmts to 4.9 level. Index: gcc/passes.def =================================================================== --- gcc/passes.def (revision 221660) +++ gcc/passes.def (working copy) @@ -54,10 +54,12 @@ along with GCC; see the file COPYING3. NEXT_PASS (pass_build_ssa_passes); PUSH_INSERT_PASSES_WITHIN (pass_build_ssa_passes) NEXT_PASS (pass_fixup_cfg); + NEXT_PASS (pass_rebuild_cgraph_edges); NEXT_PASS (pass_init_datastructures); NEXT_PASS (pass_build_ssa); NEXT_PASS (pass_ubsan); NEXT_PASS (pass_early_warn_uninitialized); + NEXT_PASS (pass_local_pure_const); POP_INSERT_PASSES () NEXT_PASS (pass_chkp_instrumentation_passes); as opposed to the also possible patch (which doesn't change anything but compile-time): Index: gcc/passes.def =================================================================== --- gcc/passes.def (revision 221657) +++ gcc/passes.def (working copy) @@ -53,7 +53,6 @@ along with GCC; see the file COPYING3. NEXT_PASS (pass_ipa_chkp_early_produce_thunks); NEXT_PASS (pass_build_ssa_passes); PUSH_INSERT_PASSES_WITHIN (pass_build_ssa_passes) - NEXT_PASS (pass_fixup_cfg); NEXT_PASS (pass_init_datastructures); NEXT_PASS (pass_build_ssa); NEXT_PASS (pass_ubsan);