Commit e901811a by Jan Hubicka Committed by Jan Hubicka

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
parent 3cfa762b
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> 2009-02-06 Richard Guenther <rguenther@suse.de>
PR middle-end/38977 PR middle-end/38977
......
...@@ -1303,6 +1303,7 @@ try_inline (struct cgraph_edge *e, enum inlining_mode mode, int depth) ...@@ -1303,6 +1303,7 @@ try_inline (struct cgraph_edge *e, enum inlining_mode mode, int depth)
cgraph_node_name (e->caller)); cgraph_node_name (e->caller));
} }
if (e->inline_failed) if (e->inline_failed)
{
cgraph_mark_inline (e); cgraph_mark_inline (e);
/* In order to fully inline always_inline functions, we need to /* In order to fully inline always_inline functions, we need to
...@@ -1313,6 +1314,7 @@ try_inline (struct cgraph_edge *e, enum inlining_mode mode, int depth) ...@@ -1313,6 +1314,7 @@ try_inline (struct cgraph_edge *e, enum inlining_mode mode, int depth)
if (mode == INLINE_ALL || always_inline) if (mode == INLINE_ALL || always_inline)
cgraph_decide_inlining_incrementally (e->callee, mode, depth + 1); cgraph_decide_inlining_incrementally (e->callee, mode, depth + 1);
}
callee->aux = (void *)(size_t) callee_mode; callee->aux = (void *)(size_t) callee_mode;
return true; return true;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment