GCC Middle and Back End API Reference
varpool_node Struct Reference

#include <cgraph.h>

Inheritance diagram for varpool_node:
Collaboration diagram for varpool_node:

Public Member Functions

 varpool_node ()
 
void dump (FILE *f)
 
void DEBUG_FUNCTION debug (void)
 
void remove (void)
 
void remove_initializer (void)
 
void analyze (void)
 
availability get_availability (symtab_node *ref=NULL)
 
tree get_constructor (void)
 
bool ctor_useable_for_folding_p (void)
 
varpool_nodeultimate_alias_target (availability *availability=NULL, symtab_node *ref=NULL)
 
varpool_nodeget_alias_target (void)
 
bool assemble_decl (void)
 
void finalize_named_section_flags (void)
 
bool call_for_symbol_and_aliases (bool(*callback)(varpool_node *, void *), void *data, bool include_overwritable)
 
bool externally_visible_p (void)
 
bool all_refs_explicit_p ()
 
bool can_remove_if_no_refs_p (void)
 
const char * name () const
 
const char * dump_name () const
 
const char * asm_name () const
 
const char * dump_asm_name () const
 
const char * get_visibility_string () const
 
const char * get_symtab_type_string () const
 
void register_symbol (void)
 
void reset (bool preserve_comdat_group=false)
 
void dump_graphviz (FILE *f)
 
void DEBUG_FUNCTION verify (void)
 
ipa_refcreate_reference (symtab_node *referred_node, enum ipa_ref_use use_type)
 
ipa_refcreate_reference (symtab_node *referred_node, enum ipa_ref_use use_type, gimple *stmt)
 
ipa_refmaybe_create_reference (tree val, gimple *stmt)
 
void clone_references (symtab_node *node)
 
void clone_referring (symtab_node *node)
 
ipa_refclone_reference (ipa_ref *ref, gimple *stmt)
 
ipa_reffind_reference (symtab_node *referred_node, gimple *stmt, unsigned int lto_stmt_uid, enum ipa_ref_use use_type)
 
void remove_stmt_references (gimple *stmt)
 
void clear_stmts_in_references (void)
 
void remove_all_references (void)
 
void remove_all_referring (void)
 
void dump_references (FILE *file)
 
void dump_referring (FILE *)
 
unsigned num_references (void)
 
ipa_refiterate_reference (unsigned i, ipa_ref *&ref)
 
ipa_refiterate_referring (unsigned i, ipa_ref *&ref)
 
ipa_refiterate_direct_aliases (unsigned i, ipa_ref *&ref)
 
bool semantically_equivalent_p (symtab_node *target)
 
enum symbol_partitioning_class get_partitioning_class (void)
 
tree get_comdat_group ()
 
tree get_comdat_group_id ()
 
void set_comdat_group (tree group)
 
const char * get_section () const
 
void remove_from_same_comdat_group (void)
 
void add_to_same_comdat_group (symtab_node *old_node)
 
void dissolve_same_comdat_group_list (void)
 
bool used_from_object_file_p (void)
 
symtab_nodenext_defined_symbol (void)
 
bool resolve_alias (symtab_node *target, bool transparent=false)
 
void fixup_same_cpp_alias_visibility (symtab_node *target)
 
bool call_for_symbol_and_aliases (bool(*callback)(symtab_node *, void *), void *data, bool include_overwrite)
 
symtab_nodenoninterposable_alias (void)
 
tree get_alias_target_tree ()
 
void set_section (const char *section)
 
void set_section (const symtab_node &other)
 
void set_section_for_node (const char *section)
 
void set_section_for_node (const symtab_node &other)
 
void set_init_priority (priority_type priority)
 
priority_type get_init_priority ()
 
bool prevailing_p (void)
 
bool binds_to_current_def_p (symtab_node *ref=NULL)
 
void make_decl_local (void)
 
void copy_visibility_from (symtab_node *n)
 
unsigned int definition_alignment ()
 
bool can_increase_alignment_p ()
 
void increase_alignment (unsigned int align)
 
bool has_aliases_p (void)
 
bool real_symbol_p (void)
 
bool output_to_lto_symbol_table_p (void)
 
bool needed_p (void)
 
bool native_rtl_p () const
 
bool referred_to_p (bool include_self=true)
 
bool can_be_discarded_p (void)
 
bool comdat_local_p (void)
 
bool in_same_comdat_group_p (symtab_node *target)
 
bool nonzero_address ()
 
int equal_address_to (symtab_node *s2, bool memory_accessed=false)
 
bool address_matters_p ()
 
bool address_can_be_compared_p (void)
 

Static Public Member Functions

static void add (tree decl)
 
static varpool_nodeget (const_tree decl)
 
static void finalize_decl (tree decl)
 
static varpool_nodecreate_extra_name_alias (tree alias, tree decl)
 
static varpool_nodecreate_alias (tree, tree)
 
static void dump_varpool (FILE *f)
 
static void DEBUG_FUNCTION debug_varpool (void)
 
static varpool_nodecreate_empty (void)
 
static varpool_nodeget_create (tree decl)
 
static varpool_nodeget_for_asmname (tree asmname)
 
static symtab_nodeget_for_asmname (const_tree asmname)
 
static void check_ifunc_callee_symtab_nodes (void)
 
static DEBUG_FUNCTION void verify_symtab_nodes (void)
 
static void checking_verify_symtab_nodes (void)
 

Data Fields

unsigned output: 1
 
unsigned dynamically_initialized: 1
 
enum tls_model tls_model: 3
 
unsigned used_by_single_function: 1
 
enum symtab_type type: 8
 
enum ld_plugin_symbol_resolution resolution: 8
 
unsigned definition: 1
 
unsigned alias: 1
 
unsigned transparent_alias: 1
 
unsigned weakref: 1
 
unsigned cpp_implicit_alias: 1
 
unsigned symver: 1
 
unsigned analyzed: 1
 
unsigned writeonly: 1
 
unsigned refuse_visibility_changes: 1
 
unsigned externally_visible: 1
 
unsigned no_reorder: 1
 
unsigned force_output: 1
 
unsigned forced_by_abi: 1
 
unsigned unique_name: 1
 
unsigned implicit_section: 1
 
unsigned body_removed: 1
 
unsigned semantic_interposition: 1
 
unsigned used_from_other_partition: 1
 
unsigned in_other_partition: 1
 
unsigned address_taken: 1
 
unsigned in_init_priority_hash: 1
 
unsigned need_lto_streaming: 1
 
unsigned offloadable: 1
 
unsigned ifunc_resolver: 1
 
int order
 
tree decl
 
symtab_nodenext
 
symtab_nodeprevious
 
symtab_nodenext_sharing_asm_name
 
symtab_nodeprevious_sharing_asm_name
 
symtab_nodesame_comdat_group
 
ipa_ref_list ref_list
 
tree alias_target
 
struct lto_file_decl_datalto_file_data
 
void * aux
 
tree x_comdat_group
 
section_hash_entryx_section
 

Protected Member Functions

void dump_base (FILE *)
 
bool DEBUG_FUNCTION verify_base (void)
 
void unregister (struct clone_info *)
 
struct symbol_priority_mappriority_info (void)
 
bool call_for_symbol_and_aliases_1 (bool(*callback)(symtab_node *, void *), void *data, bool include_overwrite)
 

Private Member Functions

void assemble_aliases (void)
 
bool call_for_symbol_and_aliases_1 (bool(*callback)(varpool_node *, void *), void *data, bool include_overwritable)
 
symtab_nodeultimate_alias_target_1 (enum availability *avail=NULL, symtab_node *ref=NULL)
 
const char * get_dump_name (bool asm_name_p) const
 

Static Private Member Functions

static bool noninterposable_alias (symtab_node *node, void *data)
 
static bool set_section_from_string (symtab_node *n, void *s)
 
static bool set_section_from_node (symtab_node *n, void *o)
 
static bool set_implicit_section (symtab_node *n, void *)
 

Detailed Description

The varpool data structure.
Each static variable decl has assigned varpool_node.   

Constructor & Destructor Documentation

◆ varpool_node()

varpool_node::varpool_node ( )
inlineexplicit

Member Function Documentation

◆ add()

void varpool_node::add ( tree decl)
static
Add the variable DECL to the varpool.
Unlike finalize_decl function is intended to be used
by middle end and allows insertion of new variable at arbitrary point
of compilation.   

References symbol_table::call_varpool_insertion_hooks(), DECL_ATTRIBUTES, symtab_node::externally_visible, externally_visible_p(), finalize_decl(), get_create(), lookup_attribute(), symtab_node::no_reorder, and symtab.

Referenced by get_emutls_init_templ_addr(), gimplify_function_tree(), and new_emutls_decl().

◆ add_to_same_comdat_group()

◆ address_can_be_compared_p()

bool symtab_node::address_can_be_compared_p ( void )
inherited

◆ address_matters_p()

bool symtab_node::address_matters_p ( )
inherited
Return true if symbol's address may possibly be compared to other
symbol's address.   

References address_matters_1(), symtab_node::alias, symtab_node::call_for_symbol_and_aliases(), gcc_assert, and NULL.

Referenced by ipa_icf::sem_function::merge(), and ipa_icf::sem_variable::merge().

◆ all_refs_explicit_p()

bool varpool_node::all_refs_explicit_p ( )
inline
Return true when all references to variable must be visible in ipa_ref_list.
i.e. if the variable is not externally visible or not used in some magic
way (asm statement or such).
The magic uses are all summarized in force_output flag.   

References symtab_node::definition, symtab_node::externally_visible, symtab_node::force_output, and symtab_node::used_from_other_partition.

Referenced by create_variable_info_for(), ipa_single_use(), and process_references().

◆ analyze()

◆ asm_name()

const char * symtab_node::asm_name ( ) const
inherited
Return printable assembler name of NODE.
This function is used only for debugging.  When assembler name
is unknown go with identifier name.   

References DECL_ASSEMBLER_NAME, DECL_ASSEMBLER_NAME_SET_P, IDENTIFIER_POINTER, and symtab_node::name().

Referenced by dump_callgraph_transformation(), symtab_node::get_dump_name(), symtab_node::name(), and cgraph_node::remove().

◆ assemble_aliases()

void varpool_node::assemble_aliases ( void )
private
Assemble thunks and aliases associated to varpool node.   

References symtab_node::alias, DECL_ASSEMBLER_NAME, do_assemble_alias(), do_assemble_symver(), dyn_cast(), FOR_EACH_ALIAS, and ipa_ref::referring.

Referenced by assemble_decl().

◆ assemble_decl()

◆ binds_to_current_def_p()

◆ call_for_symbol_and_aliases() [1/2]

bool symtab_node::call_for_symbol_and_aliases ( bool(* callback )(symtab_node *, void *),
void * data,
bool include_overwritable )
inlineinherited

◆ call_for_symbol_and_aliases() [2/2]

bool varpool_node::call_for_symbol_and_aliases ( bool(* callback )(varpool_node *, void *),
void * data,
bool include_overwritable )
inline
Call callback on varpool symbol and aliases associated to varpool symbol.
When INCLUDE_OVERWRITABLE is false, overwritable symbols are
skipped.  

References AVAIL_INTERPOSABLE, call_for_symbol_and_aliases_1(), get_availability(), and symtab_node::has_aliases_p().

Referenced by ipa_discover_variable_flags(), ipa_lower_emutls(), ipa_pta_execute(), and ipa_icf::sem_variable::merge().

◆ call_for_symbol_and_aliases_1() [1/2]

bool symtab_node::call_for_symbol_and_aliases_1 ( bool(* callback )(symtab_node *, void *),
void * data,
bool include_overwritable )
protectedinherited
Worker for call_for_symbol_and_aliases.   

References symtab_node::alias, AVAIL_INTERPOSABLE, FOR_EACH_ALIAS, and ipa_ref::referring.

Referenced by symtab_node::call_for_symbol_and_aliases().

◆ call_for_symbol_and_aliases_1() [2/2]

bool varpool_node::call_for_symbol_and_aliases_1 ( bool(* callback )(varpool_node *, void *),
void * data,
bool include_overwritable )
private
Worker for call_for_symbol_and_aliases.   

References symtab_node::alias, AVAIL_INTERPOSABLE, dyn_cast(), FOR_EACH_ALIAS, and ipa_ref::referring.

Referenced by call_for_symbol_and_aliases().

◆ can_be_discarded_p()

◆ can_increase_alignment_p()

◆ can_remove_if_no_refs_p()

bool varpool_node::can_remove_if_no_refs_p ( void )
inline

◆ check_ifunc_callee_symtab_nodes()

◆ checking_verify_symtab_nodes()

void symtab_node::checking_verify_symtab_nodes ( void )
inlinestaticinherited

◆ clear_stmts_in_references()

void symtab_node::clear_stmts_in_references ( void )
inherited
Remove all stmt references in non-speculative references in THIS
and all clones.
Those are not maintained during inlining & cloning.
The exception are speculative references that are updated along
with callgraph edges associated with them.   

References symtab_node::clear_stmts_in_references(), cgraph_node::clones, dyn_cast(), i, symtab_node::iterate_reference(), cgraph_node::next_sibling_clone, NULL, and r.

Referenced by symtab_node::clear_stmts_in_references(), inline_transform(), and cgraph_node::materialize_clone().

◆ clone_reference()

ipa_ref * symtab_node::clone_reference ( ipa_ref * ref,
gimple * stmt )
inherited
Clone reference REF to this symtab_node and set its stmt to STMT.   

References symtab_node::create_reference(), ipa_ref::lto_stmt_uid, ipa_ref::referred, ipa_ref::speculative, ipa_ref::speculative_id, and ipa_ref::use.

Referenced by ipa_edge_args_sum_t::duplicate().

◆ clone_references()

void symtab_node::clone_references ( symtab_node * node)
inherited

◆ clone_referring()

