https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119167
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |hubicka at gcc dot gnu.org, | |rguenth at gcc dot gnu.org Ever confirmed|0 |1 Last reconfirmed| |2025-03-10 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- So we do split some edges via #0 split_edge (e=<edge 0x7ffff69ee3f0 (5 -> 6)>) at ../../src/gcc/gcc/cfghooks.cc:657 #1 0x0000000001131f89 in force_single_succ_latches () at ../../src/gcc/gcc/cfgloopmanip.cc:1707 #2 0x00000000015c6db6 in apply_loop_flags (flags=15) at ../../src/gcc/gcc/loop-init.cc:71 #3 0x00000000015c6eea in loop_optimizer_init (flags=15) at ../../src/gcc/gcc/loop-init.cc:125 #4 0x00000000014e0085 in analyze_function_body ( node=<cgraph_node * 0x7ffff681a220 "main"/4>, early=false) at ../../src/gcc/gcc/ipa-fnsummary.cc:2887 #5 0x00000000014e2934 in compute_fn_summary ( node=<cgraph_node * 0x7ffff681a220 "main"/4>, early=false) at ../../src/gcc/gcc/ipa-fnsummary.cc:3476 #6 0x00000000014e67d8 in inline_analyze_function ( node=<cgraph_node * 0x7ffff681a220 "main"/4>) generally we only execute passes providing some PROP_*, but also IPA passes in general it seems. In particular we only skip GIMPLE_PASS: static bool should_skip_pass_p (opt_pass *pass) { ... if (pass->type == GIMPLE_PASS && pass->properties_provided != 0) return false; IMO ipa-fnsummary might want to use AVOID_CFG_MANIPULATIONS.