]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
PR tree-optimization/38844
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Feb 2009 16:47:39 +0000 (16:47 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Feb 2009 16:47:39 +0000 (16:47 +0000)
* ipa-inline.c (try_inline): Stop inlining recursion when edge
is already inlined.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143985 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/ipa-inline.c

index 849f101d6e41795c52bcb42bd38b52fedb33c18b..f7ed966138f15490faaabedcdd60dce5a6012c83 100644 (file)
@@ -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
index 0656d798bc21c03936ac87b87b31f110e736a8c9..e6b956c8106df33a000e4ddc60655a68e15e5e2c 100644 (file)
@@ -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;
 }