GCC Middle and Back End API Reference
symbol_table Class Reference

#include <cgraph.h>

Collaboration diagram for symbol_table:

Public Member Functions

 symbol_table ()
 
void initialize (void)
 
asm_nodefinalize_toplevel_asm (tree asm_str)
 
void finalize_compilation_unit (void)
 
void process_same_body_aliases (void)
 
void compile (void)
 
void process_new_functions (void)
 
void register_symbol (symtab_node *node)
 
void clear_asm_symbols (void)
 
bool remove_unreachable_nodes (FILE *file)
 
void remove_unreferenced_decls (void)
 
void unregister (symtab_node *node)
 
cgraph_nodecreate_empty (void)
 
void release_symbol (cgraph_node *node)
 
bool output_variables (void)
 
void output_weakrefs (void)
 
symtab_nodefirst_symbol (void)
 
asm_nodefirst_asm_symbol (void)
 
symtab_nodefirst_defined_symbol (void)
 
varpool_nodefirst_variable (void)
 
varpool_nodenext_variable (varpool_node *node)
 
varpool_nodefirst_static_initializer (void)
 
varpool_nodenext_static_initializer (varpool_node *node)
 
varpool_nodefirst_defined_variable (void)
 
varpool_nodenext_defined_variable (varpool_node *node)
 
cgraph_nodefirst_defined_function (void)
 
cgraph_nodenext_defined_function (cgraph_node *node)
 
cgraph_nodefirst_function (void)
 
cgraph_nodenext_function (cgraph_node *node)
 
cgraph_nodefirst_function_with_gimple_body (void)
 
cgraph_nodenext_function_with_gimple_body (cgraph_node *node)
 
cgraph_edge_hook_listadd_edge_removal_hook (cgraph_edge_hook hook, void *data)
 
void remove_edge_removal_hook (cgraph_edge_hook_list *entry)
 
cgraph_node_hook_listadd_cgraph_removal_hook (cgraph_node_hook hook, void *data)
 
void remove_cgraph_removal_hook (cgraph_node_hook_list *entry)
 
varpool_node_hook_listadd_varpool_removal_hook (varpool_node_hook hook, void *data)
 
void remove_varpool_removal_hook (varpool_node_hook_list *entry)
 
cgraph_node_hook_listadd_cgraph_insertion_hook (cgraph_node_hook hook, void *data)
 
void remove_cgraph_insertion_hook (cgraph_node_hook_list *entry)
 
varpool_node_hook_listadd_varpool_insertion_hook (varpool_node_hook hook, void *data)
 
void remove_varpool_insertion_hook (varpool_node_hook_list *entry)
 
cgraph_2edge_hook_listadd_edge_duplication_hook (cgraph_2edge_hook hook, void *data)
 
void remove_edge_duplication_hook (cgraph_2edge_hook_list *entry)
 
cgraph_2node_hook_listadd_cgraph_duplication_hook (cgraph_2node_hook hook, void *data)
 
void remove_cgraph_duplication_hook (cgraph_2node_hook_list *entry)
 
void call_edge_removal_hooks (cgraph_edge *e)
 
void call_cgraph_insertion_hooks (cgraph_node *node)
 
void call_cgraph_removal_hooks (cgraph_node *node)
 
void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)
 
void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)
 
void call_varpool_removal_hooks (varpool_node *node)
 
void call_varpool_insertion_hooks (varpool_node *node)
 
void symtab_prevail_in_asm_name_hash (symtab_node *node)
 
void symtab_initialize_asm_name_hash (void)
 
void change_decl_assembler_name (tree decl, tree name)
 
void dump (FILE *f)
 
void dump_graphviz (FILE *f)
 
void DEBUG_FUNCTION debug (void)
 
int assign_summary_id (cgraph_node *node)
 
int assign_summary_id (cgraph_edge *edge)
 

Static Public Member Functions

static bool assembler_names_equal_p (const char *name1, const char *name2)
 
static char symbol_suffix_separator ()
 

Data Fields

int cgraph_count
 
int cgraph_max_uid
 
int cgraph_max_summary_id
 
int edges_count
 
int edges_max_uid
 
int edges_max_summary_id
 
vec< int > cgraph_released_summary_ids
 
vec< int > edge_released_summary_ids
 
symtab_nodenodes
 
asm_nodeasmnodes
 
asm_nodeasm_last_node
 
int order
 
int max_unit
 
bool global_info_ready
 
enum symtab_state state
 
bool function_flags_ready
 
bool cpp_implicit_aliases_done
 
hash_table< section_name_hasher > * section_hash
 
hash_table< asmname_hasher > * assembler_name_hash
 
hash_map< symtab_node *, symbol_priority_map > * init_priority_hash
 
FILE * dump_file
 
FILE * ipa_clones_dump_file
 
hash_set< const cgraph_node * > cloned_nodes
 
thunk_summarym_thunks
 
clone_summarym_clones
 

Private Member Functions

cgraph_edgecreate_edge (cgraph_node *caller, cgraph_node *callee, gcall *call_stmt, profile_count count, bool indir_unknown_callee, bool cloning_p)
 
void free_edge (cgraph_edge *e)
 
void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)
 
void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)
 

Static Private Member Functions

static hashval_t decl_assembler_name_hash (const_tree asmname)
 
static bool decl_assembler_name_equal (tree decl, const_tree asmname)
 

Private Attributes

cgraph_edge_hook_listm_first_edge_removal_hook
 
cgraph_node_hook_listm_first_cgraph_removal_hook
 
cgraph_2edge_hook_listm_first_edge_duplicated_hook
 
cgraph_2node_hook_listm_first_cgraph_duplicated_hook
 
cgraph_node_hook_listm_first_cgraph_insertion_hook
 
varpool_node_hook_listm_first_varpool_insertion_hook
 
varpool_node_hook_listm_first_varpool_removal_hook
 

Friends

struct symtab_node
 
struct cgraph_node
 
struct cgraph_edge
 
struct asmname_hasher
 

Constructor & Destructor Documentation

◆ symbol_table()

symbol_table::symbol_table ( )
inline

Member Function Documentation

◆ add_cgraph_duplication_hook()

cgraph_2node_hook_list * symbol_table::add_cgraph_duplication_hook ( cgraph_2node_hook hook,
void * data )

◆ add_cgraph_insertion_hook()

cgraph_node_hook_list * symbol_table::add_cgraph_insertion_hook ( cgraph_node_hook hook,
void * data )

◆ add_cgraph_removal_hook()

◆ add_edge_duplication_hook()

cgraph_2edge_hook_list * symbol_table::add_edge_duplication_hook ( cgraph_2edge_hook hook,
void * data )

◆ add_edge_removal_hook()

cgraph_edge_hook_list * symbol_table::add_edge_removal_hook ( cgraph_edge_hook hook,
void * data )

◆ add_varpool_insertion_hook()

varpool_node_hook_list * symbol_table::add_varpool_insertion_hook ( varpool_node_hook hook,
void * data )
Register HOOK to be called with DATA on each inserted node.   

References varpool_node_hook_list::data, varpool_node_hook_list::hook, m_first_varpool_insertion_hook, varpool_node_hook_list::next, and NULL.

◆ add_varpool_removal_hook()

◆ assembler_names_equal_p()

bool symbol_table::assembler_names_equal_p ( const char * name1,
const char * name2 )
static
Return true if assembler names NAME1 and NAME2 leads to the same symbol
name.   

References user_label_prefix.

Referenced by change_decl_assembler_name(), decl_assembler_name_equal(), and symtab_node::verify_base().

◆ assign_summary_id() [1/2]

int symbol_table::assign_summary_id ( cgraph_edge * edge)
inline

◆ assign_summary_id() [2/2]

int symbol_table::assign_summary_id ( cgraph_node * node)
inline

◆ call_cgraph_duplication_hooks()