void symtab_node::clone_referring ( symtab_node * node)
inherited

◆ comdat_local_p()

◆ copy_visibility_from()

◆ create_alias()

◆ create_empty()

varpool_node * varpool_node::create_empty ( void )
static
Allocate new callgraph node and insert it into basic data structures.   

References ggc_alloc().

Referenced by get_create(), and input_varpool_node().

◆ create_extra_name_alias()

varpool_node * varpool_node::create_extra_name_alias ( tree alias,
tree decl )
static
Attempt to mark ALIAS as an alias to DECL.  Return TRUE if successful.
Extra name aliases are output whenever DECL is output.   

References symtab_node::alias, symtab_node::cpp_implicit_alias, symbol_table::cpp_implicit_aliases_done, create_alias(), get_create(), NULL, symtab_node::resolve_alias(), symtab, and TARGET_SUPPORTS_ALIASES.

◆ create_reference() [1/2]

◆ create_reference() [2/2]

ipa_ref * symtab_node::create_reference ( symtab_node * referred_node,
enum ipa_ref_use use_type,
gimple * stmt )
inherited
Return ipa reference from this symtab_node to
REFERRED_NODE or REFERRED_VARPOOL_NODE. USE_TYPE specify type
of the use and STMT the statement (if it exists).   

References gcc_checking_assert, i, IPA_REF_ALIAS, is_a(), symtab_node::iterate_reference(), ipa_ref::lto_stmt_uid, NULL, symtab_node::ref_list, ipa_ref_list::references, ipa_ref::referred, ipa_ref::referred_index, ipa_ref::referring, ipa_ref_list::referring, ipa_ref::speculative, ipa_ref::speculative_id, ipa_ref::stmt, and ipa_ref::use.

◆ ctor_useable_for_folding_p()

◆ debug()

void varpool_node::debug ( void )
Dump given varpool node to stderr.   

References dump().

◆ debug_varpool()

DEBUG_FUNCTION void varpool_node::debug_varpool ( void )
static
Dump the variable pool to stderr.   

References dump_varpool().

◆ definition_alignment()

unsigned int symtab_node::definition_alignment ( )
inherited
Return desired alignment of the definition.  This is NOT alignment useful
to access THIS, because THIS may be interposable and DECL_ALIGN should
be used instead.  It however must be guaranteed when output definition
of THIS.   

References symtab_node::alias, symtab_node::call_for_symbol_and_aliases(), gcc_assert, and get_alignment_1().

Referenced by assemble_start_function(), build_constant_desc(), emit_local(), function_section_1(), and output_constant_def_contents().

◆ dissolve_same_comdat_group_list()

void symtab_node::dissolve_same_comdat_group_list ( void )
inherited

◆ dump()

◆ dump_asm_name()

◆ dump_base()

void symtab_node::dump_base ( FILE * f)
protectedinherited
Dump base fields of symtab nodes to F.  Not to be used directly.   

References symtab_node::address_taken, symtab_node::alias, symtab_node::alias_target, symtab_node::analyzed, symtab_node::aux, symtab_node::body_removed, symtab_node::cpp_implicit_alias, DECL_ARTIFICIAL, DECL_ASSEMBLER_NAME, DECL_COMDAT, DECL_COMMON, DECL_DLLIMPORT_P, DECL_EXTERNAL, DECL_ONE_ONLY, DECL_P, DECL_STATIC_CONSTRUCTOR, DECL_STATIC_DESTRUCTOR, DECL_VIRTUAL_P, DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_WEAK, symtab_node::definition, dump_addr(), symtab_node::dump_asm_name(), dump_flags, symtab_node::dump_references(), symtab_node::dump_referring(), symtab_node::externally_visible, lto_file_decl_data::file_name, symtab_node::force_output, symtab_node::forced_by_abi, symtab_node::get_comdat_group(), symtab_node::get_comdat_group_id(), symtab_node::get_section(), IDENTIFIER_POINTER, symtab_node::ifunc_resolver, symtab_node::implicit_section, symtab_node::in_other_partition, ld_plugin_symbol_resolution_names, symtab_node::lto_file_data, symtab_node::name(), symtab_node::next_sharing_asm_name, symtab_node::no_reorder, symtab_node::order, symtab_node::previous_sharing_asm_name, symtab_node::resolution, symtab_node::same_comdat_group, symtab_node::semantic_interposition, symtab_type_names, symtab_node::symver, TDF_ADDRESS, symtab_node::transparent_alias, TREE_ASM_WRITTEN, TREE_CODE, TREE_PUBLIC, symtab_node::used_from_other_partition, and symtab_node::weakref.

Referenced by cgraph_node::dump(), and dump().

◆ dump_graphviz()

void symtab_node::dump_graphviz ( FILE * f)
inherited

References dyn_cast().

Referenced by symbol_table::dump_graphviz().

◆ dump_name()

const char * symtab_node::dump_name ( ) const
inherited

References symtab_node::get_dump_name().

Referenced by adjust_references_in_caller(), analyze_function(), analyze_function_body(), analyze_functions(), call_may_clobber_ref_p_1(), copy_bb(), create_specialized_node(), decide_about_value(), decide_whether_version_node(), determine_versionability(), drop_profile(), cgraph_node::dump(), ipa_icf::sem_item::dump(), speculative_call_summary::dump(), cgraph_node::dump_graphviz(), dump_ipa_call_summary(), dump_malloc_lattice(), dump_modref_edge_summaries(), dump_profile_updates(), ipa_icf::sem_function::equals(), ipa_icf::sem_variable::equals(), estimate_local_effects(), ipa_call_context::estimate_size_and_time(), function_and_variable_visibility(), generate_summary(), cgraph_node::get_create(), identify_dead_nodes(), init_node_map(), initialize_node_lattices(), inline_analyze_function(), inline_call(), inline_small_functions(), inline_to_all_callers_1(), ipa_devirt(), ipa_discover_variable_flags(), ipa_dump_fn_summary(), ipa_impossible_devirt_target(), ipa_inline(), ipa_make_edge_direct_to_target(), ipa_make_function_const(), ipa_make_function_pure(), ipa_merge_modref_summary_after_inlining(), ipa_merge_profiles(), ipa_print_node_jump_functions(), ipa_print_node_params(), ipa_profile(), ipa_profile_dump_all_summaries(), ipa_propagate_frequency(), ipa_pta_execute(), ipa_single_use(), ipcp_cloning_candidate_p(), ipcp_store_vr_results(), ipcp_transform_function(), make_item_for_dump_symtab_node(), cgraph_edge::make_speculative(), cgraph_node::materialize_clone(), ipa_icf::sem_item_optimizer::merge_classes(), optimize_weakref(), output_constructor(), output_function(), perhaps_add_new_callers(), print_all_lattices(), propagate(), propagate_bits_across_jump_function(), propagate_controlled_uses(), propagate_malloc(), propagate_nothrow(), propagate_pure_const(), pure_const_read_summary(), read_write_all_from_decl(), recursive_inlining(), cgraph_edge::redirect_call_stmt_to_callee(), ref_maybe_used_by_call_p_1(), remove_described_reference(), symbol_table::remove_unreachable_nodes(), cgraph_edge::resolve_speculation(), save_inline_function_body(), stmt_kills_ref_p(), verify_speculative_call(), walk_polymorphic_call_targets(), walk_polymorphic_call_targets(), and worse_state().

◆ dump_references()

void symtab_node::dump_references ( FILE * file)
inherited

◆ dump_referring()

void symtab_node::dump_referring ( FILE * file)
inherited

◆ dump_varpool()

void varpool_node::dump_varpool ( FILE * f)
static
Dump the variable pool to F.   

References dump(), and FOR_EACH_VARIABLE.

Referenced by debug_varpool().

◆ equal_address_to()

int symtab_node::equal_address_to ( symtab_node * s2,
bool memory_accessed = false )
inherited
Return 0 if symbol is known to have different address than S2,
Return 1 if symbol is known to have same address as S2,
return -1 otherwise.  

If MEMORY_ACCESSED is true, assume that both memory pointer to THIS
and S2 is going to be accessed.  This eliminates the situations when
either THIS or S2 is NULL and is useful for comparing bases when deciding
about memory aliasing.   

References symtab_node::alias, symtab_node::analyzed, AVAIL_AVAILABLE, symtab_node::decl, DECL_ATTRIBUTES, decl_binds_to_current_def_p(), DECL_VIRTUAL_P, symtab_node::equal_address_to(), folding_initializer, symtab_node::get_alias_target(), lookup_attribute(), symtab_node::nonzero_address(), symtab_node::refuse_visibility_changes, symtab_node::transparent_alias, TREE_CODE, symtab_node::ultimate_alias_target(), and VAR_P.

Referenced by address_compare(), compare_base_decls(), ipa_icf::sem_item::compare_symbol_references(), and symtab_node::equal_address_to().

◆ externally_visible_p()

◆ finalize_decl()

◆ finalize_named_section_flags()

void varpool_node::finalize_named_section_flags ( void )
For variables in named sections make sure get_variable_section
is called before we switch to those sections.  Then section
conflicts between read-only and read-only requiring relocations
sections can be resolved.   

References symtab_node::alias, DECL_EXTERNAL, DECL_HAS_VALUE_EXPR_P, symtab_node::get_section(), get_variable_section(), symtab_node::in_other_partition, TREE_ASM_WRITTEN, and VAR_P.

Referenced by output_in_order(), and symbol_table::output_variables().

◆ find_reference()

ipa_ref * symtab_node::find_reference ( symtab_node * referred_node,
gimple * stmt,
unsigned int lto_stmt_uid,
enum ipa_ref_use use_type )
inherited
Find the structure describing a reference to REFERRED_NODE of USE_TYPE and
associated with statement STMT or LTO_STMT_UID.   

References i, symtab_node::iterate_reference(), NULL, and r.

Referenced by adjust_references_in_caller(), ipa_edge_args_sum_t::duplicate(), ipcp_discover_new_direct_edges(), propagate_controlled_uses(), and remove_described_reference().

◆ fixup_same_cpp_alias_visibility()

void symtab_node::fixup_same_cpp_alias_visibility ( symtab_node * target)
inherited
C++ FE sometimes change linkage flags after producing same body aliases.

FIXME: C++ produce implicit aliases for virtual functions and vtables that
are obviously equivalent.  The way it is doing so is however somewhat
kludgy and interferes with the visibility code. As a result we need to
copy the visibility from the target to get things right.   

References symtab_node::add_to_same_comdat_group(), symtab_node::decl, DECL_COMDAT, DECL_DECLARED_INLINE_P, DECL_DISREGARD_INLINE_LIMITS, DECL_EXTERNAL, DECL_VISIBILITY, DECL_WEAK, symtab_node::externally_visible, symtab_node::get_comdat_group(), is_a(), symtab_node::same_comdat_group, symtab_node::set_comdat_group(), and TREE_PUBLIC.

Referenced by analyze_functions(), and symtab_node::resolve_alias().

◆ get()

◆ get_alias_target()

varpool_node * varpool_node::get_alias_target ( void )
inline

◆ get_alias_target_tree()

tree symtab_node::get_alias_target_tree ( )
inlineinherited
Return the DECL (or identifier) that alias is aliasing.  Unlike the above,
this works whether or not the alias has been analyzed already.   

References symtab_node::alias_target, symtab_node::decl, and symtab_node::get_alias_target().

Referenced by process_function_and_variable_attributes().

◆ get_availability()

◆ get_comdat_group()

◆ get_comdat_group_id()

tree symtab_node::get_comdat_group_id ( )
inlineinherited

◆ get_constructor()

◆ get_create()

◆ get_dump_name()

const char * symtab_node::get_dump_name ( bool asm_name_p) const
privateinherited

◆ get_for_asmname() [1/2]

◆ get_for_asmname() [2/2]

varpool_node * varpool_node::get_for_asmname ( tree asmname)
static
Given an assembler name, lookup node.   

References dyn_cast(), symtab_node::get_for_asmname(), and NULL.

Referenced by new_emutls_decl().

◆ get_init_priority()

◆ get_partitioning_class()

◆ get_section()

◆ get_symtab_type_string()

const char * symtab_node::get_symtab_type_string ( ) const
inherited
Dump the type_name of the symbol.   

References symtab_type_names, and symtab_node::type.

◆ get_visibility_string()

const char * symtab_node::get_visibility_string ( ) const
inherited
Dump the visibility of the symbol.   

References DECL_VISIBILITY.

◆ has_aliases_p()

◆ in_same_comdat_group_p()

◆ increase_alignment()

void symtab_node::increase_alignment ( unsigned int align)
inherited

◆ iterate_direct_aliases()

◆ iterate_reference()

◆ iterate_referring()

◆ make_decl_local()

◆ maybe_create_reference()

◆ name()

◆ native_rtl_p()

bool symtab_node::native_rtl_p ( ) const
inherited
Return true if this symbol is a function from the C frontend specified
directly in RTL form (with "__RTL").   

References DECL_STRUCT_FUNCTION, PROP_rtl, and TREE_CODE.

Referenced by cgraph_node::analyze(), cgraph_node::expand(), cgraph_node::finalize_function(), and symtab_node::needed_p().

◆ needed_p()

bool symtab_node::needed_p ( void )
inherited

◆ next_defined_symbol()

symtab_node * symtab_node::next_defined_symbol ( void )
inlineinherited
Return next reachable static symbol with initializer after the node.   

References symtab_node::definition, symtab_node::next, and NULL.

◆ noninterposable_alias() [1/2]

bool symtab_node::noninterposable_alias ( symtab_node * node,
void * data )
staticprivateinherited

◆ noninterposable_alias() [2/2]

◆ nonzero_address()

◆ num_references()

unsigned symtab_node::num_references ( void )
inlineinherited

◆ output_to_lto_symbol_table_p()

◆ prevailing_p()

