re PR tree-optimization/38844 (deadlock with __attribute__((always_inline)) at -O1 and above)
PR tree-optimization/38844 * ipa-inline.c (try_inline): Stop inlining recursion when edge is already inlined. From-SVN: r143985
This commit is contained in:
parent
3cfa762bf0
commit
e901811a8b
2 changed files with 15 additions and 7 deletions
|
@ -1,3 +1,9 @@
|
|||
2009-02-06 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
PR tree-optimization/38844
|
||||
* ipa-inline.c (try_inline): Stop inlining recursion when edge
|
||||
is already inlined.
|
||||
|
||||
2009-02-06 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/38977
|
||||
|
|
|
@ -1303,16 +1303,18 @@ try_inline (struct cgraph_edge *e, enum inlining_mode mode, int depth)
|
|||
cgraph_node_name (e->caller));
|
||||
}
|
||||
if (e->inline_failed)
|
||||
cgraph_mark_inline (e);
|
||||
{
|
||||
cgraph_mark_inline (e);
|
||||
|
||||
/* In order to fully inline always_inline functions, we need to
|
||||
recurse here, since the inlined functions might not be processed by
|
||||
incremental inlining at all yet.
|
||||
/* In order to fully inline always_inline functions, we need to
|
||||
recurse here, since the inlined functions might not be processed by
|
||||
incremental inlining at all yet.
|
||||
|
||||
Also flattening needs to be done recursively. */
|
||||
Also flattening needs to be done recursively. */
|
||||
|
||||
if (mode == INLINE_ALL || always_inline)
|
||||
cgraph_decide_inlining_incrementally (e->callee, mode, depth + 1);
|
||||
if (mode == INLINE_ALL || always_inline)
|
||||
cgraph_decide_inlining_incrementally (e->callee, mode, depth + 1);
|
||||
}
|
||||
callee->aux = (void *)(size_t) callee_mode;
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue