aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.h
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-05-12 23:32:59 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2010-05-12 21:32:59 +0000
commit5f902d766c18beade9fd700b53a83d4e57622b10 (patch)
treed7aef00d4cbf971dd328d8e3e60c9fd6278373a2 /gcc/cgraph.h
parent87a0ebfd203382a034b76c3a087d310908005454 (diff)
downloadgcc-5f902d766c18beade9fd700b53a83d4e57622b10.zip
gcc-5f902d766c18beade9fd700b53a83d4e57622b10.tar.gz
gcc-5f902d766c18beade9fd700b53a83d4e57622b10.tar.bz2
cgraphbuild.c (build_cgraph_edges, [...]): Build indrect edges too.
* cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build indrect edges too. * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument. (cgraph_clone_edge): Update. (cgraph_node_remove_callees): Remove indirect calls too. * cgraph.h (cgraph_indirect_call_info): Add ecf_flags. (cgraph_create_indirect_edge): Update prototype. * ipa-reference.c (has_proper_scope_for_analysis): Rename to is_proper_for_analysis. (add_new_function, visited_nodes, function_insertion_hook_holder, get_local_reference_vars_info, mark_address_taken, mark_address, mark_load, mark_store, check_asm_memory_clobber, check_call, scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove. (ipa_init): Do not initialize visited_nodes; function_insertion_hook_holder. (analyze_variable): Rewrite. (analyze_function): Rewrite. (copy_local_bitmap): Remove. (duplicate_node_dat): Do not duplicate local info. (generate_summary): Simplify to only walk cgraph. (write_node_summary_p, ipa_reference_write_summary, ipa_reference_read_summary): Remove. (propagate): Do not remove function insertion; generate summary. (pass_ipa_reference): NULLify summary handling fields. * lto-cgraph.c (lto_output_edge): Output ecf_flags. (input_edge): Input ecf_flags. * ipa-prop.c (ipa_note_parm_call): Expect edge to be around. (update_indirect_edges_after_inlining): Ignore edges with unknown param. From-SVN: r159343
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r--gcc/cgraph.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index eaf9bfd..dbfc89f 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -376,6 +376,8 @@ struct GTY(()) cgraph_indirect_call_info
{
/* Index of the parameter that is called. */
int param_index;
+ /* ECF flags determined from the caller. */
+ int ecf_flags;
};
struct GTY((chain_next ("%h.next_caller"), chain_prev ("%h.prev_caller"))) cgraph_edge {
@@ -519,7 +521,7 @@ void cgraph_node_remove_callees (struct cgraph_node *node);
struct cgraph_edge *cgraph_create_edge (struct cgraph_node *,
struct cgraph_node *,
gimple, gcov_type, int, int);
-struct cgraph_edge *cgraph_create_indirect_edge (struct cgraph_node *, gimple,
+struct cgraph_edge *cgraph_create_indirect_edge (struct cgraph_node *, gimple, int,
gcov_type, int, int);
struct cgraph_node * cgraph_get_node (tree);
struct cgraph_node *cgraph_node (tree);