aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2012-04-16 14:34:22 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2012-04-16 14:34:22 +0000
commit0704fb2e43031c1e7f22b09268fdfe63460de5a4 (patch)
tree5faa94b4b722d5a4697b6faeb99c4c72e121c4ff /gcc/cgraphunit.c
parent93f2ac0b94df4e45f5a6f99f5165fe36a4dc412f (diff)
* cgraph.h (symtab_node_base): Add next and previous pointers.
(cgraph_node): Remove next and preivous pointers. (varpool_node): Likewise; remove next/previous GTY marker; it is not type safe. (symtab_node_def): Update GTY marker (x_cgraph_nodes, cgraph_nodes): Remove. (symtab_nodes): New function. (cgraph_order): Rename to ... (symtab_order): ... this one. (symtab_register_node, symtab_unregister_node, symtab_remove_node): Declare. (x_varpool_nodes, varpool_nodes): Remove. (FOR_EACH_STATIC_VARIABLE): Update. (symtab_function_p, symtab_variable_p): New function. (FOR_EACH_VARIABLE): Update. (varpool_first_variable, varpool_next_variable): New functions. (FOR_EACH_VARIABLE): Update. (cgraph_first_defined_function): Update. (cgraph_next_defined_function, cgraph_next_defined_function): Update. (FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update. (cgraph_first_function, cgraph_next_function): New. (FOR_EACH_FUNCTION): Update. (cgraph_first_function_with_gimple_body, cgraph_next_function_with_gimple_body): Update. * symtab.c: New file. * cgraph.c: Update copyright dates. (x_cgraph_nodes, cgraph_order): Remove. (NEXT_FREE_NODE): Update. (SET_NEXT_FREE_NODE): New. (cgraph_create_node_1): Remove common code. (cgraph_create_node); Remove common code; call symtab_register_node. (cgraph_remove_node): Remove common code; call symtab_unregister-node. (cgraph_add_asm_node); update. (cgraph_clone_node): Register new node. * cgraphunit.c (process_function_and_variable_attributes): Update. (cgraph_analyze_functions): Update. (cgraph_analyze_functions): Update. (cgraph_output_in_order): Update. * lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1): Update. * ipa-inline.c (recursive_inlining); update. * lto-streamer-in.c (lto_input_toplevel_asms); Update. * ipa.c (cgraph_remove_unreachable_nodes): Update. * Makefile.in: Add symtab.o * varpool.c (x_varpool_nodes): Remove (varpool_node): Remove common code; call symtab_register_node. (varpool_remove_node); Remove common code; call symtab_unregister_node. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186496 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r--gcc/cgraphunit.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index abe90120129..726d8839d3d 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -1085,7 +1085,8 @@ process_function_and_variable_attributes (struct cgraph_node *first,
struct cgraph_node *node;
struct varpool_node *vnode;
- for (node = cgraph_nodes; node != first; node = node->next)
+ for (node = cgraph_first_function (); node != first;
+ node = cgraph_next_function (node))
{
tree decl = node->symbol.decl;
if (DECL_PRESERVE_P (decl))
@@ -1126,7 +1127,8 @@ process_function_and_variable_attributes (struct cgraph_node *first,
process_common_attributes (decl);
}
- for (vnode = varpool_nodes; vnode != first_var; vnode = vnode->next)
+ for (vnode = varpool_first_variable (); vnode != first_var;
+ vnode = varpool_next_variable (vnode))
{
tree decl = vnode->symbol.decl;
if (DECL_PRESERVE_P (decl))
@@ -1184,13 +1186,14 @@ cgraph_analyze_functions (void)
bitmap_obstack_initialize (NULL);
process_function_and_variable_attributes (first_processed,
first_analyzed_var);
- first_processed = cgraph_nodes;
- first_analyzed_var = varpool_nodes;
+ first_processed = cgraph_first_function ();
+ first_analyzed_var = varpool_first_variable ();
varpool_analyze_pending_decls ();
if (cgraph_dump_file)
{
fprintf (cgraph_dump_file, "Initial entry points:");
- for (node = cgraph_nodes; node != first_analyzed; node = node->next)
+ for (node = cgraph_first_function (); node != first_analyzed;
+ node = cgraph_next_function (node))
if (node->needed)
fprintf (cgraph_dump_file, " %s", cgraph_node_name (node));
fprintf (cgraph_dump_file, "\n");
@@ -1255,8 +1258,8 @@ cgraph_analyze_functions (void)
edges. Process their attributes too. */
process_function_and_variable_attributes (first_processed,
first_analyzed_var);
- first_processed = cgraph_nodes;
- first_analyzed_var = varpool_nodes;
+ first_processed = cgraph_first_function ();
+ first_analyzed_var = varpool_first_variable ();
varpool_analyze_pending_decls ();
cgraph_process_new_functions ();
}
@@ -1265,7 +1268,8 @@ cgraph_analyze_functions (void)
if (cgraph_dump_file)
{
fprintf (cgraph_dump_file, "Unit entry points:");
- for (node = cgraph_nodes; node != first_analyzed; node = node->next)
+ for (node = cgraph_first_function (); node != first_analyzed;
+ node = cgraph_next_function (node))
if (node->needed)
fprintf (cgraph_dump_file, " %s", cgraph_node_name (node));
fprintf (cgraph_dump_file, "\n\nInitial ");
@@ -1276,10 +1280,11 @@ cgraph_analyze_functions (void)
if (cgraph_dump_file)
fprintf (cgraph_dump_file, "\nReclaiming functions:");
- for (node = cgraph_nodes; node != first_analyzed; node = next)
+ for (node = cgraph_first_function (); node != first_analyzed;
+ node = next)
{
tree decl = node->symbol.decl;
- next = node->next;
+ next = cgraph_next_function (node);
if (node->local.finalized && !gimple_has_body_p (decl)
&& (!node->alias || !node->thunk.alias)
@@ -1309,7 +1314,7 @@ cgraph_analyze_functions (void)
dump_varpool (cgraph_dump_file);
}
bitmap_obstack_release (NULL);
- first_analyzed = cgraph_nodes;
+ first_analyzed = cgraph_first_function ();
ggc_collect ();
}
@@ -2076,7 +2081,7 @@ cgraph_output_in_order (void)
struct varpool_node *pv;
struct cgraph_asm_node *pa;
- max = cgraph_order;
+ max = symtab_order;
nodes = XCNEWVEC (struct cgraph_order_sort, max);
varpool_analyze_pending_decls ();