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.

Reply via email to