GCC Middle and Back End API Reference
|
#include <cgraph.h>
Data Fields | |
struct symtab_node_base | symbol |
struct cgraph_edge * | callees |
struct cgraph_edge * | callers |
struct cgraph_edge * | indirect_calls |
struct cgraph_node * | origin |
struct cgraph_node * | nested |
struct cgraph_node * | next_nested |
struct cgraph_node * | next_sibling_clone |
struct cgraph_node * | prev_sibling_clone |
struct cgraph_node * | clones |
struct cgraph_node * | clone_of |
htab_t | call_site_hash |
tree | former_clone_of |
vec< ipa_opt_pass > | ipa_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 |
The cgraph data structure. Each function decl has assigned cgraph_node listing callees and callers.
htab_t cgraph_node::call_site_hash |
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().
struct cgraph_edge* cgraph_node::callers |
Referenced by assemble_thunks_and_aliases(), caller_growth_limits(), can_remove_node_now_p(), cgraph_create_edge(), cgraph_edge_remove_callee(), cgraph_for_node_thunks_and_aliases(), cgraph_mark_address_taken_node(), cgraph_node_remove_callers(), cgraph_propagate_frequency_1(), cgraph_remove_node_and_inline_clones(), cgraph_set_edge_callee(), cgraph_set_nothrow_flag_1(), check_caller_edge(), clone_inlined_nodes(), collect_callers_of_node_1(), convert_callers_for_node(), decide_whether_version_node(), do_estimate_growth_1(), execute_split_functions(), function_and_variable_visibility(), gather_caller_stats(), has_undead_caller_from_outside_scc_p(), inline_call(), inline_small_functions(), inline_update_callee_summaries(), ipa_inline(), ipa_pta_execute(), ipa_reverse_postorder(), ipa_sra_preliminary_function_checks(), ipa_tm_execute(), ipa_tm_note_irrevocable(), lto_cgraph_replace_node(), not_all_callers_have_enough_arguments_p(), output_symbol_p(), reachable_from_other_partition_p(), reachable_from_this_partition_p(), recursive_inlining(), referred_to_p(), reset_edge_caches(), set_nothrow_function_flags(), symtab_remove_unreachable_nodes(), update_call_expr(), update_callee_keys(), update_caller_keys(), want_inline_function_to_all_callers_p(), and want_inline_self_recursive_call_p().
struct cgraph_clone_info cgraph_node::clone |
Referenced by adjust_agg_replacement_values(), cgraph_clone_node(), cgraph_create_virtual_clone(), cgraph_find_replacement_node(), cgraph_materialize_all_clones(), cgraph_materialize_clone(), cgraph_redirect_edge_call_stmt_to_callee(), decide_whether_version_node(), inline_node_duplication_hook(), input_node_opt_summary(), output_cgraph_opt_summary_p(), output_node_opt_summary(), propagate_controlled_uses(), and update_clone_info().
struct cgraph_node* cgraph_node::clone_of |
Referenced by add_node_to(), can_inline_edge_p(), cgraph_clone_node(), cgraph_create_edge_including_clones(), cgraph_create_virtual_clone(), cgraph_find_replacement_node(), cgraph_get_create_real_symbol_node(), cgraph_materialize_all_clones(), cgraph_materialize_clone(), cgraph_remove_node(), cgraph_set_call_stmt_including_clones(), cgraph_update_edges_for_call_stmt(), cgraph_update_edges_for_call_stmt_node(), clone_of_p(), do_per_function(), fixup_call_stmt_edges(), input_overwrite_node(), ipa_pta_execute(), lto_output_node(), lto_symtab_merge_symbols(), output_cgraph_opt_summary_p(), save_inline_function_body(), symtab_remove_unreachable_nodes(), tree_profiling(), update_clone_info(), and verify_cgraph_node().
struct cgraph_node* cgraph_node::clones |
Referenced by cgraph_clone_node(), cgraph_create_edge_including_clones(), cgraph_find_replacement_node(), cgraph_get_create_real_symbol_node(), cgraph_materialize_clone(), cgraph_remove_node(), cgraph_set_call_stmt_including_clones(), cgraph_update_edges_for_call_stmt(), delete_unreachable_blocks_update_callgraph(), fixup_call_stmt_edges(), free_lang_data_in_decl(), insert_to_assembler_name_hash(), mark_functions_to_output(), preserve_function_body_p(), save_inline_function_body(), symtab_remove_unreachable_nodes(), unlink_from_assembler_name_hash(), update_clone_info(), and verify_cgraph_node().
gcov_type cgraph_node::count |
Referenced by cgraph_clone_node(), cgraph_copy_node_for_versioning(), cgraph_create_virtual_clone(), cgraph_rebuild_references(), dump_profile_updates(), execute_fixup_cfg(), input_node(), ipa_profile(), ipcp_cloning_candidate_p(), ipcp_propagate_stage(), merge_profile_summaries(), rebuild_cgraph_edges(), recursive_inlining(), tree_function_versioning(), update_profiling_info(), update_specialized_profile(), and want_inline_self_recursive_call_p().
int cgraph_node::count_materialization_scale |
Referenced by cgraph_create_empty_node(), input_function(), input_node(), and merge_profile_summaries().
unsigned cgraph_node::dispatcher_function |
tree cgraph_node::former_clone_of |
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().
struct cgraph_edge* cgraph_node::indirect_calls |
Referenced by cgraph_clone_node(), cgraph_copy_node_for_versioning(), cgraph_create_indirect_edge(), cgraph_edge(), cgraph_edge_remove_caller(), cgraph_make_edge_direct(), cgraph_node_remove_callees(), cgraph_speculative_call_info(), devirtualization_time_bonus(), dump_inline_edge_summary(), estimate_calls_size_and_time(), fixup_call_stmt_edges_1(), get_read_write_all_from_node(), initialize_node_lattices(), inline_node_duplication_hook(), inline_read_section(), inline_update_callee_summaries(), input_node_opt_summary(), ipa_compute_jump_functions(), ipa_print_node_jump_functions(), ipa_profile(), ipa_read_node_info(), ipa_tm_transform_clone(), ipcp_discover_new_direct_edges(), output_symtab(), propagate_info_to_inlined_callees(), propagate_nothrow(), propagate_pure_const(), remap_edge_summaries(), reset_inline_summary(), tree_function_versioning(), update_indirect_edges_after_inlining(), and update_noncloned_frequencies().
vec<ipa_opt_pass> cgraph_node::ipa_transforms_to_apply |
struct cgraph_local_info cgraph_node::local |
Referenced by analyze_function(), cgraph_add_new_function(), cgraph_clone_node(), cgraph_copy_node_for_versioning(), cgraph_create_virtual_clone(), cgraph_finalize_function(), cgraph_function_body_availability(), cgraph_function_versioning(), cgraph_local_info(), cgraph_make_node_local_1(), cgraph_propagate_frequency(), cgraph_reset_node(), compute_inline_parameters(), create_specialized_node(), determine_versionability(), expand_call_inline(), expand_call_tm(), function_and_variable_visibility(), initialize_inline_failed(), initialize_node_lattices(), input_overwrite_node(), ipa_profile(), ipa_sra_preliminary_function_checks(), ipa_tm_create_version(), ipa_tm_diagnose_tm_safe(), ipa_tm_execute(), ipa_tm_mayenterirr_function(), ipa_tm_transform_calls_redirect(), ipcp_generate_summary(), ipcp_versionable_function_p(), speculation_useful_p(), split_function(), and symtab_remove_unreachable_nodes().
unsigned cgraph_node::lowered |
struct cgraph_node* cgraph_node::nested |
struct cgraph_node* cgraph_node::next_nested |
struct cgraph_node* cgraph_node::next_sibling_clone |
Referenced by cgraph_create_edge_including_clones(), cgraph_find_replacement_node(), cgraph_materialize_clone(), cgraph_remove_node(), cgraph_set_call_stmt_including_clones(), cgraph_update_edges_for_call_stmt(), delete_unreachable_blocks_update_callgraph(), fixup_call_stmt_edges(), insert_to_assembler_name_hash(), save_inline_function_body(), unlink_from_assembler_name_hash(), update_clone_info(), and verify_cgraph_node().
unsigned cgraph_node::only_called_at_exit |
ENUM_BITFIELD (node_frequency) frequency unsigned cgraph_node::only_called_at_startup |
struct cgraph_node* cgraph_node::origin |
Referenced by cgraph_clone_node(), cgraph_remove_node(), cgraph_unnest_node(), expand_function(), gimplify_body(), and unnest_nesting_tree_1().
struct cgraph_node* cgraph_node::prev_sibling_clone |
unsigned cgraph_node::process |
unsigned int cgraph_node::profile_id |
Referenced by gimple_gen_ic_func_profiler(), init_node_map(), and input_node().
struct cgraph_rtl_info cgraph_node::rtl |
Referenced by cgraph_clone_node(), cgraph_copy_node_for_versioning(), cgraph_reset_node(), and cgraph_rtl_info().
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().
struct cgraph_thunk_info cgraph_node::thunk |
Referenced by analyze_function(), assemble_thunks_and_aliases(), associate_varinfo_to_alias(), cgraph_add_thunk(), cgraph_for_node_thunks_and_aliases(), cgraph_function_node(), cgraph_local_node_p(), compute_inline_parameters(), determine_versionability(), expand_thunk(), function_and_variable_visibility(), gather_caller_stats(), has_undead_caller_from_outside_scc_p(), initialize_node_lattices(), inline_analyze_function(), inline_small_functions(), input_node(), input_overwrite_node(), ipa_reverse_postorder(), ipa_tm_execute(), ipa_tm_mayenterirr_function(), lto_output(), mark_functions_to_output(), output_in_order(), preserve_function_body_p(), and propagate_constants_accross_call().
unsigned cgraph_node::tm_clone |
Referenced by input_overwrite_node(), ipa_tm_create_version(), and ipa_tm_create_version_alias().
int cgraph_node::uid |
Referenced by cgraph_allocate_node(), cgraph_fnver_htab_eq(), cgraph_remove_node(), convert_callers_for_node(), do_estimate_growth(), estimate_growth(), get_function_state(), get_reference_optimization_summary(), get_reference_vars_info(), has_function_state(), inline_node_removal_hook(), inline_summary(), input_node(), ipa_get_agg_replacements_for_node(), ipa_node_removal_hook(), ipa_reduced_postorder(), ipa_set_node_agg_value_chain(), ipcp_transform_function(), is_pass_explicitly_enabled_or_disabled(), reset_node_growth_cache(), searchc(), set_function_state(), set_reference_optimization_summary(), set_reference_vars_info(), update_callee_keys(), and update_caller_keys().
unsigned cgraph_node::used_as_abstract_origin |