diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-04-14 10:24:59 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-04-14 10:24:59 +0000 |
commit | 7d0d0ce1c6bb14bfda0b0fc0fcd8e96bd8c173f0 (patch) | |
tree | 7b0127a94d4c70c75f4d133c7806c59bc61566c2 /gcc/lto-cgraph.c | |
parent | 6348046755565ad1a4c61bb07f6725f9436a5685 (diff) |
* cgraph.h: Update copyrights;
(symtab_node): Turn to union typedef.
(symtab_node_base): New structure.
(symtab_type): Add SYMTAB_SYMBOL tag.
* cgraph.c: Update references to fields
(cgraph_hash, assembler_name_hash): Turn into symtab_node.
(cgraph_local_info): Remove lto_file_data
and externally_visible.
(cgraph_node): Remove decl; same_comdat_group list;
aux; ref_list; order; address_taken; reachable_from_other_parittion,
in_other_partition; resolution.
(varpool_node): Remove decl; same_comdat_group;
ref_list; lto_file_data; aux; order; resolution; externally_visible;
used_from_other_partition; in_other_partition.
(symtab_node_def); New union.
(cgraph, varpool): Update.
(varpool_first_static_initializer, varpool_next_static_initializer,
cgraph_only_called_directly_or_aliased_p,
varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
field references.
* cgraph.c: Likewise.
* cgraphbuild.c: Likewise.
* lto-symtab.c: Likewise.
* c-gimplify.c: Likewise.
* value-prof.c: Likewise.
* tree.c: Likewise.
* ipa-cp.c: Likewise.
* tree-emutls.c: Likewise.
* ipa-inline-transform.c: Likwise.
* ipa-reference.c: Likewise.
* cgraphunit.c: Likewise.
* ipa-ref.c: Likewise.
* lto-cgraph.c: Likewise.
* ipa-ref-inline.h: Likewise.
* ipa-pure-const.c: Likewise.
* lto-streamer-out.c: Likewise.
* ipa-utils.c: Likewise.
* ipa-inline.c: Likewise.
* matrix-reorg.c: Likewise.
* tree-eh.c: Likewise.
* tree-vectorizer.c: Likewise.
* ipa-split.c: Likewise.
* ipa.c: Likewise.
* trans-mem.c: Likewise.
* ipa-inline-analysis.c: Likewise.
* gimplify.c: Likewise.
* cfgexpand.c: Likewise.
* tree-sra.c: Likewise.
* ipa-prop.c: Likewise.
* varasm.c: Likewise.
* tree-nested.c: Likewise.
* tree-inline.c: Likewise.
* tree-profile.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* passes.c: Likewise.
* varpool.c: Likewise.
* tree.c: Update field referenced for new cgraph/varpool layout.
* decl2.c: Likewise.
* gcc-interface/trans.c (finalize_nrv): Update field referenced for new
cgraph/varpool layout.
* lto.c: Update field referenced for new cgraph/varpool layout.
* lto-partition.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186450 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lto-cgraph.c')
-rw-r--r-- | gcc/lto-cgraph.c | 179 |
1 files changed, 92 insertions, 87 deletions
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c index f57028d07fb..69ddb0637b8 100644 --- a/gcc/lto-cgraph.c +++ b/gcc/lto-cgraph.c @@ -290,7 +290,7 @@ lto_output_edge (struct lto_simple_output_block *ob, struct cgraph_edge *edge, streamer_write_hwi_stream (ob->main_stream, edge->count); bp = bitpack_create (ob->main_stream); - uid = (!gimple_has_body_p (edge->caller->decl) + uid = (!gimple_has_body_p (edge->caller->symbol.decl) ? edge->lto_stmt_uid : gimple_uid (edge->call_stmt)); bp_pack_enum (&bp, cgraph_inline_failed_enum, CIF_N_REASONS, edge->inline_failed); @@ -330,13 +330,13 @@ referenced_from_other_partition_p (struct ipa_ref_list *list, cgraph_node_set se { if (ref->refering_type == IPA_REF_CGRAPH) { - if (ipa_ref_refering_node (ref)->in_other_partition + if (ipa_ref_refering_node (ref)->symbol.in_other_partition || !cgraph_node_in_set_p (ipa_ref_refering_node (ref), set)) return true; } else { - if (ipa_ref_refering_varpool_node (ref)->in_other_partition + if (ipa_ref_refering_varpool_node (ref)->symbol.in_other_partition || !varpool_node_in_set_p (ipa_ref_refering_varpool_node (ref), vset)) return true; @@ -356,7 +356,7 @@ reachable_from_other_partition_p (struct cgraph_node *node, cgraph_node_set set) if (node->global.inlined_to) return false; for (e = node->callers; e; e = e->next_caller) - if (e->caller->in_other_partition + if (e->caller->symbol.in_other_partition || !cgraph_node_in_set_p (e->caller, set)) return true; return false; @@ -428,7 +428,7 @@ lto_output_node (struct lto_simple_output_block *ob, struct cgraph_node *node, streamer_write_enum (ob->main_stream, LTO_cgraph_tags, LTO_cgraph_last_tag, tag); - streamer_write_hwi_stream (ob->main_stream, node->order); + streamer_write_hwi_stream (ob->main_stream, node->symbol.order); /* In WPA mode, we only output part of the call-graph. Also, we fake cgraph node attributes. There are two cases that we care. @@ -469,7 +469,7 @@ lto_output_node (struct lto_simple_output_block *ob, struct cgraph_node *node, streamer_write_hwi_stream (ob->main_stream, ref); - lto_output_fn_decl_index (ob->decl_state, ob->main_stream, node->decl); + lto_output_fn_decl_index (ob->decl_state, ob->main_stream, node->symbol.decl); streamer_write_hwi_stream (ob->main_stream, node->count); streamer_write_hwi_stream (ob->main_stream, node->count_materialization_scale); @@ -486,9 +486,10 @@ lto_output_node (struct lto_simple_output_block *ob, struct cgraph_node *node, streamer_write_hwi_stream (ob->main_stream, ref); } - if (node->same_comdat_group && !boundary_p) + if (node->symbol.same_comdat_group && !boundary_p) { - ref = lto_cgraph_encoder_lookup (encoder, node->same_comdat_group); + ref = lto_cgraph_encoder_lookup (encoder, + cgraph (node->symbol.same_comdat_group)); gcc_assert (ref != LCC_NOT_FOUND); } else @@ -497,19 +498,20 @@ lto_output_node (struct lto_simple_output_block *ob, struct cgraph_node *node, bp = bitpack_create (ob->main_stream); bp_pack_value (&bp, node->local.local, 1); - bp_pack_value (&bp, node->local.externally_visible, 1); + bp_pack_value (&bp, node->symbol.externally_visible, 1); bp_pack_value (&bp, node->local.finalized, 1); bp_pack_value (&bp, node->local.versionable, 1); bp_pack_value (&bp, node->local.can_change_signature, 1); bp_pack_value (&bp, node->local.redefined_extern_inline, 1); bp_pack_value (&bp, node->needed, 1); - bp_pack_value (&bp, node->address_taken, 1); + bp_pack_value (&bp, node->symbol.address_taken, 1); bp_pack_value (&bp, node->abstract_and_needed, 1); bp_pack_value (&bp, tag == LTO_cgraph_analyzed_node - && !DECL_EXTERNAL (node->decl) - && !DECL_COMDAT (node->decl) + && !DECL_EXTERNAL (node->symbol.decl) + && !DECL_COMDAT (node->symbol.decl) && (reachable_from_other_partition_p (node, set) - || referenced_from_other_partition_p (&node->ref_list, set, vset)), 1); + || referenced_from_other_partition_p (&node->symbol.ref_list, + set, vset)), 1); bp_pack_value (&bp, node->lowered, 1); bp_pack_value (&bp, in_other_partition, 1); /* Real aliases in a boundary become non-aliases. However we still stream @@ -518,14 +520,14 @@ lto_output_node (struct lto_simple_output_block *ob, struct cgraph_node *node, defined in other unit, we may use the info on aliases to resolve symbol1 != symbol2 type tests that we can do only for locally defined objects otherwise. */ - bp_pack_value (&bp, node->alias && (!boundary_p || DECL_EXTERNAL (node->decl)), 1); + bp_pack_value (&bp, node->alias && (!boundary_p || DECL_EXTERNAL (node->symbol.decl)), 1); bp_pack_value (&bp, node->frequency, 2); bp_pack_value (&bp, node->only_called_at_startup, 1); bp_pack_value (&bp, node->only_called_at_exit, 1); bp_pack_value (&bp, node->tm_clone, 1); bp_pack_value (&bp, node->thunk.thunk_p && !boundary_p, 1); bp_pack_enum (&bp, ld_plugin_symbol_resolution, - LDPR_NUM_KNOWN, node->resolution); + LDPR_NUM_KNOWN, node->symbol.resolution); streamer_write_bitpack (&bp); if (node->thunk.thunk_p && !boundary_p) @@ -538,7 +540,7 @@ lto_output_node (struct lto_simple_output_block *ob, struct cgraph_node *node, streamer_write_uhwi_stream (ob->main_stream, node->thunk.virtual_value); } if ((node->alias || node->thunk.thunk_p) - && (!boundary_p || (node->alias && DECL_EXTERNAL (node->decl)))) + && (!boundary_p || (node->alias && DECL_EXTERNAL (node->symbol.decl)))) { streamer_write_hwi_in_range (ob->main_stream, 0, 1, node->thunk.alias != NULL); @@ -560,10 +562,10 @@ lto_output_varpool_node (struct lto_simple_output_block *ob, struct varpool_node struct bitpack_d bp; int ref; - streamer_write_hwi_stream (ob->main_stream, node->order); - lto_output_var_decl_index (ob->decl_state, ob->main_stream, node->decl); + streamer_write_hwi_stream (ob->main_stream, node->symbol.order); + lto_output_var_decl_index (ob->decl_state, ob->main_stream, node->symbol.decl); bp = bitpack_create (ob->main_stream); - bp_pack_value (&bp, node->externally_visible, 1); + bp_pack_value (&bp, node->symbol.externally_visible, 1); bp_pack_value (&bp, node->force_output, 1); bp_pack_value (&bp, node->finalized, 1); bp_pack_value (&bp, node->alias, 1); @@ -573,8 +575,8 @@ lto_output_varpool_node (struct lto_simple_output_block *ob, struct varpool_node /* Constant pool initializers can be de-unified into individual ltrans units. FIXME: Alternatively at -Os we may want to avoid generating for them the local labels and share them across LTRANS partitions. */ - if (DECL_IN_CONSTANT_POOL (node->decl) - && !DECL_COMDAT (node->decl)) + if (DECL_IN_CONSTANT_POOL (node->symbol.decl) + && !DECL_COMDAT (node->symbol.decl)) { bp_pack_value (&bp, 0, 1); /* used_from_other_parition. */ bp_pack_value (&bp, 0, 1); /* in_other_partition. */ @@ -582,23 +584,24 @@ lto_output_varpool_node (struct lto_simple_output_block *ob, struct varpool_node else { bp_pack_value (&bp, node->analyzed - && referenced_from_other_partition_p (&node->ref_list, + && referenced_from_other_partition_p (&node->symbol.ref_list, set, vset), 1); bp_pack_value (&bp, boundary_p, 1); /* in_other_partition. */ } streamer_write_bitpack (&bp); if (node->alias_of) lto_output_var_decl_index (ob->decl_state, ob->main_stream, node->alias_of); - if (node->same_comdat_group && !boundary_p) + if (node->symbol.same_comdat_group && !boundary_p) { - ref = lto_varpool_encoder_lookup (varpool_encoder, node->same_comdat_group); + ref = lto_varpool_encoder_lookup (varpool_encoder, + varpool (node->symbol.same_comdat_group)); gcc_assert (ref != LCC_NOT_FOUND); } else ref = LCC_NOT_FOUND; streamer_write_hwi_stream (ob->main_stream, ref); streamer_write_enum (ob->main_stream, ld_plugin_symbol_resolution, - LDPR_NUM_KNOWN, node->resolution); + LDPR_NUM_KNOWN, node->symbol.resolution); } /* Output the varpool NODE to OB. @@ -719,13 +722,14 @@ output_refs (cgraph_node_set set, varpool_node_set vset, { struct cgraph_node *node = csi_node (csi); - count = ipa_ref_list_nreferences (&node->ref_list); + count = ipa_ref_list_nreferences (&node->symbol.ref_list); if (count) { streamer_write_uhwi_stream (ob->main_stream, count); streamer_write_uhwi_stream (ob->main_stream, lto_cgraph_encoder_lookup (encoder, node)); - for (i = 0; ipa_ref_list_reference_iterate (&node->ref_list, i, ref); i++) + for (i = 0; ipa_ref_list_reference_iterate (&node->symbol.ref_list, + i, ref); i++) lto_output_ref (ob, ref, encoder, varpool_encoder); } } @@ -736,14 +740,15 @@ output_refs (cgraph_node_set set, varpool_node_set vset, { struct varpool_node *node = vsi_node (vsi); - count = ipa_ref_list_nreferences (&node->ref_list); + count = ipa_ref_list_nreferences (&node->symbol.ref_list); if (count) { streamer_write_uhwi_stream (ob->main_stream, count); streamer_write_uhwi_stream (ob->main_stream, lto_varpool_encoder_lookup (varpool_encoder, node)); - for (i = 0; ipa_ref_list_reference_iterate (&node->ref_list, i, ref); i++) + for (i = 0; ipa_ref_list_reference_iterate (&node->symbol.ref_list, + i, ref); i++) lto_output_ref (ob, ref, encoder, varpool_encoder); } } @@ -775,7 +780,7 @@ compute_ltrans_boundary (struct lto_out_decl_state *state, { node = csi_node (csi); add_node_to (encoder, node, true); - add_references (encoder, varpool_encoder, &node->ref_list); + add_references (encoder, varpool_encoder, &node->symbol.ref_list); } for (vsi = vsi_start (vset); !vsi_end_p (vsi); vsi_next (&vsi)) { @@ -783,7 +788,7 @@ compute_ltrans_boundary (struct lto_out_decl_state *state, gcc_assert (!vnode->alias || vnode->alias_of); lto_varpool_encoder_encode (varpool_encoder, vnode); lto_set_varpool_encoder_encode_initializer (varpool_encoder, vnode); - add_references (encoder, varpool_encoder, &vnode->ref_list); + add_references (encoder, varpool_encoder, &vnode->symbol.ref_list); } /* Pickle in also the initializer of all referenced readonly variables to help folding. Constant pool variables are not shared, so we must @@ -791,16 +796,16 @@ compute_ltrans_boundary (struct lto_out_decl_state *state, for (i = 0; i < lto_varpool_encoder_size (varpool_encoder); i++) { struct varpool_node *vnode = lto_varpool_encoder_deref (varpool_encoder, i); - if (DECL_INITIAL (vnode->decl) + if (DECL_INITIAL (vnode->symbol.decl) && !lto_varpool_encoder_encode_initializer_p (varpool_encoder, vnode) - && const_value_known_p (vnode->decl)) + && const_value_known_p (vnode->symbol.decl)) { lto_set_varpool_encoder_encode_initializer (varpool_encoder, vnode); - add_references (encoder, varpool_encoder, &vnode->ref_list); + add_references (encoder, varpool_encoder, &vnode->symbol.ref_list); } else if (vnode->alias || vnode->alias_of) - add_references (encoder, varpool_encoder, &vnode->ref_list); + add_references (encoder, varpool_encoder, &vnode->symbol.ref_list); } /* Go over all the nodes again to include callees that are not in @@ -897,23 +902,23 @@ input_overwrite_node (struct lto_file_decl_data *file_data, enum LTO_cgraph_tags tag, struct bitpack_d *bp) { - node->aux = (void *) tag; - node->local.lto_file_data = file_data; + node->symbol.aux = (void *) tag; + node->symbol.lto_file_data = file_data; node->local.local = bp_unpack_value (bp, 1); - node->local.externally_visible = bp_unpack_value (bp, 1); + node->symbol.externally_visible = bp_unpack_value (bp, 1); node->local.finalized = bp_unpack_value (bp, 1); node->local.versionable = bp_unpack_value (bp, 1); node->local.can_change_signature = bp_unpack_value (bp, 1); node->local.redefined_extern_inline = bp_unpack_value (bp, 1); node->needed = bp_unpack_value (bp, 1); - node->address_taken = bp_unpack_value (bp, 1); + node->symbol.address_taken = bp_unpack_value (bp, 1); node->abstract_and_needed = bp_unpack_value (bp, 1); - node->reachable_from_other_partition = bp_unpack_value (bp, 1); + node->symbol.used_from_other_partition = bp_unpack_value (bp, 1); node->lowered = bp_unpack_value (bp, 1); node->analyzed = tag == LTO_cgraph_analyzed_node; - node->in_other_partition = bp_unpack_value (bp, 1); - if (node->in_other_partition + node->symbol.in_other_partition = bp_unpack_value (bp, 1); + if (node->symbol.in_other_partition /* Avoid updating decl when we are seeing just inline clone. When inlining function that has functions already inlined into it, we produce clones of inline clones. @@ -922,10 +927,10 @@ input_overwrite_node (struct lto_file_decl_data *file_data, we might end up streaming inline clone from other partition to support clone we are interested in. */ && (!node->clone_of - || node->clone_of->decl != node->decl)) + || node->clone_of->symbol.decl != node->symbol.decl)) { - DECL_EXTERNAL (node->decl) = 1; - TREE_STATIC (node->decl) = 0; + DECL_EXTERNAL (node->symbol.decl) = 1; + TREE_STATIC (node->symbol.decl) = 0; } node->alias = bp_unpack_value (bp, 1); node->frequency = (enum node_frequency)bp_unpack_value (bp, 2); @@ -933,7 +938,7 @@ input_overwrite_node (struct lto_file_decl_data *file_data, node->only_called_at_exit = bp_unpack_value (bp, 1); node->tm_clone = bp_unpack_value (bp, 1); node->thunk.thunk_p = bp_unpack_value (bp, 1); - node->resolution = bp_unpack_enum (bp, ld_plugin_symbol_resolution, + node->symbol.resolution = bp_unpack_enum (bp, ld_plugin_symbol_resolution, LDPR_NUM_KNOWN); } @@ -992,7 +997,7 @@ input_node (struct lto_file_decl_data *file_data, else node = cgraph_get_create_node (fn_decl); - node->order = order; + node->symbol.order = order; if (order >= cgraph_order) cgraph_order = order + 1; @@ -1008,7 +1013,7 @@ input_node (struct lto_file_decl_data *file_data, have already been read will have their tag stored in the 'aux' field. Since built-in functions can be referenced in multiple functions, they are expected to be read more than once. */ - if (node->aux && !DECL_BUILT_IN (node->decl)) + if (node->symbol.aux && !DECL_BUILT_IN (node->symbol.decl)) internal_error ("bytecode stream: found multiple instances of cgraph " "node %d", node->uid); @@ -1019,7 +1024,7 @@ input_node (struct lto_file_decl_data *file_data, node->global.inlined_to = (cgraph_node_ptr) (intptr_t) ref; /* Store a reference for now, and fix up later to be a pointer. */ - node->same_comdat_group = (cgraph_node_ptr) (intptr_t) ref2; + node->symbol.same_comdat_group = (symtab_node) (intptr_t) ref2; if (node->thunk.thunk_p) { @@ -1063,24 +1068,24 @@ input_varpool_node (struct lto_file_decl_data *file_data, decl_index = streamer_read_uhwi (ib); var_decl = lto_file_decl_data_get_var_decl (file_data, decl_index); node = varpool_node (var_decl); - node->order = order; + node->symbol.order = order; if (order >= cgraph_order) cgraph_order = order + 1; - node->lto_file_data = file_data; + node->symbol.lto_file_data = file_data; bp = streamer_read_bitpack (ib); - node->externally_visible = bp_unpack_value (&bp, 1); + node->symbol.externally_visible = bp_unpack_value (&bp, 1); node->force_output = bp_unpack_value (&bp, 1); node->finalized = bp_unpack_value (&bp, 1); node->alias = bp_unpack_value (&bp, 1); non_null_aliasof = bp_unpack_value (&bp, 1); node->analyzed = node->finalized; - node->used_from_other_partition = bp_unpack_value (&bp, 1); - node->in_other_partition = bp_unpack_value (&bp, 1); - if (node->in_other_partition) + node->symbol.used_from_other_partition = bp_unpack_value (&bp, 1); + node->symbol.in_other_partition = bp_unpack_value (&bp, 1); + if (node->symbol.in_other_partition) { - DECL_EXTERNAL (node->decl) = 1; - TREE_STATIC (node->decl) = 0; + DECL_EXTERNAL (node->symbol.decl) = 1; + TREE_STATIC (node->symbol.decl) = 0; } if (node->finalized) varpool_mark_needed_node (node); @@ -1091,9 +1096,9 @@ input_varpool_node (struct lto_file_decl_data *file_data, } ref = streamer_read_hwi (ib); /* Store a reference for now, and fix up later to be a pointer. */ - node->same_comdat_group = (struct varpool_node *) (intptr_t) ref; - node->resolution = streamer_read_enum (ib, ld_plugin_symbol_resolution, - LDPR_NUM_KNOWN); + node->symbol.same_comdat_group = (symtab_node) (intptr_t) ref; + node->symbol.resolution = streamer_read_enum (ib, ld_plugin_symbol_resolution, + LDPR_NUM_KNOWN); return node; } @@ -1106,7 +1111,7 @@ input_ref (struct lto_input_block *ib, struct cgraph_node *refering_node, struct varpool_node *refering_varpool_node, VEC(cgraph_node_ptr, heap) *nodes, - VEC(varpool_node_ptr, heap) *varpool_nodes) + VEC(varpool_node_ptr, heap) *varpool_nodes_vec) { struct cgraph_node *node = NULL; struct varpool_node *varpool_node = NULL; @@ -1120,7 +1125,7 @@ input_ref (struct lto_input_block *ib, if (type == IPA_REF_CGRAPH) node = VEC_index (cgraph_node_ptr, nodes, streamer_read_hwi (ib)); else - varpool_node = VEC_index (varpool_node_ptr, varpool_nodes, + varpool_node = VEC_index (varpool_node_ptr, varpool_nodes_vec, streamer_read_hwi (ib)); ipa_record_reference (refering_node, refering_varpool_node, node, varpool_node, use, NULL); @@ -1145,13 +1150,13 @@ input_edge (struct lto_input_block *ib, VEC(cgraph_node_ptr, heap) *nodes, int ecf_flags = 0; caller = VEC_index (cgraph_node_ptr, nodes, streamer_read_hwi (ib)); - if (caller == NULL || caller->decl == NULL_TREE) + if (caller == NULL || caller->symbol.decl == NULL_TREE) internal_error ("bytecode stream: no caller found while reading edge"); if (!indirect) { callee = VEC_index (cgraph_node_ptr, nodes, streamer_read_hwi (ib)); - if (callee == NULL || callee->decl == NULL_TREE) + if (callee == NULL || callee->symbol.decl == NULL_TREE) internal_error ("bytecode stream: no callee found while reading edge"); } else @@ -1215,7 +1220,7 @@ input_cgraph_1 (struct lto_file_decl_data *file_data, else { node = input_node (file_data, ib, tag,nodes); - if (node == NULL || node->decl == NULL_TREE) + if (node == NULL || node->symbol.decl == NULL_TREE) internal_error ("bytecode stream: found empty cgraph node"); VEC_safe_push (cgraph_node_ptr, heap, nodes, node); lto_cgraph_encoder_encode (file_data->cgraph_node_encoder, node); @@ -1229,16 +1234,16 @@ input_cgraph_1 (struct lto_file_decl_data *file_data, /* AUX pointers should be all non-zero for nodes read from the stream. */ #ifdef ENABLE_CHECKING FOR_EACH_VEC_ELT (cgraph_node_ptr, nodes, i, node) - gcc_assert (node->aux); + gcc_assert (node->symbol.aux); #endif FOR_EACH_VEC_ELT (cgraph_node_ptr, nodes, i, node) { int ref = (int) (intptr_t) node->global.inlined_to; /* We share declaration of builtins, so we may read same node twice. */ - if (!node->aux) + if (!node->symbol.aux) continue; - node->aux = NULL; + node->symbol.aux = NULL; /* Fixup inlined_to from reference to pointer. */ if (ref != LCC_NOT_FOUND) @@ -1246,16 +1251,16 @@ input_cgraph_1 (struct lto_file_decl_data *file_data, else node->global.inlined_to = NULL; - ref = (int) (intptr_t) node->same_comdat_group; + ref = (int) (intptr_t) node->symbol.same_comdat_group; /* Fixup same_comdat_group from reference to pointer. */ if (ref != LCC_NOT_FOUND) - node->same_comdat_group = VEC_index (cgraph_node_ptr, nodes, ref); + node->symbol.same_comdat_group = (symtab_node)VEC_index (cgraph_node_ptr, nodes, ref); else - node->same_comdat_group = NULL; + node->symbol.same_comdat_group = NULL; } FOR_EACH_VEC_ELT (cgraph_node_ptr, nodes, i, node) - node->aux = (void *)1; + node->symbol.aux = (void *)1; return nodes; } @@ -1279,24 +1284,24 @@ input_varpool_1 (struct lto_file_decl_data *file_data, } #ifdef ENABLE_CHECKING FOR_EACH_VEC_ELT (varpool_node_ptr, varpool, i, node) - gcc_assert (!node->aux); + gcc_assert (!node->symbol.aux); #endif FOR_EACH_VEC_ELT (varpool_node_ptr, varpool, i, node) { - int ref = (int) (intptr_t) node->same_comdat_group; + int ref = (int) (intptr_t) node->symbol.same_comdat_group; /* We share declaration of builtins, so we may read same node twice. */ - if (node->aux) + if (node->symbol.aux) continue; - node->aux = (void *)1; + node->symbol.aux = (void *)1; /* Fixup same_comdat_group from reference to pointer. */ if (ref != LCC_NOT_FOUND) - node->same_comdat_group = VEC_index (varpool_node_ptr, varpool, ref); + node->symbol.same_comdat_group = (symtab_node)VEC_index (varpool_node_ptr, varpool, ref); else - node->same_comdat_group = NULL; + node->symbol.same_comdat_group = NULL; } FOR_EACH_VEC_ELT (varpool_node_ptr, varpool, i, node) - node->aux = NULL; + node->symbol.aux = NULL; return varpool; } @@ -1418,15 +1423,15 @@ merge_profile_summaries (struct lto_file_decl_data **file_data_vec) During LTRANS we already have values of count_materialization_scale computed, so just update them. */ for (node = cgraph_nodes; node; node = node->next) - if (node->local.lto_file_data - && node->local.lto_file_data->profile_info.runs) + if (node->symbol.lto_file_data + && node->symbol.lto_file_data->profile_info.runs) { int scale; scale = ((node->count_materialization_scale * max_runs - + node->local.lto_file_data->profile_info.runs / 2) - / node->local.lto_file_data->profile_info.runs); + + node->symbol.lto_file_data->profile_info.runs / 2) + / node->symbol.lto_file_data->profile_info.runs); node->count_materialization_scale = scale; if (scale < 0) fatal_error ("Profile information in %s corrupted", @@ -1503,8 +1508,8 @@ input_cgraph (void) node for the parent function was never emitted to the gimple file, cgraph_node will create a node for it when setting the context of the nested function. */ - if (node->local.lto_file_data) - node->aux = NULL; + if (node->symbol.lto_file_data) + node->symbol.aux = NULL; } } @@ -1564,7 +1569,7 @@ output_node_opt_summary (struct output_block *ob, int parm_num; tree parm; - for (parm_num = 0, parm = DECL_ARGUMENTS (node->decl); parm; + for (parm_num = 0, parm = DECL_ARGUMENTS (node->symbol.decl); parm; parm = DECL_CHAIN (parm), parm_num++) if (map->old_tree == parm) break; @@ -1666,7 +1671,7 @@ input_node_opt_summary (struct cgraph_node *node, struct ipa_replace_map *map = ggc_alloc_ipa_replace_map (); VEC_safe_push (ipa_replace_map_p, gc, node->clone.tree_map, map); - for (parm_num = 0, parm = DECL_ARGUMENTS (node->decl); parm_num; + for (parm_num = 0, parm = DECL_ARGUMENTS (node->symbol.decl); parm_num; parm = DECL_CHAIN (parm)) parm_num --; map->parm_num = streamer_read_uhwi (ib_main); |