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.