Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
#include "defs.h"
#include "symtab.h"
#include "strtab.h"
#include "cxx_memory.h"
#include "dwarf_DST.h"
#include "dwarf_DST_producer.h"
#include "dwarf_DST_mem.h"
#include "clone.h"
#include "clone_DST_utils.h"
Go to the source code of this file.
Defines | |
#define | GET_ABSTRACT_ORIGIN(x) ((caller_file_dst == callee_file_dst)? get_abstract_origin(x): foreign_origin) |
Functions | |
static char * | create_ipa_internal_name (void) |
static DST_IDX | get_abstract_origin (DST_IDX concrete_instance) |
static void | DST_enter_cloned_childs (DST_IDX parent, DST_IDX inl_routine, IPO_SYMTAB *symtab, DST_TYPE caller_file_dst, DST_TYPE callee_file_dst, mUINT16 parent_file_index, BOOL inlined, MEM_POOL *caller_file_m, MEM_POOL *callee_file_m) |
void | DST_enter_inlined_subroutine (DST_IDX parent, DST_IDX inl_routine, LABEL_IDX begin_label, LABEL_IDX end_label, DST_TYPE caller_file_dst, DST_TYPE callee_file_dst, IPO_SYMTAB *symtab, MEM_POOL *caller_file_m, MEM_POOL *callee_file_m, mUINT16 cross_file_id) |
DST_IDX | DST_enter_cloned_subroutine (DST_IDX parent, DST_IDX orig_node, ST *cloned_st, DST_TYPE cur_file_dst, IPO_SYMTAB *sym) |
Variables | |
INT | num_gen_names = 1 |
const DST_INFO_IDX | foreign_origin = DST_FOREIGN_INIT |
#define GET_ABSTRACT_ORIGIN | ( | x | ) | ((caller_file_dst == callee_file_dst)? get_abstract_origin(x): foreign_origin) |
Definition at line 59 of file clone_DST_utils.cxx.
Referenced by DST_enter_cloned_childs().
static char* create_ipa_internal_name | ( | void | ) | [static] |
Definition at line 64 of file clone_DST_utils.cxx.
References CXX_NEW, MEM_src_pool_ptr, name, and num_gen_names.
Referenced by DST_enter_cloned_childs().
static void DST_enter_cloned_childs | ( | DST_IDX | parent, |
DST_IDX | inl_routine, | ||
IPO_SYMTAB * | symtab, | ||
DST_TYPE | caller_file_dst, | ||
DST_TYPE | callee_file_dst, | ||
mUINT16 | parent_file_index, | ||
BOOL | inlined, | ||
MEM_POOL * | caller_file_m, | ||
MEM_POOL * | callee_file_m | ||
) | [static] |
Definition at line 230 of file clone_DST_utils.cxx.
References create_ipa_internal_name(), Current_DST, CURRENT_SYMTAB, DST_append_child(), DST_ARRAY_TYPE_byte_size, DST_ARRAY_TYPE_decl, DST_ARRAY_TYPE_type, DST_ASSOC_INFO_st_idx, DST_ASSOC_INFO_st_index, DST_ATTR_IDX_TO_PTR, DST_CLASS_TYPE_byte_size, DST_CLASS_TYPE_decl, DST_enter_inlined_subroutine(), DST_ENUMERATION_TYPE_byte_size, DST_ENUMERATION_TYPE_decl, DST_first_child(), DST_FORMAL_PARAMETER_decl, DST_FORMAL_PARAMETER_name, DST_FORMAL_PARAMETER_st, DST_INFO_attributes, DST_INFO_flag, DST_INFO_IDX_TO_PTR, DST_INFO_sibling, DST_INFO_tag, DST_INLINED_SUBROUTINE_high_pc, DST_INLINED_SUBROUTINE_low_pc, DST_INVALID_IDX, DST_IS_automatic, DST_IS_declaration, DST_IS_NULL, DST_LABEL_low_pc, DST_LABEL_name, DST_LEXICAL_BLOCK_high_pc, DST_LEXICAL_BLOCK_low_pc, DST_LEXICAL_BLOCK_name, DST_mk_array_type(), DST_mk_class_type(), DST_mk_enumeration_type(), DST_mk_formal_parameter(), DST_mk_label(), DST_mk_lexical_block(), DST_mk_structure_type(), DST_mk_subroutine_type(), DST_mk_typedef(), DST_mk_union_type(), DST_mk_unspecified_parameters(), DST_mk_variable(), DST_STR_IDX_TO_PTR, DST_STRUCTURE_TYPE_byte_size, DST_STRUCTURE_TYPE_decl, DST_SUBROUTINE_TYPE_decl, DST_SUBROUTINE_TYPE_type, DST_TYPEDEF_decl, DST_TYPEDEF_type, DST_UNION_TYPE_byte_size, DST_UNION_TYPE_decl, DST_UNSPECIFIED_PARAMETERS_decl, DST_VARIABLE_constant_decl, DST_VARIABLE_def_name, DST_VARIABLE_def_st, DW_TAG_array_type, DW_TAG_class_type, DW_TAG_enumeration_type, DW_TAG_formal_parameter, DW_TAG_inlined_subroutine, DW_TAG_label, DW_TAG_lexical_block, DW_TAG_structure_type, DW_TAG_subroutine_type, DW_TAG_typedef, DW_TAG_union_type, DW_TAG_unspecified_parameters, DW_TAG_variable, FALSE, GET_ABSTRACT_ORIGIN, IPO_SYMTAB::Get_cloned_label_last_idx(), IPO_SYMTAB::Get_cloned_level(), IPO_SYMTAB::Get_Cloned_ST(), IPO_SYMTAB::Get_orig_level(), IPO_SYMTAB::Get_orig_scope_tab(), idx, make_ST_IDX(), MEM_src_pool_ptr, name, NULL, Scope_tab, ST_st_idx(), St_Table, USRCPOS_clear, and USRCPOS_filenum.
Referenced by DST_enter_cloned_subroutine(), and DST_enter_inlined_subroutine().
DST_IDX DST_enter_cloned_subroutine | ( | DST_IDX | parent, |
DST_IDX | orig_node, | ||
ST * | cloned_st, | ||
DST_TYPE | cur_file_dst, | ||
IPO_SYMTAB * | sym | ||
) |
Definition at line 840 of file clone_DST_utils.cxx.
References CURRENT_SYMTAB, DST_append_child(), DST_ASSOC_INFO_st_idx, DST_ATTR_IDX_TO_PTR, DST_enter_cloned_childs(), DST_INFO_attributes, DST_INFO_IDX_TO_PTR, DST_INVALID_INIT, DST_mk_cloned_subprogram(), DST_SUBPROGRAM_def_decl, DST_SUBPROGRAM_def_inline, DST_SUBPROGRAM_def_type, DST_SUBPROGRAM_def_virtuality, FALSE, IPO_SYMTAB::Get_orig_level(), IPO_SYMTAB::Get_orig_scope_tab(), idx, NULL, Scope_tab, ST_name(), and ST_st_idx().
Referenced by DRA_Add_Clone().
void DST_enter_inlined_subroutine | ( | DST_IDX | parent, |
DST_IDX | inl_routine, | ||
LABEL_IDX | begin_label, | ||
LABEL_IDX | end_label, | ||
DST_TYPE | caller_file_dst, | ||
DST_TYPE | callee_file_dst, | ||
IPO_SYMTAB * | symtab, | ||
MEM_POOL * | caller_file_m, | ||
MEM_POOL * | callee_file_m, | ||
mUINT16 | cross_file_id | ||
) |
Definition at line 733 of file clone_DST_utils.cxx.
References Current_DST, CURRENT_SYMTAB, DST_append_child(), DST_ASSOC_INFO_st_idx, DST_ATTR_IDX_TO_PTR, DST_enter_cloned_childs(), DST_INFO_attributes, DST_INFO_IDX_TO_PTR, DST_mk_inlined_subroutine(), DST_STR_IDX_TO_PTR, DST_SUBPROGRAM_decl_decl, DST_SUBPROGRAM_decl_name, get_abstract_origin(), IPO_SYMTAB::Get_cloned_level(), IPO_SYMTAB::Get_orig_level(), IPO_SYMTAB::Get_orig_scope_tab(), idx, make_ST_IDX(), NULL, Scope_tab, TRUE, and USRCPOS_filenum.
Referenced by DST_enter_cloned_childs().
static DST_IDX get_abstract_origin | ( | DST_IDX | concrete_instance | ) | [static] |
Definition at line 95 of file clone_DST_utils.cxx.
References DST_ARRAY_TYPE_abstract_origin, DST_ATTR_IDX_TO_PTR, DST_CLASS_TYPE_abstract_origin, DST_ENUMERATION_TYPE_abstract_origin, DST_FORMAL_PARAMETER_abstract_origin, DST_INFO_attributes, DST_INFO_IDX_TO_PTR, DST_INFO_tag, DST_INLINED_SUBROUTINE_abstract_origin, DST_IS_FOREIGN_OBJ, DST_IS_NULL, DST_LABEL_abstract_origin, DST_LEXICAL_BLOCK_abstract_origin, DST_STRUCTURE_TYPE_abstract_origin, DST_SUBROUTINE_TYPE_abstract_origin, DST_TYPEDEF_abstract_origin, DST_UNION_TYPE_abstract_origin, DST_UNSPECIFIED_PARAMETERS_abstract_origin, DST_VARIABLE_def_abstract_origin, DW_TAG_array_type, DW_TAG_class_type, DW_TAG_enumeration_type, DW_TAG_formal_parameter, DW_TAG_inlined_subroutine, DW_TAG_label, DW_TAG_lexical_block, DW_TAG_structure_type, DW_TAG_subroutine_type, DW_TAG_typedef, DW_TAG_union_type, DW_TAG_unspecified_parameters, and DW_TAG_variable.
Referenced by DST_enter_inlined_subroutine().
Definition at line 56 of file clone_DST_utils.cxx.
INT num_gen_names = 1 |
Definition at line 50 of file clone_DST_utils.cxx.
Referenced by create_ipa_internal_name().