bool symtab_node::prevailing_p ( void )
inlineinherited
During LTO stream-in this predicate can be used to check whether node
in question prevails in the linking to save some memory usage.   

References DECL_EXTERNAL, symtab_node::definition, NULL, symtab_node::previous_sharing_asm_name, and TREE_PUBLIC.

Referenced by inline_read_section(), ipa_read_node_info(), and cgraph_edge::possibly_call_in_translation_unit_p().

◆ priority_info()

symbol_priority_map * symtab_node::priority_info ( void )
protectedinherited
Return the initialization and finalization priority information for
DECL.  If there is no previous priority information, a freshly
allocated structure is returned.   

References hash_map< KeyId, Value, Traits >::create_ggc(), DEFAULT_INIT_PRIORITY, symbol_priority_map::fini, hash_map< KeyId, Value, Traits >::get_or_insert(), symtab_node::in_init_priority_hash, symbol_priority_map::init, symbol_table::init_priority_hash, and symtab.

Referenced by cgraph_node::set_fini_priority(), and symtab_node::set_init_priority().

◆ real_symbol_p()

bool symtab_node::real_symbol_p ( void )
inlineinherited
Return true when the symbol is real symbol, i.e. it is not inline clone
or abstract function kept for debug info purposes only.   

References DECL_ABSTRACT_P, symtab_node::definition, dyn_cast(), cgraph_node::inlined_to, is_a(), and symtab_node::transparent_alias.

Referenced by build_type_inheritance_graph(), ipa_comdats(), maybe_record_node(), symtab_node::output_to_lto_symbol_table_p(), set_comdat_group(), and update_type_inheritance_graph().

◆ referred_to_p()

bool symtab_node::referred_to_p ( bool include_self = true)
inherited
Return true when there are references to the node.  INCLUDE_SELF is
true if a self reference counts as a reference.   

References cgraph_node::callers, dyn_cast(), symtab_node::iterate_referring(), cgraph_edge::next_caller, and NULL.

Referenced by analyze_functions(), check_global_declaration(), finalize_decl(), and cgraph_node::finalize_function().

◆ register_symbol()

void symtab_node::register_symbol ( void )
inherited
Add node into symbol table.  This function is not used directly, but via
cgraph/varpool node creation routines.   

References ipa_ref_list::clear(), symbol_table::insert_to_assembler_name_hash(), symtab_node::ref_list, symbol_table::register_symbol(), and symtab.

Referenced by cgraph_node::create(), cgraph_node::create_clone(), get_create(), input_node(), and input_varpool_node().

◆ remove()

◆ remove_all_references()

◆ remove_all_referring()

void symtab_node::remove_all_referring ( void )
inherited
Remove all referring items in ref list.   

References symtab_node::ref_list, and ipa_ref_list::referring.

Referenced by symtab_node::unregister().

◆ remove_from_same_comdat_group()

void symtab_node::remove_from_same_comdat_group ( void )
inherited

◆ remove_initializer()

void varpool_node::remove_initializer ( void )

◆ remove_stmt_references()

void symtab_node::remove_stmt_references ( gimple * stmt)
inherited
Remove all references that are associated with statement STMT.   

References i, symtab_node::iterate_reference(), NULL, r, and ipa_ref::remove_reference().

Referenced by delete_unreachable_blocks_update_callgraph(), and ipa_param_adjustments::modify_call().

◆ reset()

void symtab_node::reset ( bool preserve_comdat_group = false)
inherited
As an GCC extension we allow redefinition of the function.  The
semantics when both copies of bodies differ is not well defined.
We replace the old body with new body so in unit at a time mode
we always use new body, while in normal mode we may end up with
old body inlined into some functions and new body expanded and
inlined in others.

??? It may make more sense to use one body for inlining and other
body for expanding the function but this is difficult to do.

This is also used to cancel C++ mangling aliases, which can be for
functions or variables.   

References symtab_node::alias, symtab_node::analyzed, symtab_node::cpp_implicit_alias, symtab_node::definition, dyn_cast(), gcc_assert, NULL, symtab_node::remove_all_references(), symtab_node::remove_from_same_comdat_group(), symtab_node::transparent_alias, and symtab_node::weakref.

Referenced by analyze_functions(), cgraph_node::create_thunk(), cgraph_node::create_wrapper(), cgraph_node::finalize_function(), handle_alias_pairs(), and ipa_icf::sem_function::merge().

◆ resolve_alias()

bool symtab_node::resolve_alias ( symtab_node * target,
bool transparent = false )
inherited

◆ semantically_equivalent_p()

bool symtab_node::semantically_equivalent_p ( symtab_node * target)
inherited

◆ set_comdat_group()

◆ set_implicit_section()

bool symtab_node::set_implicit_section ( symtab_node * n,
void * data )
staticprivateinherited
Worker for symtab_resolve_alias.   

References symtab_node::implicit_section.

Referenced by symtab_node::resolve_alias().

◆ set_init_priority()

void symtab_node::set_init_priority ( priority_type priority)
inherited

◆ set_section() [1/2]

◆ set_section() [2/2]

void symtab_node::set_section ( const symtab_node & other)
inherited

◆ set_section_for_node() [1/2]

◆ set_section_for_node() [2/2]

void symtab_node::set_section_for_node ( const symtab_node & other)
inherited
Set the section of node THIS to be the same as the section
of node OTHER.  Keep reference counts of the sections
up-to-date as needed.   

References gcc_checking_assert, symtab_node::get_section(), symtab_node::implicit_section, NULL, release_section_hash_entry(), retain_section_hash_entry(), and symtab_node::x_section.

◆ set_section_from_node()

bool symtab_node::set_section_from_node ( symtab_node * n,
void * o )
staticprivateinherited
Set the section of node N to be the same as the section
of node O.   

References symtab_node::set_section_for_node().

Referenced by symtab_node::set_section().

◆ set_section_from_string()

bool symtab_node::set_section_from_string ( symtab_node * n,
void * s )
staticprivateinherited
Workers for set_section.   

References symtab_node::set_section_for_node().

Referenced by symtab_node::set_section().

◆ ultimate_alias_target()

varpool_node * varpool_node::ultimate_alias_target ( availability * availability = NULL,
symtab_node * ref = NULL )
inline
For given variable pool node, walk the alias chain to return the function
the variable is alias of. Do not walk through thunks.
When AVAILABILITY is non-NULL, get minimal availability in the chain.
When REF is non-NULL, assume that reference happens in symbol REF
when determining the availability.   

References AVAIL_NOT_AVAILABLE, dyn_cast(), and symtab_node::ultimate_alias_target().

Referenced by ctor_for_folding(), ctor_useable_for_folding_p(), get_availability(), get_constraint_for_ssa_var(), get_variable_section(), ipa_lower_emutls(), and tree_could_trap_p().

◆ ultimate_alias_target_1()

symtab_node * symtab_node::ultimate_alias_target_1 ( enum availability * availability = NULL,
symtab_node * ref = NULL )
privateinherited
Walk the alias chain to return the symbol NODE is alias of.
If NODE is not an alias, return NODE.
Assumes NODE is known to be alias.   