void symbol_table::call_cgraph_duplication_hooks ( cgraph_node * node,
cgraph_node * node2 )

◆ call_cgraph_insertion_hooks()

◆ call_cgraph_removal_hooks()

void symbol_table::call_cgraph_removal_hooks ( cgraph_node * node)

◆ call_edge_duplication_hooks()

void symbol_table::call_edge_duplication_hooks ( cgraph_edge * cs1,
cgraph_edge * cs2 )

◆ call_edge_removal_hooks()

◆ call_varpool_insertion_hooks()

void symbol_table::call_varpool_insertion_hooks ( varpool_node * node)

◆ call_varpool_removal_hooks()

void symbol_table::call_varpool_removal_hooks ( varpool_node * node)

◆ change_decl_assembler_name()

◆ clear_asm_symbols()

void symbol_table::clear_asm_symbols ( void )
inline

References asm_last_node, asmnodes, and NULL.

Referenced by output_in_order().

◆ compile()

◆ create_edge()

cgraph_edge * symbol_table::create_edge ( cgraph_node * caller,
cgraph_node * callee,
gcall * call_stmt,
profile_count count,
bool indir_unknown_callee,
bool cloning_p )
private
Allocate a cgraph_edge structure and fill it with data according to the
parameters of which only CALLEE can be NULL (when creating an indirect call
edge).  CLONING_P should be set if properties that are copied from an
original edge should not be calculated.   

References cgraph_node::call_site_hash, cgraph_node::calls_declare_variant_alt, cgraph_add_edge_to_call_site_hash(), cgraph_node::count, count, symtab_node::decl, decl_maybe_in_construction_p(), DECL_STRUCT_FUNCTION, cgraph_node::declare_variant_alt, edges_count, edges_max_uid, gcc_assert, gcc_checking_assert, cgraph_node::get_edge(), ggc_alloc(), is_gimple_call(), LTO_STREAMING, NULL, opt_for_fn, cgraph_edge::speculative, state, stmt_can_throw_external(), symtab, and cgraph_node::thunk.

Referenced by cgraph_node::create_edge(), and cgraph_node::create_indirect_edge().

◆ create_empty()

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

References cgraph_count, cgraph_max_uid, and ggc_alloc().

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

◆ debug()

DEBUG_FUNCTION void symbol_table::debug ( void )

References dump().

◆ decl_assembler_name_equal()

bool symbol_table::decl_assembler_name_equal ( tree decl,
const_tree asmname )
staticprivate
Compare ASMNAME with the DECL_ASSEMBLER_NAME of DECL.   

References assembler_names_equal_p(), DECL_ASSEMBLER_NAME, and IDENTIFIER_POINTER.

Referenced by asmname_hasher::equal().

◆ decl_assembler_name_hash()

hashval_t symbol_table::decl_assembler_name_hash ( const_tree asmname)
staticprivate

◆ dump()

◆ dump_graphviz()

void symbol_table::dump_graphviz ( FILE * f)

◆ finalize_compilation_unit()

◆ finalize_toplevel_asm()

asm_node * symbol_table::finalize_toplevel_asm ( tree asm_str)
inline

◆ first_asm_symbol()

asm_node * symbol_table::first_asm_symbol ( void )
inline

◆ first_defined_function()

cgraph_node * symbol_table::first_defined_function ( void )
inline
Return first function with body defined.   

References symtab_node::definition, dyn_cast(), symtab_node::next, nodes, and NULL.

◆ first_defined_symbol()

symtab_node * symbol_table::first_defined_symbol ( void )
inline
Return first static symbol with definition.   

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

◆ first_defined_variable()

varpool_node * symbol_table::first_defined_variable ( void )
inline
Return first static variable with definition.   

References symtab_node::definition, dyn_cast(), symtab_node::next, nodes, and NULL.

Referenced by remove_unreferenced_decls().

◆ first_function()

cgraph_node * symbol_table::first_function ( void )
inline

◆ first_function_with_gimple_body()

cgraph_node * symbol_table::first_function_with_gimple_body ( void )
inline
Return first function with body defined.   

References dyn_cast(), cgraph_node::has_gimple_body_p(), symtab_node::next, nodes, and NULL.

◆ first_static_initializer()

varpool_node * symbol_table::first_static_initializer ( void )
inline
Return first static variable with initializer.   

References symtab_node::decl, DECL_INITIAL, dyn_cast(), symtab_node::next, nodes, and NULL.

◆ first_symbol()

symtab_node * symbol_table::first_symbol ( void )
inline
Return first static symbol with definition.   

References nodes.

Referenced by analyze_functions().

◆ first_variable()

varpool_node * symbol_table::first_variable ( void )
inline

◆ free_edge()

void symbol_table::free_edge ( cgraph_edge * e)
private

◆ initialize()

void symbol_table::initialize ( void )
Initialize callgraph dump file.   

References dump_begin(), dump_file, ipa_clones_dump_file, NULL, TDI_cgraph, and TDI_clones.

Referenced by do_compile().

◆ insert_to_assembler_name_hash()

◆ next_defined_function()

cgraph_node * symbol_table::next_defined_function ( cgraph_node * node)
inline
Return next function with body defined after NODE.   

References symtab_node::definition, dyn_cast(), symtab_node::next, and NULL.

◆ next_defined_variable()

varpool_node * symbol_table::next_defined_variable ( varpool_node * node)
inline
Return next static variable with definition after NODE.   

References symtab_node::definition, dyn_cast(), symtab_node::next, and NULL.

Referenced by remove_unreferenced_decls().

◆ next_function()

cgraph_node * symbol_table::next_function ( cgraph_node * node)
inline

◆ next_function_with_gimple_body()

cgraph_node * symbol_table::next_function_with_gimple_body ( cgraph_node * node)
inline
Return next reachable static variable with initializer after NODE.   

References dyn_cast(), cgraph_node::has_gimple_body_p(), symtab_node::next, and NULL.

◆ next_static_initializer()

varpool_node * symbol_table::next_static_initializer ( varpool_node * node)
inline
Return next static variable with initializer after NODE.   

References symtab_node::decl, DECL_INITIAL, dyn_cast(), symtab_node::next, and NULL.

◆ next_variable()

varpool_node * symbol_table::next_variable ( varpool_node * node)
inline
Return next variable after NODE.   

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

Referenced by process_function_and_variable_attributes(), and remove_unreachable_nodes().

◆ output_variables()

◆ output_weakrefs()

void symbol_table::output_weakrefs ( void )
Weakrefs may be associated to external decls and thus not output
at expansion time.  Emit all necessary aliases.   

References symtab_node::alias, symtab_node::alias_target, symtab_node::analyzed, symtab_node::decl, DECL_ASSEMBLER_NAME, DECL_P, do_assemble_alias(), FOR_EACH_SYMBOL, gcc_unreachable, symtab_node::get_alias_target(), TREE_ASM_WRITTEN, and symtab_node::weakref.

Referenced by compile().

◆ process_new_functions()

◆ process_same_body_aliases()

void symbol_table::process_same_body_aliases ( void )
C++ frontend produce same body aliases all over the place, even before PCH
gets streamed out. It relies on us linking the aliases with their function
in order to do the fixups, but ipa-ref is not PCH safe.  Consequently we
first produce aliases without links, but once C++ FE is sure he won't stream
PCH we build the links via this function.   

References symtab_node::alias_target, symtab_node::analyzed, symtab_node::cpp_implicit_alias, cpp_implicit_aliases_done, FOR_EACH_SYMBOL, cgraph_node::get_create(), varpool_node::get_create(), symtab_node::resolve_alias(), and VAR_P.

◆ register_symbol()

void symbol_table::register_symbol ( symtab_node * node)
inline
Register a symbol NODE.   

References symtab_node::next, nodes, NULL, order, symtab_node::order, and symtab_node::previous.

Referenced by symtab_node::register_symbol().

◆ release_symbol()

void symbol_table::release_symbol ( cgraph_node * node)
inline
Release a callgraph NODE with UID and put in to the list of free nodes.   

References cgraph_count, cgraph_released_summary_ids, ggc_free(), and cgraph_node::m_summary_id.

Referenced by cgraph_node::remove().

◆ remove_cgraph_duplication_hook()

void symbol_table::remove_cgraph_duplication_hook ( cgraph_2node_hook_list * entry)
Remove ENTRY from the list of hooks called on duplicating nodes.   

References free(), m_first_cgraph_duplicated_hook, and cgraph_2node_hook_list::next.

Referenced by function_summary_base< T >::disable_duplication_hook(), and do_per_function_toporder().

◆ remove_cgraph_insertion_hook()

void symbol_table::remove_cgraph_insertion_hook ( cgraph_node_hook_list * entry)

◆ remove_cgraph_removal_hook()

void symbol_table::remove_cgraph_removal_hook ( cgraph_node_hook_list * entry)
Remove ENTRY from the list of hooks called on removing nodes.   

References free(), m_first_cgraph_removal_hook, and cgraph_node_hook_list::next.

Referenced by do_per_function_toporder(), ipa_inline(), and ipa_icf::sem_item_optimizer::unregister_hooks().

◆ remove_edge_duplication_hook()

void symbol_table::remove_edge_duplication_hook ( cgraph_2edge_hook_list * entry)
Remove ENTRY from the list of hooks called on duplicating edges.   

References free(), m_first_edge_duplicated_hook, and cgraph_2edge_hook_list::next.

Referenced by call_summary_base< T >::disable_duplication_hook().

◆ remove_edge_removal_hook()

void symbol_table::remove_edge_removal_hook ( cgraph_edge_hook_list * entry)
Remove ENTRY from the list of hooks called on removing edges.   

References free(), m_first_edge_removal_hook, and cgraph_edge_hook_list::next.

Referenced by inline_small_functions().

◆ remove_unreachable_nodes()

bool symbol_table::remove_unreachable_nodes ( FILE * file)
Perform reachability analysis and reclaim all unreachable nodes.

The algorithm is basically mark&sweep but with some extra refinements:

- reachable extern inline functions needs special handling; the bodies needs
  to stay in memory until inlining in hope that they will be inlined.
  After inlining we release their bodies and turn them into unanalyzed
  nodes even when they are reachable.

- virtual functions are kept in callgraph even if they seem unreachable in
  hope calls to them will be devirtualized. 

  Again we remove them after inlining.  In late optimization some
  devirtualization may happen, but it is not important since we won't inline
  the call. In theory early opts and IPA should work out all important cases.

- virtual clones needs bodies of their origins for later materialization;
  this means that we want to keep the body even if the origin is unreachable
  otherwise.  To avoid origin from sitting in the callgraph and being
  walked by IPA passes, we turn them into unanalyzed nodes with body
  defined.

  We maintain set of function declaration where body needs to stay in
  body_needed_for_clonning

  Inline clones represent special case: their declaration match the
  declaration of origin and cgraph_remove_node already knows how to
  reshape callgraph and preserve body when offline copy of function or
  inline clone is being removed.

- C++ virtual tables keyed to other unit are represented as DECL_EXTERNAL
  variables with DECL_INITIAL set.  We finalize these and keep reachable
  ones around for constant folding purposes.  After inlining we however
  stop walking their references to let everything static referenced by them
  to be removed when it is otherwise unreachable.

We maintain queue of both reachable symbols (i.e. defined symbols that needs
to stay) and symbols that are in boundary (i.e. external symbols referenced
by reachable symbols or origins of clones).  The queue is represented
as linked list by AUX pointer terminated by 1.

At the end we keep all reachable symbols. For symbols in boundary we always
turn definition into a declaration, but we may keep function body around
based on body_needed_for_clonning

All symbols that enter the queue have AUX pointer non-zero and are in the
boundary.  Pointer set REACHABLE is used to track reachable symbols.

Every symbol can be visited twice - once as part of boundary and once
as real reachable symbol. enqueue_node needs to decide whether the
node needs to be re-queued for second processing.  For this purpose
we set AUX pointer of processed symbols in the boundary to constant 2.   

References hash_set< KeyId, Lazy, Traits >::add(), symtab_node::address_taken, symtab_node::alias, symtab_node::analyzed, symtab_node::aux, symtab_node::body_removed, build_type_inheritance_graph(), cgraph_node::call_for_symbol_and_aliases(), cgraph_edge::callee, cgraph_node::callers, cgraph_node::can_remove_if_no_direct_calls_and_refs_p(), varpool_node::can_remove_if_no_refs_p(), changed, symtab_node::checking_verify_symtab_nodes(), cgraph_node::clone_of, cgraph_node::clones, symtab_node::comdat_local_p(), hash_set< KeyId, Lazy, Traits >::contains(), symtab_node::cpp_implicit_alias, ctor_for_folding(), debug_hooks, symtab_node::decl, DECL_ABSTRACT_ORIGIN, DECL_ATTRIBUTES, DECL_EXTERNAL, DECL_INITIAL, DECL_RESULT, cgraph_node::declare_variant_alt, symtab_node::definition, symtab_node::dump_name(), dyn_cast(), enqueue_node(), error_mark_node, symtab_node::externally_visible, first_function(), first_variable(), FOR_EACH_DEFINED_FUNCTION, FOR_EACH_DEFINED_VARIABLE, FOR_EACH_FUNCTION, FOR_EACH_VARIABLE, cgraph_node::function_symbol(), gcc_assert, cgraph_node::get(), symtab_node::get_alias_target(), has_addr_references_p(), cgraph_node::has_gimple_body_p(), i, symtab_node::in_other_partition, INCREMENTAL_LINK_LTO, cgraph_node::indirect_call_target, cgraph_edge::indirect_info, cgraph_edge::inline_failed, cgraph_node::inlined_to, ipa_call_summaries, ipa_propagate_frequency(), IPA_SSA_AFTER_INLINING, is_indirect_call_target_p(), symtab_node::iterate_direct_aliases(), symtab_node::iterate_reference(), gcc_debug_hooks::late_global_decl, cgraph_node::local, cgraph_node::local_p(), cgraph_edge::next_callee, cgraph_simd_clone::next_clone, next_function(), cgraph_node::next_sibling_clone, next_variable(), NULL, opt_for_fn, cgraph_indirect_call_info::polymorphic, possible_inline_candidate_p(), cgraph_node::prev_sibling_clone, process_references(), ipa_ref::referred, ipa_ref::referring, cgraph_node::release_body(), cgraph_node::remove(), symtab_node::remove(), varpool_node::remove(), symtab_node::remove_all_references(), remove_attribute(), cgraph_node::remove_callees(), cgraph_node::remove_from_clone_tree(), symtab_node::remove_from_same_comdat_group(), varpool_node::remove_initializer(), symtab_node::same_comdat_group, cgraph_node::simd_clones, cgraph_node::simdclone, state, symtab, cgraph_node::thunk, timevar_pop(), timevar_push(), symtab_node::transparent_alias, TREE_CODE, update_inlined_to_pointer(), cgraph_node::used_as_abstract_origin, symtab_node::used_from_other_partition, walk_polymorphic_call_targets(), and symtab_node::weakref.

Referenced by execute_todo(), ipa_inline(), and ipa_passes().

◆ remove_unreferenced_decls()

◆ remove_varpool_insertion_hook()

void symbol_table::remove_varpool_insertion_hook ( varpool_node_hook_list * entry)
Remove ENTRY from the list of hooks called on inserted nodes.   

References free(), m_first_varpool_insertion_hook, and varpool_node_hook_list::next.

◆ remove_varpool_removal_hook()

void symbol_table::remove_varpool_removal_hook ( varpool_node_hook_list * entry)
Remove ENTRY from the list of hooks called on removing nodes.   

References free(), m_first_varpool_removal_hook, and varpool_node_hook_list::next.

Referenced by ipa_reference_cc_finalize(), and ipa_icf::sem_item_optimizer::unregister_hooks().

◆ symbol_suffix_separator()

char symbol_table::symbol_suffix_separator ( )
static
Return symbol used to separate symbol name from suffix.   

Referenced by build_var(), clone_function_name(), clone_function_name(), and methods_equal_p().

◆ symtab_initialize_asm_name_hash()

void symbol_table::symtab_initialize_asm_name_hash ( void )

◆ symtab_prevail_in_asm_name_hash()

void symbol_table::symtab_prevail_in_asm_name_hash ( symtab_node * node)
Arrange node to be first in its entry of assembler_name_hash.   

References insert_to_assembler_name_hash(), and unlink_from_assembler_name_hash().

Referenced by cgraph_node::get_create().

◆ unlink_from_assembler_name_hash()

◆ unregister()

void symbol_table::unregister ( symtab_node * node)
inline
Unregister a symbol NODE.   

References symtab_node::next, nodes, NULL, and symtab_node::previous.

Referenced by symtab_node::unregister().

Friends And Related Symbol Documentation

◆ asmname_hasher

friend struct asmname_hasher
friend

◆ cgraph_edge

friend struct cgraph_edge
friend

◆ cgraph_node

friend struct cgraph_node
friend

◆ symtab_node

friend struct symtab_node
friend

Field Documentation

◆ asm_last_node

asm_node* symbol_table::asm_last_node

◆ asmnodes

asm_node* symbol_table::asmnodes

◆ assembler_name_hash

◆ cgraph_count

◆ cgraph_max_summary_id

int symbol_table::cgraph_max_summary_id

Referenced by assign_summary_id().

◆ cgraph_max_uid

int symbol_table::cgraph_max_uid

Referenced by create_empty().

◆ cgraph_released_summary_ids

vec<int> symbol_table::cgraph_released_summary_ids

◆ cloned_nodes

hash_set<const cgraph_node *> symbol_table::cloned_nodes

◆ cpp_implicit_aliases_done

◆ dump_file

◆ edge_released_summary_ids

vec<int> symbol_table::edge_released_summary_ids

Referenced by assign_summary_id(), and free_edge().

◆ edges_count

int symbol_table::edges_count

◆ edges_max_summary_id

int symbol_table::edges_max_summary_id

Referenced by assign_summary_id().

◆ edges_max_uid

int symbol_table::edges_max_uid

Referenced by create_edge().

◆ function_flags_ready

◆ global_info_ready

◆ init_priority_hash

◆ ipa_clones_dump_file

FILE* symbol_table::ipa_clones_dump_file

◆ m_clones

◆ m_first_cgraph_duplicated_hook

cgraph_2node_hook_list* symbol_table::m_first_cgraph_duplicated_hook
private

◆ m_first_cgraph_insertion_hook

cgraph_node_hook_list* symbol_table::m_first_cgraph_insertion_hook
private

◆ m_first_cgraph_removal_hook

cgraph_node_hook_list* symbol_table::m_first_cgraph_removal_hook
private

◆ m_first_edge_duplicated_hook

cgraph_2edge_hook_list* symbol_table::m_first_edge_duplicated_hook
private

◆ m_first_edge_removal_hook

cgraph_edge_hook_list* symbol_table::m_first_edge_removal_hook
private

◆ m_first_varpool_insertion_hook

varpool_node_hook_list* symbol_table::m_first_varpool_insertion_hook
private

◆ m_first_varpool_removal_hook

varpool_node_hook_list* symbol_table::m_first_varpool_removal_hook
private

◆ m_thunks

◆ max_unit

int symbol_table::max_unit

Referenced by input_cgraph_1(), and input_node().

◆ nodes

◆ order

◆ section_hash

◆ state


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