From: Jan Hubicka Date: Fri, 6 Feb 2009 16:47:39 +0000 (+0100) Subject: re PR tree-optimization/38844 (deadlock with __attribute__((always_inline)) at -O1... X-Git-Tag: releases/gcc-4.4.0~629 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e901811a8be42e9c292324550c84be46d4f27e4c;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 849f101d6e41..f7ed966138f1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-02-06 Jan Hubicka + + PR tree-optimization/38844 + * ipa-inline.c (try_inline): Stop inlining recursion when edge + is already inlined. + 2009-02-06 Richard Guenther PR middle-end/38977 diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 0656d798bc21..e6b956c8106d 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -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; }