References symtab_node::alias, symtab_node::analyzed, AVAIL_NOT_AVAILABLE, symtab_node::get_alias_target(), symtab_node::get_availability(), NULL, and symtab_node::transparent_alias.

Referenced by symtab_node::ultimate_alias_target().

◆ unregister()

void symtab_node::unregister ( struct clone_info * info)
protectedinherited

◆ used_from_object_file_p()

bool symtab_node::used_from_object_file_p ( void )
inlineinherited

◆ verify()

◆ verify_base()

◆ verify_symtab_nodes()

Field Documentation

◆ address_taken

◆ alias

unsigned symtab_node::alias
inherited

Referenced by cgraph_node::add_detected_attribute(), symtab_node::address_matters_p(), cgraph_node::analyze(), analyze(), analyze_function(), analyze_functions(), assemble_alias(), assemble_aliases(), assemble_decl(), cgraph_node::assemble_thunks_and_aliases(), associate_varinfo_to_alias(), cgraph_node::call_for_symbol_and_aliases_1(), symtab_node::call_for_symbol_and_aliases_1(), call_for_symbol_and_aliases_1(), cgraph_node::call_for_symbol_thunks_and_aliases(), call_passes_through_thunk(), cgraph_node::can_remove_if_no_direct_calls_p(), can_remove_node_now_p(), clone_inlined_nodes(), symbol_table::compile(), compute_ltrans_boundary(), symtab_node::copy_visibility_from(), cgraph_node::create_alias(), create_alias(), create_dispatcher_calls(), create_emultls_var(), create_extra_name_alias(), cgraph_node::create_same_body_alias(), cgraph_node::create_thunk(), ctor_for_folding(), ctor_useable_for_folding_p(), symtab_node::definition_alignment(), determine_versionability(), symtab_node::dump_base(), dump_overall_stats(), symtab_node::equal_address_to(), expand_target_clones(), ipa_icf::sem_item_optimizer::filter_removed_items(), finalize_named_section_flags(), function_and_variable_visibility(), generate_summary(), get_constraint_for_ssa_var(), symtab_node::get_partitioning_class(), handle_alias_pairs(), cgraph_node::has_gimple_body_p(), initialize_node_lattices(), inline_call(), inline_small_functions(), input_node(), input_overwrite_node(), input_varpool_node(), ipa_comdats(), ipa_devirt(), ipa_discover_variable_flags(), ipa_fn_summary_generate(), ipa_fn_summary_write(), ipa_inline(), ipa_lower_emutls(), ipa_merge_profiles(), ipa_profile(), ipa_propagate_frequency(), ipa_pta_execute(), ipa_reverse_postorder(), ipa_strub_set_mode_for_new_functions(), ipa_tm_execute(), ipa_tm_mayenterirr_function(), ipa_write_summaries(), ipcp_propagate_stage(), localize_node(), lto_output(), lto_output_node(), lto_output_varpool_node(), symtab_node::make_decl_local(), mark_functions_to_output(), ipa_icf::sem_variable::merge(), symtab_node::noninterposable_alias(), symtab_node::nonzero_address(), omp_discover_declare_target_tgt_fn_r(), optimize_weakref(), output_in_order(), output_refs(), symbol_table::output_weakrefs(), ipa_icf::sem_variable::parse(), place_block_symbol(), preserve_function_body_p(), process_function_and_variable_attributes(), process_references(), process_symver_attribute(), propagate(), propagate_malloc(), propagate_nothrow(), propagate_pure_const(), propagate_single_user(), recursive_call_p(), symbol_table::remove_unreachable_nodes(), symbol_table::remove_unreferenced_decls(), symtab_node::reset(), symtab_node::resolve_alias(), cgraph_node::set_const_flag(), cgraph_node::set_malloc_flag(), cgraph_node::set_noreturn_flag(), cgraph_node::set_nothrow_flag(), symtab_node::set_section(), set_strub_mode(), set_strub_mode_to(), set_writeonly_bit(), symtab_node::ultimate_alias_target(), symtab_node::ultimate_alias_target_1(), ultimate_transparent_alias_target(), update_caller_keys(), use_blocks_for_decl_p(), symtab_node::verify_base(), cgraph_node::verify_node(), walk_polymorphic_call_targets(), want_inline_function_to_all_callers_p(), cgraph_node::will_be_removed_from_program_if_no_direct_calls_p(), and wrapup_global_declaration_2().

◆ alias_target

◆ analyzed

◆ aux

◆ body_removed

◆ cpp_implicit_alias

◆ decl

tree symtab_node::decl
inherited

