aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2011-10-20 14:18:56 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2011-10-20 12:18:56 +0000
commitf2aeb744a1029e8ca105c4f2ee5f479521810f9a (patch)
treeb8c06b50139cb3b2aa2b8a614a11d1976dcce990
parent51973b1e1fecff2bd1929437654c141425402d38 (diff)
downloadgcc-f2aeb744a1029e8ca105c4f2ee5f479521810f9a.zip
gcc-f2aeb744a1029e8ca105c4f2ee5f479521810f9a.tar.gz
gcc-f2aeb744a1029e8ca105c4f2ee5f479521810f9a.tar.bz2
ipa-inline.c (inline_small_functions): Always update all calles after inlining.
* ipa-inline.c (inline_small_functions): Always update all calles after inlining. From-SVN: r180249
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ipa-inline.c9
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e7c42e5..e07de32 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
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
* ipa-inline.c (inline_small_functions): Fix checking code to not make
effect on fibheap stability.
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 909b5ba..f53f001 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -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);