GCC Middle and Back End API Reference
cgraph_node Struct Reference

#include <cgraph.h>

Collaboration diagram for cgraph_node:

Data Fields

struct symtab_node_base symbol
struct cgraph_edgecallees
struct cgraph_edgecallers
struct cgraph_edgeindirect_calls
struct cgraph_nodeorigin
struct cgraph_nodenested
struct cgraph_nodenext_nested
struct cgraph_nodenext_sibling_clone
struct cgraph_nodeprev_sibling_clone
struct cgraph_nodeclones
struct cgraph_nodeclone_of
htab_t call_site_hash
tree former_clone_of
vec< ipa_opt_passipa_transforms_to_apply
struct cgraph_local_info local
struct cgraph_global_info global
struct cgraph_rtl_info rtl
struct cgraph_clone_info clone
struct cgraph_thunk_info thunk
gcov_type count
int count_materialization_scale
int uid
unsigned int profile_id
unsigned used_as_abstract_origin: 1
unsigned lowered: 1
unsigned process: 1
ENUM_BITFIELD(node_frequency)
frequency unsigned 
only_called_at_startup: 1
unsigned only_called_at_exit: 1
unsigned tm_clone: 1
unsigned dispatcher_function: 1

Detailed Description

The cgraph data structure.
   Each function decl has assigned cgraph_node listing callees and callers.   

Field Documentation

struct cgraph_edge* cgraph_node::callees

Referenced by cgraph_clone_node(), cgraph_copy_node_for_versioning(), cgraph_create_edge(), cgraph_edge(), cgraph_edge_remove_caller(), cgraph_function_node(), cgraph_make_edge_direct(), cgraph_materialize_all_clones(), cgraph_node_remove_callees(), cgraph_remove_node_and_inline_clones(), cgraph_speculative_call_info(), clone_inlined_nodes(), compute_inline_parameters(), compute_ltrans_boundary(), dump_inline_edge_summary(), dump_profile_updates(), early_inline_small_functions(), early_inliner(), estimate_calls_size_and_time(), expand_thunk(), fixup_call_stmt_edges_1(), flatten_function(), function_and_variable_visibility(), get_read_write_all_from_node(), inline_always_inline_functions(), inline_node_duplication_hook(), inline_read_section(), inline_small_functions(), inline_transform(), inline_update_callee_summaries(), input_node_opt_summary(), ipa_compute_jump_functions(), ipa_inline(), ipa_print_node_jump_functions(), ipa_profile(), ipa_read_node_info(), ipa_tm_diagnose_tm_safe(), ipa_tm_transform_clone(), lookup_recursive_calls(), merge_profile_summaries(), num_calls(), output_symtab(), propagate_bits(), propagate_constants_topo(), propagate_info_to_inlined_callees(), propagate_nothrow(), propagate_pure_const(), recursive_inlining(), remap_edge_summaries(), reset_edge_caches(), reset_inline_summary(), searchc(), self_recursive_p(), spread_undeadness(), tree_function_versioning(), update_callee_keys(), update_inlined_to_pointer(), update_noncloned_frequencies(), update_profiling_info(), and update_specialized_profile().

int cgraph_node::count_materialization_scale
unsigned cgraph_node::dispatcher_function
struct cgraph_global_info cgraph_node::global

Referenced by apply_ipa_transforms(), caller_growth_limits(), can_inline_edge_p(), can_refer_decl_in_current_unit_p(), cgraph_can_remove_if_no_direct_calls_and_refs_p(), cgraph_clone_node(), cgraph_copy_node_for_versioning(), cgraph_get_create_real_symbol_node(), cgraph_global_info(), cgraph_mark_address_taken_node(), cgraph_node_for_asm(), cgraph_remove_node(), cgraph_reset_node(), cgraph_will_be_removed_from_program_if_no_direct_calls(), clone_inlined_nodes(), compile(), compute_inline_parameters(), compute_inlined_call_time(), compute_uninlined_call_time(), do_estimate_growth_1(), dump_inline_summaries(), evaluate_properties_for_edge(), expand_function(), flatten_function(), function_and_variable_visibility(), function_called_by_processed_nodes_p(), inline_call(), inline_merge_summary(), inline_small_functions(), inline_update_callee_summaries(), input_cgraph_1(), input_node(), ipa_edge_duplication_hook(), ipa_inline(), ipa_make_edge_direct_to_target(), ipa_reverse_postorder(), lto_cgraph_replace_node(), mark_functions_to_output(), propagate_controlled_uses(), reachable_from_other_partition_p(), rebuild_cgraph_edges(), recursive_inlining(), relative_time_benefit(), reset_edge_caches(), resolve_noninline_speculation(), simple_edge_hints(), symtab_remove_unreachable_nodes(), update_caller_keys(), update_indirect_edges_after_inlining(), update_inlined_to_pointer(), verify_cgraph_node(), verify_edge_corresponds_to_fndecl(), verify_edge_count_and_frequency(), want_inline_self_recursive_call_p(), and write_node_summary_p().

unsigned int cgraph_node::profile_id
struct symtab_node_base cgraph_node::symbol

Referenced by analyze_function(), analyze_functions(), assemble_alias(), assemble_thunks_and_aliases(), associate_varinfo_to_alias(), build_type_inheritance_graph(), can_early_inline_edge_p(), can_inline_edge_p(), can_refer_decl_in_current_unit_p(), can_remove_node_now_p(), can_remove_node_now_p_1(), cgraph_add_new_function(), cgraph_add_thunk(), cgraph_can_remove_if_no_direct_calls_and_refs_p(), cgraph_can_remove_if_no_direct_calls_p(), cgraph_clone_node(), cgraph_copy_node_for_versioning(), cgraph_create_edge_1(), cgraph_create_empty_node(), cgraph_create_function_alias(), cgraph_create_node(), cgraph_create_virtual_clone(), cgraph_externally_visible_p(), cgraph_finalize_function(), cgraph_find_replacement_node(), cgraph_for_node_and_aliases(), cgraph_for_node_thunks_and_aliases(), cgraph_function_body_availability(), cgraph_function_versioning(), cgraph_get_body(), cgraph_get_create_real_symbol_node(), cgraph_make_edge_direct(), cgraph_make_node_local_1(), cgraph_mark_address_taken_node(), cgraph_materialize_all_clones(), cgraph_materialize_clone(), cgraph_node_can_be_local_p(), cgraph_node_cannot_be_local_p_1(), cgraph_node_cannot_return(), cgraph_non_local_node_p_1(), cgraph_process_new_functions(), cgraph_propagate_frequency(), cgraph_propagate_frequency_1(), cgraph_rebuild_references(), cgraph_redirect_edge_call_stmt_to_callee(), cgraph_release_function_body(), cgraph_remove_node(), cgraph_reset_node(), cgraph_resolve_speculation(), cgraph_rtl_info(), cgraph_same_body_alias(), cgraph_set_call_stmt(), cgraph_set_const_flag_1(), cgraph_set_nothrow_flag_1(), cgraph_set_pure_flag_1(), cgraph_speculative_call_info(), cgraph_turn_edge_to_speculative(), cgraph_update_edges_for_call_stmt_node(), cgraph_will_be_removed_from_program_if_no_direct_calls(), check_for_nested_with_variably_modified(), check_ic_target(), clone_inlined_nodes(), compile(), compute_bb_predicates(), compute_inline_parameters(), compute_ltrans_boundary(), convert_callers(), convert_callers_for_node(), copy_bb(), copy_function(), coverage_compute_profile_id(), create_nesting_tree(), decide_about_value(), decide_whether_version_node(), decl_binds_to_current_def_p(), default_binds_local_p_1(), determine_versionability(), devirtualization_time_bonus(), do_estimate_growth(), do_per_function(), do_per_function_toporder(), dump_cgraph_node(), dump_cgraph_node_set(), dump_function_header(), dump_inline_edge_summary(), dump_inline_summary(), gcc::pass_manager::dump_passes(), dump_tm_clone_pairs(), early_inline_small_functions(), early_inliner(), edge_badness(), edge_within_scc(), estimate_edge_devirt_benefit(), estimate_function_body_sizes(), estimate_local_effects(), estimate_node_size_and_time(), estimate_num_insns(), estimated_stack_frame_size(), execute_split_functions(), expand_call_inline(), expand_function(), expand_thunk(), find_decls_types_in_node(), fixup_call_stmt_edges(), fixup_call_stmt_edges_1(), flatten_function(), free_lang_data_in_decl(), function_and_variable_visibility(), function_called_by_processed_nodes_p(), generate_summary(), gimple_ic(), gimple_ic_transform(), gimplify_all_functions(), good_cloning_opportunity_p(), handle_alias_pairs(), has_addr_references_p(), identify_dead_nodes(), init_node_map(), initialize_inline_failed(), initialize_node_lattices(), inline_always_inline_functions(), inline_analyze_function(), inline_call(), inline_generate_summary(), inline_small_functions(), inline_transform(), inline_write_summary(), input_edge(), input_node(), input_overwrite_node(), input_symtab(), insert_to_assembler_name_hash(), ipa_analyze_node(), ipa_analyze_params_uses(), ipa_cdtor_merge(), ipa_compute_jump_functions(), ipa_free_postorder_info(), ipa_func_spec_opts_forbid_analysis_p(), ipa_get_nodes_in_cycle(), ipa_initialize_node_params(), ipa_inline(), ipa_make_edge_direct_to_target(), ipa_modify_call_arguments(), ipa_populate_param_decls(), ipa_print_node_jump_functions(), ipa_print_node_params(), ipa_profile(), ipa_profile_generate_summary(), ipa_prop_read_section(), ipa_pta_execute(), ipa_reduced_postorder(), ipa_reference_get_not_read_global(), ipa_reference_get_not_written_global(), ipa_reference_read_optimization_summary(), ipa_reverse_postorder(), ipa_sra_preliminary_function_checks(), ipa_tm_create_version(), ipa_tm_create_version_alias(), ipa_tm_diagnose_tm_safe(), ipa_tm_execute(), ipa_tm_insert_gettmclone_call(), ipa_tm_insert_irr_call(), ipa_tm_mark_force_output_node(), ipa_tm_mark_forced_by_abi_node(), 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_optimization_summaries(), ipa_write_summaries(), ipcp_cloning_candidate_p(), ipcp_decision_stage(), ipcp_generate_summary(), ipcp_propagate_stage(), ipcp_transform_function(), lower_emutls_function_body(), lto_cgraph_replace_node(), lto_output(), lto_output_edge(), lto_symtab_merge_symbols(), mark_decl_referenced(), mark_functions_to_output(), merge_profile_summaries(), modify_function(), num_calls(), output_function(), output_in_order(), output_symbol_p(), perhaps_add_new_callers(), preserve_function_body_p(), print_all_lattices(), print_lattice(), process_function_and_variable_attributes(), propagate(), propagate_bits(), propagate_constants_accross_call(), propagate_constants_topo(), propagate_nothrow(), propagate_pure_const(), pure_const_read_summary(), pure_const_write_summary(), reachable_from_other_partition_p(), read_replacements_section(), read_write_all_from_decl(), rebuild_cgraph_edges(), record_cdtor_fn(), record_eh_tables(), recursive_inlining(), relative_time_benefit(), remove_cgraph_callee_edges(), remove_described_reference(), report_inline_failed_reason(), reset_edge_caches(), save_inline_function_body(), searchc(), simple_edge_hints(), speculation_useful_p(), split_function(), symtab_remove_unreachable_nodes(), tree_could_trap_p(), tree_profiling(), unlink_from_assembler_name_hash(), unshare_body(), unvisit_body(), update_call_expr(), update_caller_keys(), update_edge_key(), update_indirect_edges_after_inlining(), update_profiling_info(), update_type_inheritance_graph(), verify_cgraph_node(), verify_edge_corresponds_to_fndecl(), verify_edge_count_and_frequency(), want_early_inline_function_p(), want_inline_self_recursive_call_p(), want_inline_small_function_p(), and write_node_summary_p().

unsigned cgraph_node::tm_clone

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