Referenced by add_detected_attribute_1(), ipcp_lattice< valtype >::add_value(), ipa_ref::address_matters_p(), autofdo::afdo_indirect_call(), cgraph_node::analyze(), analyze_function(), analyze_function(), analyze_function_body(), analyze_functions(), asan_finish_file(), assemble_alias(), assemble_variable_contents(), associate_varinfo_to_alias(), autofdo::auto_profile(), big_speedup_p(), btf_add_const_void(), btf_add_func_datasec_entries(), btf_add_func_records(), btf_add_vars(), btf_datasec_add_var(), btf_emit_variable_p(), build_type_inheritance_graph(), caller_growth_limits(), calls_builtin_apply_args_p(), can_early_inline_edge_p(), symtab_node::can_increase_alignment_p(), can_inline_edge_by_limits_p(), can_inline_edge_p(), can_remove_node_now_p_1(), can_replace_by_local_alias(), can_replace_by_local_alias_in_vtable(), can_strub_internally_p(), can_strub_p(), cgraph_edge::cannot_lead_to_return_p(), cdtor_p(), cgraph_externally_visible_p(), cgraph_node_cannot_be_local_p_1(), cgraph_update_edges_for_call_stmt_node(), symbol_table::change_decl_assembler_name(), check_argument_count(), check_callers(), check_for_nested_with_variably_modified(), check_global_declaration(), clear_addressable_bit(), ipa_icf::clear_decl_rtl(), clone_inlined_nodes(), clone_of_p(), comdat_can_be_unshared_p_1(), compare_base_symbol_refs(), ipa_icf::sem_function::compare_polymorphic_p(), ipa_icf::sem_item::compare_referenced_symbol_properties(), compare_virtual_tables(), symbol_table::compile(), compute_bb_predicates(), compute_fn_summary(), compute_max_insns(), compute_strub_mode(), copy_function_or_variable(), symtab_node::copy_visibility_from(), coverage_compute_profile_id(), cgraph_node::create(), create_alias(), cgraph_node::create_clone(), create_dispatcher_calls(), symbol_table::create_edge(), create_emultls_var(), create_nesting_tree(), create_specialized_node(), create_target_clone(), create_variable_info_for(), cgraph_node::create_version_clone_with_body(), cgraph_node::create_virtual_clone(), cgraph_node::create_wrapper(), ctor_for_folding(), ctor_useable_for_folding_p(), decompose_param_expr(), determine_known_aggregate_parts(), determine_versionability(), devirt_variable_node_removal_hook(), devirtualization_time_bonus(), symtab_node::dissolve_same_comdat_group_list(), distinctify_node_type(), do_assemble_alias(), do_estimate_edge_time(), do_estimate_growth_1(), do_per_function(), do_per_function_toporder(), drop_profile(), ipa_icf::sem_item::dump(), dump_callgraph_transformation(), dump_final_alias_vcg(), dump_ic_profile(), dump_inline_stats(), funct_state_summary_t::duplicate(), duplicate_thunk_for_node(), early_inline_small_functions(), early_inliner(), edge_badness(), asmname_hasher::equal(), symtab_node::equal_address_to(), ipa_icf::sem_variable::equals(), estimate_edge_devirt_benefit(), ipa_call_context::estimate_size_and_time(), estimated_stack_frame_size(), execute_all_ipa_transforms(), execute_split_functions(), expand_all_functions(), expand_call_inline(), expand_simd_clones(), expand_target_clones(), expand_thunk(), finalize_decl(), find_decl(), cgraph_node::find_replacement(), symbol_table::first_static_initializer(), fixup_call_stmt_edges(), ipa_icf::sem_item_optimizer::fixup_points_to_sets(), symtab_node::fixup_same_cpp_alias_visibility(), flatten_function(), flatten_remove_node_hook(), fre_will_run_p(), function_and_variable_visibility(), function_called_by_processed_nodes_p(), gen_emutls_addr(), generate_summary(), symtab_node::get_alias_target_tree(), get_alignment_1(), get_constraint_for_ssa_var(), cgraph_node::get_create(), get_create(), cgraph_node::get_fun(), get_max_overall_size(), get_read_write_all_from_node(), get_section_name(), get_strub_mode(), cgraph_node::get_untransformed_body(), get_variable_section(), gimple_ic(), gimplify_all_functions(), good_cloning_opportunity_p(), handle_alias_pairs(), handle_missing_profiles(), asmname_hasher::hash(), omp_declare_variant_alt_hasher::hash(), omp_declare_variant_hasher::hash(), ipa_icf::sem_item::hash_referenced_symbol_properties(), have_optimized_refs(), hint_time_bonus(), ignore_edge_for_nothrow(), ignore_edge_for_pure_const(), ignore_edge_p(), ignore_edge_p(), incorporate_penalties(), increase_alignment(), increase_alignment_1(), ipa_icf::sem_function::init(), ipa_icf::sem_variable::init(), init_node_map(), inline_account_function_p(), inline_always_inline_functions(), inline_analyze_function(), inline_call(), inline_insns_auto(), inline_insns_single(), inline_small_functions(), inline_transform(), input_cgraph_1(), input_edge(), input_node(), input_overwrite_node(), input_varpool_node(), funct_state_summary_t::insert(), modref_summaries::insert(), modref_summaries_lto::insert(), symbol_table::insert_to_assembler_name_hash(), ipa_analyze_controlled_uses(), ipa_analyze_node(), ipa_cdtor_merge(), ipa_comdats(), ipa_compute_jump_functions_for_edge(), ipa_devirt(), ipa_discover_variable_flags(), ipa_dump_fn_summary(), ipa_fn_summary_generate(), ipa_get_callee_param_type(), ipa_get_indirect_edge_target_1(), ipa_initialize_node_params(), ipa_inline(), ipa_lower_emutls(), ipa_make_function_const(), ipa_make_function_pure(), ipa_merge_modref_summary_after_inlining(), ipa_merge_profiles(), ipa_populate_param_decls(), ipa_profile(), ipa_profile_generate_summary(), ipa_propagate_frequency(), ipa_pta_execute(), ipa_read_edge_info(), ipa_reference_get_read_global(), ipa_reference_get_written_global(), ipa_reference_write_optimization_summary(), ipa_return_value_range(), ipa_simd_modify_function_body(), ipa_sra_summarize_function(), ipa_tm_create_version(), ipa_tm_create_version_alias(), ipa_tm_diagnose_tm_safe(), ipa_tm_execute(), ipa_tm_mayenterirr_function(), ipa_tm_note_irrevocable(), ipa_tm_scan_calls_clone(), ipa_tm_scan_irr_function(), ipa_tm_transform_calls_redirect(), ipa_tm_transform_clone(), ipa_tm_transform_transaction(), ipa_write_summaries(), ipcp_cloning_candidate_p(), ipcp_propagate_stage(), ipcp_store_vr_results(), ipcp_transform_function(), ipcp_update_vr(), ipcp_verify_propagated_values(), is_improper(), lenient_count_portion_handling(), lhd_finalize_early_debug(), likely_target_p(), localize_node(), lower_emutls_function_body(), lto_free_function_in_decl_state_for_node(), lto_output(), lto_output_node(), lto_output_varpool_node(), lto_prepare_function_for_streaming(), lto_read_body_or_constructor(), cgraph_edge::make_direct(), make_item_for_dump_symtab_node(), cgraph_node::make_local(), cgraph_edge::make_speculative(), mark_functions_to_output(), master_clone_with_noninline_clones_p(), cgraph_node::materialize_clone(), cgraph_edge::maybe_hot_p(), maybe_record_nested_function(), ipa_icf::sem_function::merge(), ipa_icf::sem_variable::merge(), merge_aggregate_lattices(), ipa_param_adjustments::modify_call(), new_emutls_decl(), symbol_table::next_static_initializer(), non_local_p(), symtab_node::noninterposable_alias(), symtab_node::noninterposable_alias(), symtab_node::nonzero_address(), num_calls(), offline_size(), ok_for_auto_simd_clone(), omp_declare_variant_remove_hook(), omp_discover_declare_target_tgt_fn_r(), omp_discover_declare_target_var_r(), omp_discover_implicit_declare_target(), omp_lto_input_declare_variant_alt(), omp_lto_output_declare_variant_alt(), omp_resolve_late_declare_variant(), optimize_weakref(), output_constructor(), output_function(), output_in_order(), symtab_node::output_to_lto_symbol_table_p(), symbol_table::output_variables(), symbol_table::output_weakrefs(), ipa_icf::sem_function::parse(), ipa_icf::sem_variable::parse(), perform_estimation_of_a_value(), place_block_symbol(), possible_inline_candidate_p(), possible_polymorphic_call_target_p(), cgraph_edge::possibly_call_in_translation_unit_p(), process_function_and_variable_attributes(), symbol_table::process_new_functions(), process_references(), process_references(), process_symver_attribute(), produce_symtab(), produce_symtab_extension(), propagate(), propagate_aggs_across_jump_function(), propagate_constants_across_call(), propagate_constants_topo(), value_topo_info< valtype >::propagate_effects(), propagate_malloc(), propagate_nothrow(), propagate_pure_const(), propagate_vals_across_arith_jfunc(), pure_const_generate_summary(), pure_const_read_summary(), read_ipa_call_summary(), read_thunk_profile(), read_write_all_from_decl(), record_cdtor_fn(), record_eh_tables(), record_reference(), recursive_inlining(), cgraph_edge::recursive_p(), ipa_icf::redirect_all_callers(), cgraph_edge::redirect_call_stmt_to_callee(), redirect_to_specific_clone(), redirect_to_unreachable(), refered_from_nonlocal_fn(), refered_from_nonlocal_var(), referenced_from_vtable_p(), cgraph_node::remove(), symbol_table::remove_unreachable_nodes(), symbol_table::remove_unreferenced_decls(), report_inline_failed_reason(), cgraph_node::rtl_info(), save_inline_function_body(), ipa_icf::sem_item::sem_item(), symtab_node::semantically_equivalent_p(), ipa_icf::set_addressable(), ipa_icf::set_alias_uids(), cgraph_edge::set_call_stmt(), set_const_flag_1(), set_malloc_flag_1(), set_new_clone_decl_and_node_flags(), set_noreturn_flag_1(), set_nothrow_flag_1(), set_pure_flag_1(), set_readonly_bit(), set_strub_mode(), set_strub_mode_to(), set_switch_stmt_execution_predicate(), set_writeonly_bit(), simd_clone_adjust(), simd_clone_adjust_argument_types(), simd_clone_adjust_return_type(), simd_clone_clauses_extract(), simd_clone_compute_base_data_type(), simd_clone_create(), simd_clone_init_simd_arrays(), simd_clone_mangle(), speculation_useful_p(), split_function(), strub_always_inline_p(), strub_callable_builtin_p(), strub_from_body_p(), ipa_icf::symbol_compare_collection::symbol_compare_collection(), tree_profiling(), try_make_edge_direct_virtual_call(), try_speculative_devirtualization(), unlikely_executed_stmt_p(), symbol_table::unlink_from_assembler_name_hash(), unshare_body(), unvisit_body(), update_call_expr(), update_indirect_edges_after_inlining(), update_profiling_info(), update_type_inheritance_graph(), update_visibility_by_resolution_info(), update_vtable_references(), varpool_removal_hook(), vectorizable_simd_clone_call(), symtab_node::verify_base(), cgraph_edge::verify_corresponds_to_fndecl(), cgraph_node::verify_node(), verify_node_partition(), verify_strub(), symtab_node::verify_symtab_nodes(), vrp_will_run_p(), walk_polymorphic_call_targets(), want_early_inline_function_p(), want_inline_self_recursive_call_p(), want_inline_small_function_p(), worse_state(), and wrapper_heuristics_may_apply().

