aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2011-06-10 02:31:19 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2011-06-10 00:31:19 +0000
commitb125ad45dab0e830d5e1a6aacfddc29fd17e37dc (patch)
tree76467d044aa99677800c5aeb965fa174159b9549
parent5d4c7c5f6b19469c5e67127b34cefdb106aef9e2 (diff)
downloadgcc-b125ad45dab0e830d5e1a6aacfddc29fd17e37dc.zip
gcc-b125ad45dab0e830d5e1a6aacfddc29fd17e37dc.tar.gz
gcc-b125ad45dab0e830d5e1a6aacfddc29fd17e37dc.tar.bz2
cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline; do not recompute reachable flag.
* cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline; do not recompute reachable flag. (cgraph_finalize_function, cgraph_analyze_functions): Set redefined_extern_inline here. From-SVN: r174877
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cgraphunit.c21
2 files changed, 12 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d064a89..d0429e1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2011-06-09 Jan Hubicka <jh@suse.cz>
+ * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
+ do not recompute reachable flag.
+ (cgraph_finalize_function, cgraph_analyze_functions): Set
+ redefined_extern_inline here.
+
+2011-06-09 Jan Hubicka <jh@suse.cz>
+
* cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
(cgraph_only_called_directly_p): ... this one; bring offline.
(resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 614b785..1e3aa0d 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -306,24 +306,9 @@ cgraph_reset_node (struct cgraph_node *node)
memset (&node->global, 0, sizeof (node->global));
memset (&node->rtl, 0, sizeof (node->rtl));
node->analyzed = false;
- node->local.redefined_extern_inline = true;
node->local.finalized = false;
cgraph_node_remove_callees (node);
-
- /* We may need to re-queue the node for assembling in case
- we already proceeded it and ignored as not needed or got
- a re-declaration in IMA mode. */
- if (node->reachable)
- {
- struct cgraph_node *n;
-
- for (n = cgraph_nodes_queue; n; n = n->next_needed)
- if (n == node)
- break;
- if (!n)
- node->reachable = 0;
- }
}
static void
@@ -351,7 +336,10 @@ cgraph_finalize_function (tree decl, bool nested)
struct cgraph_node *node = cgraph_get_create_node (decl);
if (node->local.finalized)
- cgraph_reset_node (node);
+ {
+ cgraph_reset_node (node);
+ node->local.redefined_extern_inline = true;
+ }
notice_global_symbol (decl);
node->local.finalized = true;
@@ -994,6 +982,7 @@ cgraph_analyze_functions (void)
&& !node->thunk.thunk_p)
{
cgraph_reset_node (node);
+ node->local.redefined_extern_inline = true;
continue;
}