diff options
author | marxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-07-24 12:07:13 +0000 |
---|---|---|
committer | marxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-07-24 12:07:13 +0000 |
commit | 415d1b9a7810774124b32b9dc3990c81ba96efaa (patch) | |
tree | 4dd09f8eb18392a620ad92b028d01fbda5d27ee7 /gcc/lto | |
parent | a0792f1ef98b4610cc0a20de07c5f891e4c345a1 (diff) | |
download | gcc-415d1b9a7810774124b32b9dc3990c81ba96efaa.tar.gz |
IPA C++ refactoring 1/N
* cgraph.h (symtab_node):
(void register_symbol (void)): created from symtab_register_node
(void remove (void)): created from symtab_remove_node
(void dump (FILE *f)): created from dump_symtab_node
(void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
(void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
(struct ipa_ref *add_reference (symtab_node *referred_node,
enum ipa_ref_use use_type)): created from add_reference
(struct ipa_ref *add_reference (symtab_node *referred_node,
enum ipa_ref_use use_type, gimple stmt)): created from add_reference
(struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
gimple stmt)): created from maybe_add_reference
(bool semantically_equivalent_p (symtab_node *target)): created from
symtab_semantically_equivalent_p
(void remove_from_same_comdat_group (void)): created from
remove_from_same_comdat_group
(void add_to_same_comdat_group (symtab_node *old_node)): created from
symtab_add_to_same_comdat_group
(void dissolve_same_comdat_group_list (void)): created from
symtab_dissolve_same_comdat_group_list
(bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
(symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
created from symtab_alias_ultimate_target
(inline symtab_node *next_defined_symbol (void)): created from
symtab_next_defined_symbol
(bool resolve_alias (symtab_node *target)): created from
symtab_resolve_alias
(bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
(symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
(inline symtab_node *get_alias_target (void)): created from symtab_alias_target
(void set_section (const char *section)): created from set_section_1
(enum availability get_availability (void)): created from symtab_node_availability
(void make_decl_local (void)): created from symtab_make_decl_local
(bool real_symbol_p (void)): created from symtab_read_node
(can_be_discarded_p (void)): created from symtab_can_be_discarded
(inline bool comdat_local_p (void)): created from symtab_comdat_local_p
(inline bool in_same_comdat_group_p (symtab_node *target)): created from
symtab_in_same_comdat_p;
(bool address_taken_from_non_vtable_p (void)): created from
address_taken_from_non_vtable_p
(static inline symtab_node *get (const_tree decl)): created from symtab_get_node
(static void dump_table (FILE *)): created from dump_symtab
(static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
(static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
(static bool used_from_object_file_p_worker (symtab_node *node)): created from
symtab_used_from_object_file_p
(void dump_base (FILE *)): created from dump_symtab_base
(bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
(void unregister (void)): created from symtab_unregister_node
(struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
(static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
(static bool noninterposable_alias (symtab_node *node, void *data)): created from
symtab_nonoverwritable_alias_1
* cgraph.h (cgraph_node):
(bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
created from cgraph_remove_node_and_inline_clones
(void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
(void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
(cgraph_node *function_symbol (enum availability *avail = NULL)):
created from cgraph_function_node
(cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
created from cgraph_create_clone
(cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
created from cgraph_create_virtual_clone
(cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
(cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
(cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
created from cgraph_function_version_info
(struct cgraph_function_version_info *insert_new_function_version (void)):
created from insert_new_cgraph_node_version
(struct cgraph_function_version_info *function_version (void)): created from
get_cgraph_node_version
(void analyze (void)): created from analyze_function
(cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
tree real_alias) cgraph_add_thunk
(inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
(cgraph_node *ultimate_alias_target (availability *availability = NULL)):
created from cgraph_function_or_thunk_node
(bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
created from expand_thunk
(void reset (void)): created from cgraph_reset_node
(void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
(void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
(void remove (void)): created from cgraph_remove_node
(void dump (FILE *f)): created from dump_cgraph_node
(void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
(bool get_body (void)): created from cgraph_get_body
(void release_body (void)): created from cgraph_release_function_body
(void unnest (void)): created from cgraph_unnest_node
(void make_local (void)): created from cgraph_make_node_local
(void mark_address_taken (void)): created from cgraph_mark_address_taken_node
(struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
gcov_type count, int freq)): created from cgraph_create_edge
(struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
gcov_type count, int freq)): created from cgraph_create_indirect_edge
(void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
created from cgraph_create_edge_including_clones
(cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
(vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
(void remove_callers (void)): created from cgraph_node_remove_callers
(void remove_callees (void)): created from cgraph_node_remove_callees
(enum availability get_availability (void)): created from cgraph_function_body_availability
(void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
(void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
(void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
(void call_duplication_hooks (cgraph_node *node2)): created from
cgraph_call_node_duplication_hooks
(bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
(bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
(void call_function_insertion_hooks (void)):
created from cgraph_call_function_insertion_hooks
(inline void mark_force_output (void)): created from cgraph_mark_force_output_node
(bool local_p (void)): created from cgraph_local_node
(bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
(bool cannot_return_p (void)): created from cgraph_node_cannot_return
(bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
(inline bool only_called_directly_or_aliased_p (void)):
created from cgraph_only_called_directly_or_aliased_p
(bool will_be_removed_from_program_if_no_direct_calls_p (void)):
created from cgraph_will_be_removed_from_program_if_no_direct_calls
(bool can_remove_if_no_direct_calls_and_refs_p (void)):
created from cgraph_can_remove_if_no_direct_calls_and_refs_p
(bool can_remove_if_no_direct_calls_p (void)):
created from cgraph_can_remove_if_no_direct_calls_p
(inline bool has_gimple_body_p (void)):
created from cgraph_function_with_gimple_body_p
(bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
(static void dump_cgraph (FILE *f)): created from dump_cgraph
(static inline void debug_cgraph (void)): created from debug_cgraph
(static void record_function_versions (tree decl1, tree decl2)):
created from record_function_versions
(static void delete_function_version (tree decl)):
created from delete_function_version
(static void add_new_function (tree fndecl, bool lowered)):
created from cgraph_add_new_function
(static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
(static cgraph_node * create (tree decl)): created from cgraph_create_node
(static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
(static cgraph_node * get_create (tree)): created from cgraph_get_create_node
(static cgraph_node *get_for_asmname (tree asmname)):
created from cgraph_node_for_asm
(static cgraph_node * create_same_body_alias (tree alias, tree decl)):
created from cgraph_same_body_alias
(static bool used_from_object_file_p_worker (cgraph_node *node,
void *): new function
(static bool non_local_p (cgraph_node *node, void *)):
created from cgraph_non_local_node_p_1
(static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
created from verify_cgraph
(static bool make_local (cgraph_node *node, void *)):
created from cgraph_make_node_local
(static cgraph_node *create_alias (tree alias, tree target)):
created from cgraph_create_function_alias
(static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
created from cgraph_create_edge_1
* cgraph.h (varpool_node):
(void remove (void)): created from varpool_remove_node
(void dump (FILE *f)): created from dump_varpool_node
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212982 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lto')
-rw-r--r-- | gcc/lto/lto-partition.c | 41 | ||||
-rw-r--r-- | gcc/lto/lto-symtab.c | 30 | ||||
-rw-r--r-- | gcc/lto/lto.c | 12 |
3 files changed, 42 insertions, 41 deletions
diff --git a/gcc/lto/lto-partition.c b/gcc/lto/lto-partition.c index 5f290353500..8f2e236beb1 100644 --- a/gcc/lto/lto-partition.c +++ b/gcc/lto/lto-partition.c @@ -90,13 +90,14 @@ add_references_to_partition (ltrans_partition part, symtab_node *node) /* Add all duplicated references to the partition. */ for (i = 0; node->iterate_reference (i, ref); i++) - if (symtab_get_symbol_partitioning_class (ref->referred) == SYMBOL_DUPLICATE) + if (ref->referred->get_partitioning_class () == SYMBOL_DUPLICATE) add_symbol_to_partition (part, ref->referred); /* References to a readonly variable may be constant foled into its value. Recursively look into the initializers of the constant variable and add references, too. */ else if (is_a <varpool_node *> (ref->referred) - && varpool_ctor_useable_for_folding_p (varpool (ref->referred)) + && varpool_ctor_useable_for_folding_p + (dyn_cast <varpool_node *> (ref->referred)) && !lto_symtab_encoder_in_partition_p (part->encoder, ref->referred)) { if (!part->initializers_visited) @@ -112,7 +113,7 @@ add_references_to_partition (ltrans_partition part, symtab_node *node) static bool add_symbol_to_partition_1 (ltrans_partition part, symtab_node *node) { - enum symbol_partitioning_class c = symtab_get_symbol_partitioning_class (node); + enum symbol_partitioning_class c = node->get_partitioning_class (); struct ipa_ref *ref; symtab_node *node1; @@ -155,7 +156,7 @@ add_symbol_to_partition_1 (ltrans_partition part, symtab_node *node) for (e = cnode->callees; e; e = e->next_callee) if (!e->inline_failed) add_symbol_to_partition_1 (part, e->callee); - else if (symtab_get_symbol_partitioning_class (e->callee) == SYMBOL_DUPLICATE) + else if (e->callee->get_partitioning_class () == SYMBOL_DUPLICATE) add_symbol_to_partition (part, e->callee); /* Add all thunks associated with the function. */ @@ -196,7 +197,7 @@ contained_in_symbol (symtab_node *node) return node; if (cgraph_node *cnode = dyn_cast <cgraph_node *> (node)) { - cnode = cgraph_function_node (cnode, NULL); + cnode = cnode->function_symbol (); if (cnode->global.inlined_to) cnode = cnode->global.inlined_to; return cnode; @@ -215,7 +216,7 @@ add_symbol_to_partition (ltrans_partition part, symtab_node *node) symtab_node *node1; /* Verify that we do not try to duplicate something that can not be. */ - gcc_checking_assert (symtab_get_symbol_partitioning_class (node) == SYMBOL_DUPLICATE + gcc_checking_assert (node->get_partitioning_class () == SYMBOL_DUPLICATE || !symbol_partitioned_p (node)); while ((node1 = contained_in_symbol (node)) != node) @@ -228,7 +229,7 @@ add_symbol_to_partition (ltrans_partition part, symtab_node *node) Be lax about comdats; they may or may not be duplicated and we may end up in need to duplicate keyed comdat because it has unkeyed alias. */ - gcc_assert (symtab_get_symbol_partitioning_class (node) == SYMBOL_DUPLICATE + gcc_assert (node->get_partitioning_class () == SYMBOL_DUPLICATE || DECL_COMDAT (node->decl) || !symbol_partitioned_p (node)); @@ -276,7 +277,7 @@ lto_1_to_1_map (void) FOR_EACH_SYMBOL (node) { - if (symtab_get_symbol_partitioning_class (node) != SYMBOL_PARTITION + if (node->get_partitioning_class () != SYMBOL_PARTITION || symbol_partitioned_p (node)) continue; @@ -328,7 +329,7 @@ lto_max_map (void) FOR_EACH_SYMBOL (node) { - if (symtab_get_symbol_partitioning_class (node) != SYMBOL_PARTITION + if (node->get_partitioning_class () != SYMBOL_PARTITION || symbol_partitioned_p (node)) continue; partition = new_partition (node->asm_name ()); @@ -438,7 +439,7 @@ lto_balanced_map (int n_lto_partitions) gcc_assert (!vnode->aux); FOR_EACH_DEFINED_FUNCTION (node) - if (symtab_get_symbol_partitioning_class (node) == SYMBOL_PARTITION) + if (node->get_partitioning_class () == SYMBOL_PARTITION) { order[n_nodes++] = node; if (!node->alias) @@ -459,13 +460,13 @@ lto_balanced_map (int n_lto_partitions) if (!flag_toplevel_reorder) { FOR_EACH_VARIABLE (vnode) - if (symtab_get_symbol_partitioning_class (vnode) == SYMBOL_PARTITION) + if (vnode->get_partitioning_class () == SYMBOL_PARTITION) n_varpool_nodes++; varpool_order = XNEWVEC (varpool_node *, n_varpool_nodes); n_varpool_nodes = 0; FOR_EACH_VARIABLE (vnode) - if (symtab_get_symbol_partitioning_class (vnode) == SYMBOL_PARTITION) + if (vnode->get_partitioning_class () == SYMBOL_PARTITION) varpool_order[n_varpool_nodes++] = vnode; qsort (varpool_order, n_varpool_nodes, sizeof (varpool_node *), varpool_node_cmp); @@ -585,7 +586,7 @@ lto_balanced_map (int n_lto_partitions) if (!vnode->definition) continue; if (!symbol_partitioned_p (vnode) && flag_toplevel_reorder - && symtab_get_symbol_partitioning_class (vnode) == SYMBOL_PARTITION) + && vnode->get_partitioning_class () == SYMBOL_PARTITION) add_symbol_to_partition (partition, vnode); index = lto_symtab_encoder_lookup (partition->encoder, vnode); @@ -622,7 +623,7 @@ lto_balanced_map (int n_lto_partitions) number of symbols promoted to hidden. */ if (!symbol_partitioned_p (vnode) && flag_toplevel_reorder && !varpool_can_remove_if_no_refs (vnode) - && symtab_get_symbol_partitioning_class (vnode) == SYMBOL_PARTITION) + && vnode->get_partitioning_class () == SYMBOL_PARTITION) add_symbol_to_partition (partition, vnode); index = lto_symtab_encoder_lookup (partition->encoder, vnode); @@ -714,7 +715,7 @@ lto_balanced_map (int n_lto_partitions) if (flag_toplevel_reorder) { FOR_EACH_VARIABLE (vnode) - if (symtab_get_symbol_partitioning_class (vnode) == SYMBOL_PARTITION + if (vnode->get_partitioning_class () == SYMBOL_PARTITION && !symbol_partitioned_p (vnode)) add_symbol_to_partition (partition, vnode); } @@ -814,7 +815,7 @@ may_need_named_section_p (lto_symtab_encoder_t encoder, symtab_node *node) struct cgraph_node *cnode = dyn_cast <cgraph_node *> (node); if (!cnode) return false; - if (symtab_real_symbol_p (node)) + if (node->real_symbol_p ()) return false; return (!encoder || (lto_symtab_encoder_lookup (encoder, node) != LCC_NOT_FOUND @@ -841,7 +842,7 @@ rename_statics (lto_symtab_encoder_t encoder, symtab_node *node) external symbols (i.e. those not defined). Remove this test once this is fixed. */ || DECL_EXTERNAL (node->decl) - || !symtab_real_symbol_p (node)) + || !node->real_symbol_p ()) && !may_need_named_section_p (encoder, node)) return; @@ -850,7 +851,7 @@ rename_statics (lto_symtab_encoder_t encoder, symtab_node *node) same name as external or public symbol.) */ for (s = symtab_node_for_asm (name); s; s = s->next_sharing_asm_name) - if ((symtab_real_symbol_p (s) || may_need_named_section_p (encoder, s)) + if ((s->real_symbol_p () || may_need_named_section_p (encoder, s)) && s->decl != node->decl && (!encoder || lto_symtab_encoder_lookup (encoder, s) != LCC_NOT_FOUND)) @@ -868,7 +869,7 @@ rename_statics (lto_symtab_encoder_t encoder, symtab_node *node) mangled name. */ for (s = symtab_node_for_asm (name); s;) if (!s->externally_visible - && ((symtab_real_symbol_p (s) + && ((s->real_symbol_p () && !DECL_EXTERNAL (node->decl) && !TREE_PUBLIC (node->decl)) || may_need_named_section_p (encoder, s)) @@ -924,7 +925,7 @@ lto_promote_cross_file_statics (void) || lto_symtab_encoder_in_partition_p (encoder, node) /* ... or if we do not partition it. This mean that it will appear in every partition refernecing it. */ - || symtab_get_symbol_partitioning_class (node) != SYMBOL_PARTITION) + || node->get_partitioning_class () != SYMBOL_PARTITION) continue; promote_symbol (node); diff --git a/gcc/lto/lto-symtab.c b/gcc/lto/lto-symtab.c index 82ee827f63c..2332225afd4 100644 --- a/gcc/lto/lto-symtab.c +++ b/gcc/lto/lto-symtab.c @@ -59,13 +59,13 @@ lto_cgraph_replace_node (struct cgraph_node *node, /* Merge node flags. */ if (node->force_output) - cgraph_mark_force_output_node (prevailing_node); + prevailing_node->mark_force_output (); if (node->forced_by_abi) prevailing_node->forced_by_abi = true; if (node->address_taken) { gcc_assert (!prevailing_node->global.inlined_to); - cgraph_mark_address_taken_node (prevailing_node); + prevailing_node->mark_address_taken (); } /* Redirect all incoming edges. */ @@ -90,10 +90,10 @@ lto_cgraph_replace_node (struct cgraph_node *node, lto_free_function_in_decl_state_for_node (node); if (node->decl != prevailing_node->decl) - cgraph_release_function_body (node); + node->release_body (); /* Finally remove the replaced node. */ - cgraph_remove_node (node); + node->remove (); } /* Replace the cgraph node NODE with PREVAILING_NODE in the cgraph, merging @@ -126,7 +126,7 @@ lto_varpool_replace_node (varpool_node *vnode, tls_model_names [prevailing_node->tls_model]); } /* Finally remove the replaced node. */ - varpool_remove_node (vnode); + vnode->remove (); } /* Merge two variable or function symbol table entries PREVAILING and ENTRY. @@ -261,7 +261,7 @@ lto_symtab_symbol_p (symtab_node *e) { if (!TREE_PUBLIC (e->decl) && !DECL_EXTERNAL (e->decl)) return false; - return symtab_real_symbol_p (e); + return e->real_symbol_p (); } /* Return true if the symtab entry E can be the prevailing one. */ @@ -445,7 +445,7 @@ lto_symtab_merge_decls_1 (symtab_node *first) first->asm_name ()); for (e = first; e; e = e->next_sharing_asm_name) if (TREE_PUBLIC (e->decl)) - dump_symtab_node (cgraph_dump_file, e); + e->dump (cgraph_dump_file); } /* Compute the symbol resolutions. This is a no-op when using the @@ -539,7 +539,7 @@ lto_symtab_merge_decls_1 (symtab_node *first) { fprintf (cgraph_dump_file, "After resolution:\n"); for (e = prevailing; e; e = e->next_sharing_asm_name) - dump_symtab_node (cgraph_dump_file, e); + e->dump (cgraph_dump_file); } } @@ -577,9 +577,9 @@ lto_symtab_merge_symbols_1 (symtab_node *prevailing) continue; cgraph_node *ce = dyn_cast <cgraph_node *> (e); if (ce && !DECL_BUILT_IN (e->decl)) - lto_cgraph_replace_node (ce, cgraph (prevailing)); + lto_cgraph_replace_node (ce, dyn_cast<cgraph_node *> (prevailing)); if (varpool_node *ve = dyn_cast <varpool_node *> (e)) - lto_varpool_replace_node (ve, varpool (prevailing)); + lto_varpool_replace_node (ve, dyn_cast<varpool_node *> (prevailing)); } return; @@ -620,7 +620,7 @@ lto_symtab_merge_symbols (void) symtab_node *tgt = symtab_node_for_asm (node->alias_target); gcc_assert (node->weakref); if (tgt) - symtab_resolve_alias (node, tgt); + node->resolve_alias (tgt); } node->aux = NULL; @@ -632,7 +632,7 @@ lto_symtab_merge_symbols (void) possible that tree merging unified the declaration. We do not want duplicate entries in symbol table. */ if (cnode && DECL_BUILT_IN (node->decl) - && (cnode2 = cgraph_get_node (node->decl)) + && (cnode2 = cgraph_node::get (node->decl)) && cnode2 != cnode) lto_cgraph_replace_node (cnode2, cnode); @@ -641,7 +641,7 @@ lto_symtab_merge_symbols (void) nodes if tree merging occured. */ if ((vnode = dyn_cast <varpool_node *> (node)) && DECL_HARD_REGISTER (vnode->decl) - && (node2 = symtab_get_node (vnode->decl)) + && (node2 = symtab_node::get (vnode->decl)) && node2 != node) lto_varpool_replace_node (dyn_cast <varpool_node *> (node2), vnode); @@ -650,9 +650,9 @@ lto_symtab_merge_symbols (void) /* Abstract functions may have duplicated cgraph nodes attached; remove them. */ else if (cnode && DECL_ABSTRACT (cnode->decl) - && (cnode2 = cgraph_get_node (node->decl)) + && (cnode2 = cgraph_node::get (node->decl)) && cnode2 != cnode) - cgraph_remove_node (cnode2); + cnode2->remove (); node->decl->decl_with_vis.symtab_node = node; } diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index 5056915529f..683120c0081 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -205,7 +205,7 @@ lto_materialize_function (struct cgraph_node *node) decl = node->decl; /* Read in functions with body (analyzed nodes) and also functions that are needed to produce virtual clones. */ - if ((cgraph_function_with_gimple_body_p (node) && node->analyzed) + if ((node->has_gimple_body_p () && node->analyzed) || node->used_as_abstract_origin || has_analyzed_clone_p (node)) { @@ -3014,7 +3014,7 @@ read_cgraph_and_symbols (unsigned nfiles, const char **fnames) /* Store resolutions into the symbol table. */ FOR_EACH_SYMBOL (snode) - if (symtab_real_symbol_p (snode) + if (snode->real_symbol_p () && snode->lto_file_data && snode->lto_file_data->resolution_map && (res = pointer_map_contains (snode->lto_file_data->resolution_map, @@ -3082,7 +3082,7 @@ read_cgraph_and_symbols (unsigned nfiles, const char **fnames) if (cgraph_dump_file) { fprintf (cgraph_dump_file, "Before merging:\n"); - dump_symtab (cgraph_dump_file); + symtab_node::dump_table (cgraph_dump_file); } lto_symtab_merge_symbols (); /* Removal of unreacable symbols is needed to make verify_symtab to pass; @@ -3240,7 +3240,7 @@ do_whole_program_analysis (void) cgraph_function_flags_ready = true; if (cgraph_dump_file) - dump_symtab (cgraph_dump_file); + symtab_node::dump_table (cgraph_dump_file); bitmap_obstack_initialize (NULL); cgraph_state = CGRAPH_STATE_IPA_SSA; @@ -3250,10 +3250,10 @@ do_whole_program_analysis (void) if (cgraph_dump_file) { fprintf (cgraph_dump_file, "Optimized "); - dump_symtab (cgraph_dump_file); + symtab_node::dump_table (cgraph_dump_file); } #ifdef ENABLE_CHECKING - verify_symtab (); + symtab_node::verify_symtab_nodes (); #endif bitmap_obstack_release (NULL); |