◆ definition

unsigned symtab_node::definition
inherited

Referenced by cgraph_node::add_new_function(), all_refs_explicit_p(), cgraph_node::analyze(), analyze_functions(), assemble_decl(), symtab_node::binds_to_current_def_p(), can_inline_edge_p(), can_refer_decl_in_current_unit_p(), can_replace_by_local_alias(), cgraph_externally_visible_p(), symbol_table::change_decl_assembler_name(), clone_inlined_nodes(), compare_base_symbol_refs(), ipa_icf::sem_function::compare_polymorphic_p(), compare_virtual_tables(), compute_ltrans_boundary(), copy_bb(), cgraph_node::create_alias(), create_alias(), cgraph_node::create_clone(), create_dispatcher_calls(), cgraph_node::create_thunk(), cgraph_node::create_version_clone(), cgraph_node::create_wrapper(), ctor_useable_for_folding_p(), devirtualization_time_bonus(), symtab_node::dump_base(), dump_tm_clone_pairs(), duplicate_thunk_for_node(), enqueue_references(), estimate_edge_devirt_benefit(), estimate_num_insns(), expand_simd_clones(), expand_target_clones(), externally_visible_p(), finalize_decl(), cgraph_node::finalize_function(), symbol_table::first_defined_function(), symbol_table::first_defined_symbol(), symbol_table::first_defined_variable(), function_and_variable_visibility(), get_availability(), symtab_node::get_partitioning_class(), handle_alias_pairs(), cgraph_node::has_gimple_body_p(), initialize_inline_failed(), inline_always_inline_functions(), input_overwrite_node(), input_varpool_node(), ipa_compute_jump_functions_for_bb(), ipa_devirt(), ipa_dump_fn_summary(), ipa_fn_summary_write(), ipa_inline(), ipa_lower_emutls(), ipa_merge_profiles(), ipa_print_node_params(), ipa_profile_write_summary(), ipa_prop_read_section(), ipa_single_use(), ipa_target_clone(), ipa_write_summaries(), ipcp_propagate_stage(), lto_output_node(), lto_output_varpool_node(), mark_decl_referenced(), maybe_record_node(), symtab_node::needed_p(), symbol_table::next_defined_function(), symtab_node::next_defined_symbol(), symbol_table::next_defined_variable(), non_local_p(), symtab_node::nonzero_address(), ok_for_auto_simd_clone(), optimize_weakref(), symtab_node::output_to_lto_symbol_table_p(), symbol_table::output_variables(), possible_polymorphic_call_target_p(), symtab_node::prevailing_p(), process_function_and_variable_attributes(), process_references(), process_symver_attribute(), propagate_constants_across_call(), propagate_malloc(), pure_const_write_summary(), reachable_from_other_partition_p(), ipa_icf::sem_item_optimizer::read_section(), symtab_node::real_symbol_p(), record_target_from_binfo(), reference_to_unused(), symbol_table::remove_unreachable_nodes(), symbol_table::remove_unreferenced_decls(), symtab_node::reset(), symtab_node::resolve_alias(), simd_clone_adjust_argument_types(), simd_clone_create(), try_speculative_devirtualization(), type_possibly_instantiated_p(), update_type_inheritance_graph(), vect_recog_pow_pattern(), symtab_node::verify_base(), cgraph_node::verify_node(), walk_polymorphic_call_targets(), wrapup_global_declaration_2(), and write_node_summary_p().

◆ dynamically_initialized

unsigned varpool_node::dynamically_initialized

◆ externally_visible

◆ force_output

◆ forced_by_abi

◆ ifunc_resolver

◆ implicit_section

◆ in_init_priority_hash

unsigned symtab_node::in_init_priority_hash
inherited

◆ in_other_partition

◆ lto_file_data

◆ need_lto_streaming

◆ next

◆ next_sharing_asm_name

◆ no_reorder

◆ offloadable

◆ order

◆ output

unsigned varpool_node::output

Referenced by dump().

◆ previous

symtab_node* symtab_node::previous
inherited

◆ previous_sharing_asm_name

◆ ref_list

◆ refuse_visibility_changes

unsigned symtab_node::refuse_visibility_changes
inherited

◆ resolution

◆ same_comdat_group

◆ semantic_interposition

◆ symver

◆ tls_model

◆ transparent_alias

◆ type

◆ unique_name

◆ used_by_single_function

unsigned varpool_node::used_by_single_function

◆ used_from_other_partition

◆ weakref

◆ writeonly

◆ x_comdat_group

◆ x_section


The documentation for this struct was generated from the following files: