aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2003-09-04 21:24:30 -0700
committerRichard Henderson <rth@gcc.gnu.org>2003-09-04 21:24:30 -0700
commit8dafba3ca49dbbd3ac78eb8d026576b9633d433c (patch)
treee52f1fb527a3257f89b40c552bfaabe7263e2310 /gcc/cgraph.c
parentdd37c5a069e7520f2583ea70f58237de7b90e6e2 (diff)
downloadgcc-8dafba3ca49dbbd3ac78eb8d026576b9633d433c.zip
gcc-8dafba3ca49dbbd3ac78eb8d026576b9633d433c.tar.gz
gcc-8dafba3ca49dbbd3ac78eb8d026576b9633d433c.tar.bz2
cgraph.c (cgraph_mark_reachable_node): Split out from ...
* cgraph.c (cgraph_mark_reachable_node): Split out from ... (cgraph_mark_needed_node): Remove needed argument. * cgraph.h: Update to match. * cgraphunit.c (decide_is_function_needed): Split out from ... (cgraph_finalize_function): Reorg. Avoid deferred_inline_function if we generated the function. (record_call_1): Update for cgraph_mark_reachable_node. * varasm.c (mark_referenced): Likewise. * objc/objc-act.c (mark_referenced_methods): Likewise. * decl2.c (mark_member_pointers_and_eh_handlers): Update for change in cgraph_mark_needed_node arguments. From-SVN: r71104
Diffstat (limited to 'gcc/cgraph.c')
-rw-r--r--gcc/cgraph.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index bd83f6a..8b4c0cc 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -234,14 +234,11 @@ cgraph_remove_node (struct cgraph_node *node)
/* Do not free the structure itself so the walk over chain can continue. */
}
-/* Notify finalize_compilation_unit that given node is reachable
- or needed. */
+/* Notify finalize_compilation_unit that given node is reachable. */
+
void
-cgraph_mark_needed_node (struct cgraph_node *node, int needed)
+cgraph_mark_reachable_node (struct cgraph_node *node)
{
- if (needed)
- node->needed = 1;
-
if (!node->reachable && DECL_SAVED_TREE (node->decl))
{
node->reachable = 1;
@@ -257,11 +254,20 @@ cgraph_mark_needed_node (struct cgraph_node *node, int needed)
for (node2 = node->nested; node2; node2 = node2->next_nested)
if (!node2->reachable)
- cgraph_mark_needed_node (node2, 0);
+ cgraph_mark_reachable_node (node2);
}
}
}
+/* Likewise indicate that a node is needed, i.e. reachable via some
+ external means. */
+
+void
+cgraph_mark_needed_node (struct cgraph_node *node)
+{
+ node->needed = 1;
+ cgraph_mark_reachable_node (node);
+}
/* Record call from CALLER to CALLEE */