]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ipa-inline.c (inline_small_functions): Always update all calles after inlining.
authorJan Hubicka <jh@suse.cz>
Thu, 20 Oct 2011 12:18:56 +0000 (14:18 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 20 Oct 2011 12:18:56 +0000 (12:18 +0000)
* ipa-inline.c (inline_small_functions): Always update all calles after
inlining.

From-SVN: r180249

gcc/ChangeLog
gcc/ipa-inline.c

index e7c42e5a7431cc4c92a09f84f617b1d32adceaad..e07de320d7fe95385b78c1ad1d0be4e57aca7464 100644 (file)
@@ -1,3 +1,8 @@
+2011-10-19  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (inline_small_functions): Always update all calles after
+       inlining.
+
 2011-10-19  Jan Hubicka  <jh@suse.cz>
 
        PR bootstrap/50709
index 909b5ba29f3d31a5016d86d61b88542687749dda..f53f00174a8f0eb8121375b982593e4ee179d219 100644 (file)
@@ -1515,8 +1515,13 @@ inline_small_functions (void)
 
          /* We inlined last offline copy to the body.  This might lead
             to callees of function having fewer call sites and thus they
-            may need updating.  */
-         if (callee->global.inlined_to)
+            may need updating. 
+
+            FIXME: the callee size could also shrink because more information
+            is propagated from caller.  We don't track when this happen and
+            thus we need to recompute everything all the time.  Once this is
+            solved, "|| 1" should go away.  */
+         if (callee->global.inlined_to || 1)
            update_all_callee_keys (heap, callee, updated_nodes);
          else
            update_callee_keys (heap, edge->callee, updated_nodes);