diff options
author | Jan Hubicka <jh@suse.cz> | 2012-09-09 12:31:32 +0000 |
---|---|---|
committer | Jan Hubicka <jh@suse.cz> | 2012-09-09 12:31:32 +0000 |
commit | 8c6d27be5dbab7fe9de127157ad3eed90aa7eded (patch) | |
tree | 58bcd25939fd842f2d2ab057e27eab3107a48c31 /gcc/passes.c | |
parent | 43ff5405cb6e6911afee4d1a8ec6237819feb562 (diff) |
Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
in partitioning.
* tree-pass.h (cgraph_node_set_def, varpool_node_set_def): Remove
forward declaration.
(lto_symtab_encoder_d): Forward declare.
(ipa_write_optimization_summaries): Update.
* lto-cgraph.c (lto_symtab_encoder_new): Do not initialize
body, initializer and in_partition.
(lto_symtab_encoder_delete): Update.
(lto_symtab_encoder_encode): Update.
(lto_symtab_encoder_lookup): Move inline.
(lto_symtab_encoder_delete_node): New function.
(lto_symtab_encoder_encode_body_p, lto_set_symtab_encoder_encode_body,
lto_symtab_encoder_encode_initializer_p,
lto_set_symtab_encoder_encode_initializer, lto_symtab_encoder_in_partition_p,
lto_symtab_encoder_in_partition_p): Update.
(compute_ltrans_boundary): Take encoder as an input.
* passes.c (ipa_write_summaries_1): Update.
(ipa_write_summaries_1): Update.
(ipa_write_summaries): Update.
(ipa_write_optimization_summaries): Update.
* lto-streamer.c (print_lto_report): Report number of cgraph nodes.
* lto-streamer.h (lto_stats_d): Replace num_output_cgraph_nodes by
num_output_symtab_nodes.
(lto_encoder_entry): New structure.
(struct lto_symtab_encoder_d): Reorg.
(lto_symtab_encoder_delete_node): Declare.
(lto_symtab_encoder_lookup): Bring inline.
(compute_ltrans_boundary): Update.
(lto_symtab_encoder_size): Update.
(lsei_node, lsei_cgraph_node, lsei_varpool_node): Update.
(lto_symtab_encoder_deref): Update.
Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
in partitioning.
* lto-partition.h (ltrans_partition_def): Replace cgraph_set and varpool_set
by encoder.
* lto-partition.c (new_partition): Update.
* lto.c (cmp_partitions_order): Update.
(lto_wpa_write_files): Update.
(free_ltrans_partitions): Update.
(add_references_to_partition): Update.
(add_cgraph_node_to_partition_1): Update.
(add_cgraph_node_to_partition): Update.
(add_varpool_node_to_partition): Update.
(undo_partition): Update.
(lto_balanced_map): Update.
(set_referenced_from_other_partition_p, set_reachable_from_other_partition_p,
set_referenced_from_this_partition_p): Update.
(lto_promote_cross_file_statics): Update.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@191107 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index 9ad40bf9e6c..8365cff2377 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -2261,10 +2261,10 @@ ipa_write_summaries_2 (struct opt_pass *pass, struct lto_out_decl_state *state) summaries. SET is the set of nodes to be written. */ static void -ipa_write_summaries_1 (cgraph_node_set set, varpool_node_set vset) +ipa_write_summaries_1 (lto_symtab_encoder_t encoder) { struct lto_out_decl_state *state = lto_new_out_decl_state (); - compute_ltrans_boundary (state, set, vset); + compute_ltrans_boundary (state, encoder); lto_push_out_decl_state (state); @@ -2282,16 +2282,15 @@ ipa_write_summaries_1 (cgraph_node_set set, varpool_node_set vset) void ipa_write_summaries (void) { - cgraph_node_set set; - varpool_node_set vset; - struct cgraph_node **order; - struct varpool_node *vnode; + lto_symtab_encoder_t encoder; int i, order_pos; + struct varpool_node *vnode; + struct cgraph_node **order; if (!flag_generate_lto || seen_error ()) return; - set = cgraph_node_set_new (); + encoder = lto_symtab_encoder_new (); /* Create the callgraph set in the same order used in cgraph_expand_all_functions. This mostly facilitates debugging, @@ -2318,19 +2317,16 @@ ipa_write_summaries (void) pop_cfun (); } if (node->analyzed) - cgraph_node_set_add (set, node); + lto_set_symtab_encoder_in_partition (encoder, (symtab_node)node); } - vset = varpool_node_set_new (); FOR_EACH_DEFINED_VARIABLE (vnode) if ((!vnode->alias || vnode->alias_of)) - varpool_node_set_add (vset, vnode); + lto_set_symtab_encoder_in_partition (encoder, (symtab_node)vnode); - ipa_write_summaries_1 (set, vset); + ipa_write_summaries_1 (encoder); free (order); - free_cgraph_node_set (set); - free_varpool_node_set (vset); } /* Same as execute_pass_list but assume that subpasses of IPA passes @@ -2376,16 +2372,17 @@ ipa_write_optimization_summaries_1 (struct opt_pass *pass, struct lto_out_decl_s NULL, write out all summaries of all nodes. */ void -ipa_write_optimization_summaries (cgraph_node_set set, varpool_node_set vset) +ipa_write_optimization_summaries (lto_symtab_encoder_t encoder) { struct lto_out_decl_state *state = lto_new_out_decl_state (); - cgraph_node_set_iterator csi; - compute_ltrans_boundary (state, set, vset); + lto_symtab_encoder_iterator lsei; + compute_ltrans_boundary (state, encoder); lto_push_out_decl_state (state); - for (csi = csi_start (set); !csi_end_p (csi); csi_next (&csi)) + for (lsei = lsei_start_function_in_partition (encoder); + !lsei_end_p (lsei); lsei_next_function_in_partition (&lsei)) { - struct cgraph_node *node = csi_node (csi); + struct cgraph_node *node = lsei_cgraph_node (lsei); /* When streaming out references to statements as part of some IPA pass summary, the statements need to have uids assigned. |