aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-04-18 01:42:04 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2010-04-17 23:42:04 +0000
commit6a8cd10005d9094be78c13141977d0e8627e3d7d (patch)
tree2d37199fb8c8b1a205f0f303bf12665aa8a5ec98 /gcc
parent6c559604a805d701d36659678a91dd3934c72f54 (diff)
downloadgcc-6a8cd10005d9094be78c13141977d0e8627e3d7d.zip
gcc-6a8cd10005d9094be78c13141977d0e8627e3d7d.tar.gz
gcc-6a8cd10005d9094be78c13141977d0e8627e3d7d.tar.bz2
* ipa-inline.c (cgraph_early_inlining): Handle flattening too.
From-SVN: r158477
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/ipa-inline.c11
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3906f65..addc094 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2010-04-17 Jan Hubicka <jh@suse.cz>
+
+ * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
+
2010-04-17 Richard Earnshaw <rearnsha@arm.com>
* arm.md (negdi2): Remove redundant code to force values into a
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 601695a..751966c 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -1667,6 +1667,17 @@ cgraph_early_inlining (void)
}
else
{
+ if (lookup_attribute ("flatten",
+ DECL_ATTRIBUTES (node->decl)) != NULL)
+ {
+ if (dump_file)
+ fprintf (dump_file,
+ "Flattening %s\n", cgraph_node_name (node));
+ cgraph_flatten (node);
+ timevar_push (TV_INTEGRATION);
+ todo |= optimize_inline_calls (current_function_decl);
+ timevar_pop (TV_INTEGRATION);
+ }
/* We iterate incremental inlining to get trivial cases of indirect
inlining. */
while (iterations < PARAM_VALUE (PARAM_EARLY_INLINER_MAX_ITERATIONS)