This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/46367] [4.6 Regression] ICE during cgraph edge cloning
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 15 Nov 2010 15:32:20 +0000
- Subject: [Bug tree-optimization/46367] [4.6 Regression] ICE during cgraph edge cloning
- Auto-submitted: auto-generated
- References: <bug-46367-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46367
--- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-15 15:28:44 UTC ---
The loop
#88 0x0000000000f9218f in cgraph_clone_inlined_nodes (e=0x7ffff315c750,
duplicate=1 '\001', update_original=0 '\000')
at /space/rguenther/src/svn/trunk/gcc/ipa-inline.c:306
306 cgraph_clone_inlined_nodes (e, duplicate, update_original);
(gdb) l
301 cgraph_propagate_frequency (e->callee);
302
303 /* Recursively clone all bodies. */
304 for (e = e->callee->callees; e; e = e->next_callee)
305 if (!e->inline_failed)
306 cgraph_clone_inlined_nodes (e, duplicate, update_original);
doesn't terminate but endlessly recurses. I can't see how it should work
in a cgraph cycle:
Considering inline candidate S::~S().
Considering S::~S() with 10 size
to be inlined into S::~S() in t.ii:7
Estimated growth after inlined into all callees is +4 insns.
Estimated badness is 13, frequency 0.78.
Badness calculcation for S::~S() -> S::~S()
growth 4, time 22-14, size 10-6
12: guessed profile. frequency 783, overall growth 4, benefit 61%,
divisor 4819
Performing recursive inlining on S::~S()
Inlining call of depth 1
Processing frequency S::~S()
Called by S::~S() that is normal or hot
Inlining call of depth 2
Processing frequency S::~S()
Called by S::~S() that is normal or hot
Processing frequency S::~S()
Called by S::~S() that is normal or hot
Processing frequency S::~S()
Called by S::~S() that is normal or hot
Processing frequency S::~S()
Called by S::~S() that is normal or hot
Processing frequency S::~S()
Called by S::~S() that is normal or hot
Processing frequency S::~S()
Called by S::~S() that is normal or hot
Processing frequency S::~S()
Node S::~S() promoted to unlikely executed.
Processing frequency S::~S()
Processing frequency S::~S()
Processing frequency S::~S()
Processing frequency S::~S()
Processing frequency S::~S()
Processing frequency S::~S()
Processing frequency S::~S()
...
Honza, please have a look.