aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2012-04-16 12:04:17 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2012-04-16 12:04:17 +0000
commit7c455d87c55a2de426f8f1a455f1a97050340dc7 (patch)
tree011c878ee2a5ec6071bdb8be9c3d3d3fc62db1a9 /gcc/cgraphunit.c
parent06734da8d7e6f650da5a652c933eb8095f8d6133 (diff)
* cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
New macros. * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH walkers to walk cgraph and varpool. * cgraph.c (cgraph_node_for_asm): Likewise. (dump_cgraph): Likewise. * value-prof.c (init_node_map): Likewise. * tree.c (free_lang_data_in_cgraph): Likewise. * tree-emutls.c: (ipa_lower_emutls): Likewise. * ipa-reference.c (generate_summary, propagate): Likewise. * cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases, cgraph_mark_functions_to_output, cgraph_output_in_order, output_weakrefs, cgraph_materialize_all_clones, cgraph_optimize): Likewise. * lto-cgraph.c (merge_profile_summaries): Likewise. (input_cgraph): Likewise. * ipa-pure-const.c (generate_summary): Likewise. (propagate): Likwise. * ipa-utils.c (ipa_reduced_postorder): Likewise. (ipa_free_postorder_info): Likewise. (ipa_reverse_postorder): Likewise. * ipa-inline.c (ipa_inline): Likewise. * matrix-reorg.c (find_matrices_decl): Likewise. (matrix_reorg): Likewise. * tree-vectorizer.c (increase_alignment): Likewise. * ipa.c (cgraph_remove_unreachable_nodes): Likewise. (function_and_variable_visibility): Likewise. (whole_program_function_and_variable_visibility): Likewise. (ipa_cdtor_merge): Likewise. * trans-mem.c (ipa_tm_execute): Likewise. * ipa-inline-analysis.c (dump_inline_summaries): Likewise. * ipa-prop.c (ipa_print_all_jump_functions): Likewise. (ipa_print_all_params): Likewise. (ipa_update_after_lto_read): Likewise. * tree-profie.c (tree_profiling): Likewise. * tree-ssa-structalias.c (ipa_pta_execute): Likewise. * passes.c (dump_passes): Likewise. (do_per_function): Likewise. (ipa_write_summaries): Likewise. * varpool.c (dump_varpool): Likewise. (varpool_node_for_asm): Likewise. (varpool_assemble_pending_decls): Likewise. * decl2.c (collect_candidates_for_java_method_alias): Use FOR_EACH walkers to walk cgraph and varpool. * lto.c (read_cgraph_and_symbols): Use FOR_EACH walkers to walk cgraph and varpool. (materialize_cgraph): Likewise. * lto-partition.c (lto_1_to_1_map): Likewise. (lto_balanced_map): Likewise. (lto_promote_cross_file_statics): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186492 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r--gcc/cgraphunit.c31
1 files changed, 15 insertions, 16 deletions
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 8c27eb4d32c..abe90120129 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -890,7 +890,7 @@ verify_cgraph (void)
if (seen_error ())
return;
- for (node = cgraph_nodes; node; node = node->next)
+ FOR_EACH_FUNCTION (node)
verify_cgraph_node (node);
}
@@ -1026,7 +1026,7 @@ void
cgraph_process_same_body_aliases (void)
{
struct cgraph_node *node;
- for (node = cgraph_nodes; node; node = node->next)
+ FOR_EACH_FUNCTION (node)
if (node->same_body_alias
&& !VEC_length (ipa_ref_t, node->symbol.ref_list.references))
{
@@ -1398,11 +1398,11 @@ cgraph_mark_functions_to_output (void)
#ifdef ENABLE_CHECKING
bool check_same_comdat_groups = false;
- for (node = cgraph_nodes; node; node = node->next)
+ FOR_EACH_FUNCTION (node)
gcc_assert (!node->process);
#endif
- for (node = cgraph_nodes; node; node = node->next)
+ FOR_EACH_FUNCTION (node)
{
tree decl = node->symbol.decl;
struct cgraph_edge *e;
@@ -1472,7 +1472,7 @@ cgraph_mark_functions_to_output (void)
}
#ifdef ENABLE_CHECKING
if (check_same_comdat_groups)
- for (node = cgraph_nodes; node; node = node->next)
+ FOR_EACH_FUNCTION (node)
if (node->symbol.same_comdat_group && !node->process)
{
tree decl = node->symbol.decl;
@@ -2081,7 +2081,7 @@ cgraph_output_in_order (void)
varpool_analyze_pending_decls ();
- for (pf = cgraph_nodes; pf; pf = pf->next)
+ FOR_EACH_DEFINED_FUNCTION (pf)
{
if (pf->process && !pf->thunk.thunk_p && !pf->alias)
{
@@ -2092,7 +2092,7 @@ cgraph_output_in_order (void)
}
}
- for (pv = varpool_nodes_queue; pv; pv = pv->next_needed)
+ FOR_EACH_DEFINED_VARIABLE (pv)
{
i = pv->symbol.order;
gcc_assert (nodes[i].kind == ORDER_UNDEFINED);
@@ -2246,14 +2246,14 @@ output_weakrefs (void)
{
struct cgraph_node *node;
struct varpool_node *vnode;
- for (node = cgraph_nodes; node; node = node->next)
+ FOR_EACH_FUNCTION (node)
if (node->alias && DECL_EXTERNAL (node->symbol.decl)
&& !TREE_ASM_WRITTEN (node->symbol.decl)
&& lookup_attribute ("weakref", DECL_ATTRIBUTES (node->symbol.decl)))
assemble_alias (node->symbol.decl,
node->thunk.alias ? DECL_ASSEMBLER_NAME (node->thunk.alias)
: get_alias_symbol (node->symbol.decl));
- for (vnode = varpool_nodes; vnode; vnode = vnode->next)
+ FOR_EACH_VARIABLE (vnode)
if (vnode->alias && DECL_EXTERNAL (vnode->symbol.decl)
&& !TREE_ASM_WRITTEN (vnode->symbol.decl)
&& lookup_attribute ("weakref", DECL_ATTRIBUTES (vnode->symbol.decl)))
@@ -2320,7 +2320,7 @@ cgraph_copy_node_for_versioning (struct cgraph_node *old_version,
new_version->analyzed = old_version->analyzed;
new_version->local = old_version->local;
new_version->symbol.externally_visible = false;
- new_version->local.local = true;
+ new_version->local.local = old_version->analyzed;
new_version->global = old_version->global;
new_version->rtl = old_version->rtl;
new_version->reachable = true;
@@ -2578,7 +2578,7 @@ cgraph_materialize_all_clones (void)
while (!stabilized)
{
stabilized = true;
- for (node = cgraph_nodes; node; node = node->next)
+ FOR_EACH_FUNCTION (node)
{
if (node->clone_of && node->symbol.decl != node->clone_of->symbol.decl
&& !gimple_has_body_p (node->symbol.decl))
@@ -2628,7 +2628,7 @@ cgraph_materialize_all_clones (void)
}
}
}
- for (node = cgraph_nodes; node; node = node->next)
+ FOR_EACH_FUNCTION (node)
if (!node->analyzed && node->callees)
cgraph_node_remove_callees (node);
if (cgraph_dump_file)
@@ -2745,10 +2745,9 @@ cgraph_optimize (void)
struct cgraph_node *node;
bool error_found = false;
- for (node = cgraph_nodes; node; node = node->next)
- if (node->analyzed
- && (node->global.inlined_to
- || gimple_has_body_p (node->symbol.decl)))
+ FOR_EACH_DEFINED_FUNCTION (node)
+ if (node->global.inlined_to
+ || gimple_has_body_p (node->symbol.decl))
{
error_found = true;
dump_cgraph_node (stderr, node);