aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2009-05-15 19:09:13 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2009-05-15 17:09:13 +0000
commitd88e5c37254630f5b3e1638aa2910bfd1e0fd030 (patch)
tree62a1c804d702494ae822b2b1cfc07dbffa19e1bf
parent6136d2c7e2369fbd3bd63ec635ea90d723f61d66 (diff)
downloadgcc-d88e5c37254630f5b3e1638aa2910bfd1e0fd030.zip
gcc-d88e5c37254630f5b3e1638aa2910bfd1e0fd030.tar.gz
gcc-d88e5c37254630f5b3e1638aa2910bfd1e0fd030.tar.bz2
cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
2009-05-15 Jan Hubicka <jh@suse.cz> * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag. * cgraphunit.c (cgraph_finalize_function): Set it. (cgraph_expand_function): Use it. From-SVN: r147586
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cgraph.h2
-rw-r--r--gcc/cgraphunit.c4
3 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2882330..e45090d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2009-05-15 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
+ * cgraphunit.c (cgraph_finalize_function): Set it.
+ (cgraph_expand_function): Use it.
+
2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
* real.c (encode_ieee_half): Define.
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index 58ae068..6f1e052 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -211,6 +211,8 @@ struct GTY((chain_next ("%h.next"), chain_prev ("%h.previous"))) cgraph_node {
unsigned process : 1;
/* Set for aliases once they got through assemble_alias. */
unsigned alias : 1;
+ /* Set for nodes that was constructed and finalized by frontend. */
+ unsigned finalized_by_frontend : 1;
/* In non-unit-at-a-time mode the function body of inline candidates is saved
into clone before compiling so the function in original form can be
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index a73eabc..70b2682 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -510,6 +510,7 @@ cgraph_finalize_function (tree decl, bool nested)
notice_global_symbol (decl);
node->local.finalized = true;
node->lowered = DECL_STRUCT_FUNCTION (decl)->cfg != NULL;
+ node->finalized_by_frontend = true;
record_cdtor_fn (node->decl);
if (node->nested)
lower_nested_functions (decl);
@@ -1090,7 +1091,8 @@ cgraph_expand_function (struct cgraph_node *node)
gcc_assert (node->lowered);
/* Generate RTL for the body of DECL. */
- if (lang_hooks.callgraph.emit_associated_thunks)
+ if (lang_hooks.callgraph.emit_associated_thunks
+ && node->finalized_by_frontend)
lang_hooks.callgraph.emit_associated_thunks (decl);
tree_rest_of_compilation (decl);