GCC Middle and Back End API Reference
symtab-thunks.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  thunk_info
 

Functions

bool expand_thunk (cgraph_node *, bool, bool)
 

Function Documentation

◆ expand_thunk()

bool expand_thunk ( cgraph_node * node,
bool output_asm_thunks,
bool force_gimple_thunk )
Expand thunk NODE to gimple if possible.
When FORCE_GIMPLE_THUNK is true, gimple thunk is created and
no assembler is produced.
When OUTPUT_ASM_THUNK is true, also produce assembler for
thunks that are not lowered.   

References a, add_bb_to_loop(), add_local_decl(), aggregate_value_p(), allocate_struct_function(), profile_probability::always(), symtab_node::analyzed, asm_out_file, BB_FREQ_MAX, bitmap_obstack_initialize(), bitmap_obstack_release(), BLOCK_SUPERCONTEXT, BLOCK_VARS, build2(), build_decl(), build_fold_addr_expr_loc(), build_int_cst(), build_zero_cst(), cgraph_edge::call_stmt, cgraph_edge::callee, cgraph_node::callees, CDI_DOMINATORS, cfun, checking_verify_flow_info(), basic_block_def::count, cgraph_node::count, create_basic_block(), create_tmp_reg(), create_tmp_var_name(), curr_insn_location(), current_function_decl, symtab_node::decl, DECL_ARG_TYPE, DECL_ARGUMENTS, DECL_ARTIFICIAL, DECL_BY_REFERENCE, DECL_CHAIN, DECL_CONTEXT, DECL_EXTERNAL, DECL_IGNORED_P, DECL_INITIAL, DECL_NOT_GIMPLE_REG_P, DECL_RESULT, DECL_SOURCE_LOCATION, DECL_STATIC_CHAIN, DECL_STRUCT_FUNCTION, delete_unreachable_blocks(), error(), EXIT_BLOCK_PTR_FOR_FN, thunk_info::fixed_offset, free_after_compilation(), free_dominance_info(), profile_count::from_gcov_type(), gcc_assert, thunk_info::get(), cgraph_node::get_untransformed_body(), ggc_alloc(), gimple_block_label(), gimple_build_assign(), gimple_build_call_vec(), gimple_build_cond(), gimple_build_return(), gimple_call_set_chain(), gimple_call_set_ctrl_altering(), gimple_call_set_from_thunk(), gimple_call_set_lhs(), gimple_call_set_return_slot_opt(), gimple_call_set_tail(), gimple_fold_indirect_ref(), gsi_insert_after(), gsi_last_bb(), GSI_NEW_STMT, gsi_start_bb(), profile_probability::guessed_always(), profile_count::guessed_local(), i, thunk_info::indirect_offset, init_function_start(), init_insn_lengths(), init_lowered_empty_function(), input_location, insn_locations_finalize(), insn_locations_init(), is_gimple_reg_type(), is_gimple_val(), basic_block_def::loop_father, cgraph_node::lowered, make_edge(), make_node(), make_single_succ_edge(), NULL, NULL_TREE, PROFILE_GUESSED, PROFILE_READ, profile_status_for_fn, prologue_location, remove_edge(), resolve_unique_section(), set_cfun(), set_curr_insn_location(), single_succ_edge(), size_int, stdarg_p(), targetm, thunk_info::this_adjusting, cgraph_node::thunk, thunk_adjust(), TODO_update_ssa, TREE_ADDRESSABLE, TREE_ASM_WRITTEN, TREE_CODE, TREE_READONLY, TREE_THIS_VOLATILE, TREE_TYPE, TREE_USED, type(), TYPE_MAIN_VARIANT, TYPE_SIZE_UNIT, update_max_bb_count(), update_ssa(), useless_type_conversion_p(), VAR_P, thunk_info::virtual_offset_p, thunk_info::virtual_value, and VOID_TYPE_P.

Referenced by cgraph_node::analyze(), cgraph_node::assemble_thunks_and_aliases(), cgraph_node::create_wrapper(), cgraph_node::expand_all_artificial_thunks(), inline_call(), and tree_profiling().