aboutsummaryrefslogtreecommitdiff
path: root/gcc/passes.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2012-09-09 12:31:32 +0000
committerJan Hubicka <jh@suse.cz>2012-09-09 12:31:32 +0000
commit8c6d27be5dbab7fe9de127157ad3eed90aa7eded (patch)
tree58bcd25939fd842f2d2ab057e27eab3107a48c31 /gcc/passes.c
parent43ff5405cb6e6911afee4d1a8ec6237819feb562 (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.c33
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.