Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
#include "defs.h"
#include "glob.h"
#include "stab.h"
#include "ttype.h"
#include "strtab.h"
#include "config_targ.h"
#include "errors.h"
#include "wn.h"
#include "wn_util.h"
#include "i_cvrt.h"
#include "cwh_defines.h"
#include "cwh_expr.h"
#include "cwh_addr.h"
#include "cwh_block.h"
#include "cwh_preg.h"
#include "cwh_stab.h"
#include "cwh_auxst.h"
#include "cwh_types.h"
#include "cwh_stk.h"
#include "cwh_types.i"
#include "sgi_cmd_line.h"
Go to the source code of this file.
#define BUMP_TY_COUNTER | ( | x | ) |
Definition at line 100 of file cwh_types.cxx.
Referenced by cwh_types_array_util(), cwh_types_mk_character_TY(), cwh_types_mk_f90_pointer_ty(), cwh_types_mk_logical_TY(), cwh_types_mk_misaligned_TY(), cwh_types_mk_procedure_TY(), cwh_types_mk_struct(), cwh_types_mk_unique_pointer_TY(), cwh_types_shared_dope(), and fei_next_type_idx().
#define TYPE_ALLOC_CHUNK_SIZE 32 |
Definition at line 3380 of file cwh_types.cxx.
Referenced by cwh_types_mk_f90_pointer_ty().
Definition at line 3237 of file cwh_types.cxx.
References f90_type::dec_len, f90_type::int_len, Is_True, f90_type::kind_or_star, MTYPE_C4, MTYPE_C8, MTYPE_CQ, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, and f90_type::type.
Referenced by cwh_cray_type_from_TY().
INT64 cwh_cray_type_from_TY | ( | TY_IDX | ty_idx | ) |
Definition at line 3188 of file cwh_types.cxx.
References cwh_cray_type_from_MTYPE(), cwh_cray_type_from_TY(), f90_type::int_len, Is_True, KIND_ARRAY, KIND_SCALAR, KIND_STRUCT, TY_etype(), TY_is_character(), TY_is_logical(), TY_kind(), TY_mtype(), Ty_Table, and f90_type::type.
Referenced by cwh_cray_type_from_TY(), and cwh_dope_from_expression().
TY_IDX cwh_types_array_temp_TY | ( | WN * | ar, |
TY_IDX | sc | ||
) |
Definition at line 2442 of file cwh_types.cxx.
References ARB_const_lbnd(), ARB_const_stride(), ARB_const_ubnd(), ARB_Init(), ARB_lbnd_val(), ARB_stride_val(), ARB_stride_var(), ARB_ubnd_val(), ARB_ubnd_var(), Clear_ARB_const_stride(), Clear_ARB_const_ubnd(), Clear_ARB_first_dimen(), Clear_ARB_last_dimen(), cwh_addr_load_ST(), cwh_addr_store_ST(), cwh_bound_int_typeid, cwh_expr_bincalc(), cwh_types_make_bounds_ST(), cwh_types_mk_array_TY(), New_ARB(), OPR_ADD, OPR_INTCONST, OPR_MPY, OPR_SUB, Set_ARB_const_lbnd(), Set_ARB_const_stride(), Set_ARB_const_ubnd(), Set_ARB_first_dimen(), Set_ARB_last_dimen(), Set_ARB_lbnd_val(), Set_ARB_stride_val(), Set_ARB_stride_var(), Set_ARB_ubnd_val(), Set_ARB_ubnd_var(), size, ST_st_idx(), St_Table, TY_arb(), TY_size(), wn, WN_const_val(), WN_COPY_Tree(), WN_Intconst(), WN_kid(), WN_kid_count(), and WNOPR.
Referenced by fei_concat().
TY_IDX cwh_types_array_TY | ( | TY_IDX | ty_idx | ) |
Definition at line 1573 of file cwh_types.cxx.
References cwh_types_array_TY(), DUMP_TY, Is_True, KIND_ARRAY, KIND_FUNCTION, KIND_POINTER, KIND_SCALAR, KIND_STRUCT, KIND_VOID, TY_kind(), TY_pointed(), and Ty_Table.
Referenced by cwh_addr_array(), cwh_addr_array1(), cwh_addr_compute_stride_fudge_factor(), cwh_addr_substr_util(), cwh_addr_temp_section(), cwh_io_ioitem(), cwh_io_no_desc(), cwh_io_scalar_type(), cwh_types_array_TY(), cwh_types_is_character(), cwh_types_is_character_function(), cwh_types_is_logical(), fei_arg_addr(), fei_close(), fei_control_list(), fei_dv_deref(), fei_inquire(), and fei_open().
TY_IDX cwh_types_array_util | ( | INT16 | rank, |
TY_IDX | ety_idx, | ||
INT32 | align, | ||
INT64 | size, | ||
char * | name, | ||
BOOL | alloc_arbs | ||
) |
Definition at line 1891 of file cwh_types.cxx.
References ARB_Init(), BUMP_TY_COUNTER, c_TY_ARRAY, cwh_types_mk_anon_name(), cwh_types_new_TY(), KIND_ARRAY, MTYPE_UNKNOWN, New_ARB(), Save_Str(), Set_ARB_const_lbnd(), Set_ARB_const_stride(), Set_ARB_const_ubnd(), Set_ARB_dimension(), Set_ARB_first_dimen(), Set_ARB_last_dimen(), Set_ARB_lbnd_val(), Set_ARB_stride_val(), Set_ARB_ubnd_val(), Set_TY_arb(), Set_TY_etype(), TRUE, TY_Init(), and Ty_Table.
Referenced by cwh_types_dim_TY(), cwh_types_dope_TY(), cwh_types_mk_array_TY(), cwh_types_mk_basic_TY(), cwh_types_mk_character_TY(), cwh_types_mk_namelist_TY(), and fei_allocate().
WN* cwh_types_bound_WN | ( | TY_IDX | ty, |
INT16 | i, | ||
enum ty_bound_enum | b | ||
) |
Definition at line 2627 of file cwh_types.cxx.
References ARB_const_lbnd(), ARB_const_stride(), ARB_const_ubnd(), ARB_dimension(), ARB_lbnd_val(), ARB_lbnd_var(), ARB_stride_val(), ARB_stride_var(), ARB_ubnd_val(), ARB_ubnd_var(), cwh_addr_load_ST(), cwh_bound_int_typeid, LOW, St_Table, STRIDE, TY_arb(), UPPER, wn, and WN_Intconst().
Referenced by cwh_addr_adjust_array(), cwh_addr_temp_section(), cwh_types_size_WN(), fei_descriptor(), and fei_redistribute().
TY_IDX cwh_types_ch_parm_TY | ( | WN * | ln | ) |
Definition at line 1714 of file cwh_types.cxx.
References cwh_types_mk_character_TY(), Make_Pointer_Type(), NULL, and TRUE.
Referenced by cwh_intrin_wrap_char_parm().
ST* cwh_types_character_extra | ( | ST * | dummy | ) |
Definition at line 1804 of file cwh_types.cxx.
References Be_Type_Tbl, cwh_addr_char_len_typeid, cwh_types_formal_util(), cwh_types_is_character(), NULL, Set_ST_is_temp_var(), Set_ST_is_value_parm(), and ST_type().
Referenced by cwh_auxst_add_dummy().
bool cwh_types_contains_dope | ( | TY_IDX | ty | ) |
Definition at line 2359 of file cwh_types.cxx.
References cwh_types_contains_dope(), cwh_types_is_dope(), FLD_last_field(), FLD_type(), KIND_STRUCT, Make_fld_iter(), TY_fld(), and TY_kind().
Referenced by cwh_types_contains_dope().
void cwh_types_copyin_pragma | ( | ST * | st | ) |
Definition at line 3552 of file cwh_types.cxx.
References CLASS_VAR, cwh_addr_load_ST(), cwh_block_append_given_id(), enable_mp_processing, FALSE, NULL, Preamble_Block, process_cri_mp_pragmas, Set_ST_auxst_xpragma_copyin, ST_auxst_xpragma_copyin, ST_sym_class(), TRUE, WN_CreateXpragma(), WN_kid0(), and WN_PRAGMA_COPYIN_BOUND.
Referenced by cwh_addr_store_ST(), fei_array_dimen(), and fei_co_array_dimen().
static TY_IDX cwh_types_dim_struct_TY | ( | void | ) | [static] |
Definition at line 1948 of file cwh_types.cxx.
References Be_Type_Tbl, bound_name, BOUND_NM, cwh_bound_int_typeid, cwh_types_fld_util(), cwh_types_mk_struct(), DIM_SZ, DOPE_bound_sz, DOPE_bound_ty, Pointer_Size, Set_FLD_last_field(), and TRUE.
Referenced by cwh_types_dim_TY().
static TY_IDX cwh_types_dim_TY | ( | INT32 | num_dims | ) | [static] |
Definition at line 1987 of file cwh_types.cxx.
References cwh_types_array_util(), cwh_types_dim_struct_TY(), cwh_types_unique_TY(), DIM_SZ, MAX_ARY_DIMS, Pointer_Size, Set_ARB_stride_val(), Set_ARB_ubnd_val(), TRUE, and TY_arb().
Referenced by cwh_types_dope_TY().
Definition at line 2311 of file cwh_types.cxx.
References FLD_type(), KIND_POINTER, TY_fld(), TY_kind(), TY_pointed(), and Ty_Table.
Referenced by fei_as_ref(), and fei_nseq_subscr().
Definition at line 2329 of file cwh_types.cxx.
References DOPE_NM, dope_offset, FLD_last_field(), FLD_next(), FLD_ofst(), KIND_POINTER, TY_fld(), TY_kind(), TY_pointed(), and Ty_Table.
INT32 cwh_types_dope_rank | ( | TY_IDX | ty_idx | ) |
Definition at line 2277 of file cwh_types.cxx.
References ARB_ubnd_val(), DOPE_NM, dope_offset, FLD_last_field(), FLD_next(), FLD_ofst(), FLD_type(), FLD_HANDLE::Is_Null(), TY_arb(), TY_fld(), and Ty_Table.
Referenced by cwh_inline_allocate(), and fei_as_ref().
Definition at line 2032 of file cwh_types.cxx.
References Be_Type_Tbl, cwh_types_array_util(), cwh_types_dim_TY(), cwh_types_fld_util(), cwh_types_mk_dope_invariant_TY(), cwh_types_mk_pointer_TY(), cwh_types_mk_unique_pointer_TY(), cwh_types_shared_dope(), cwh_types_unique_TY(), dope_btype, dope_name, dope_offset, DOPE_sz, FALSE, KIND_STRUCT, MAX_ARY_DIMS, Pointer_Size, Set_FLD_last_field(), Set_FLD_type(), TRUE, TY_fld(), TY_kind(), and Ty_Table.
Referenced by cwh_dope_from_expression(), and fei_dope_vector().
static void cwh_types_fill_type | ( | INT32 | flag_bits, |
TYPE * | t, | ||
TY_IDX | ty | ||
) | [static] |
Definition at line 3043 of file cwh_types.cxx.
References type_descriptor::aux_info, type_descriptor::bitfield, cast_to_uint, type_descriptor::const_flag, FEI_DESCRIPTOR_AUTO_F, FEI_DESCRIPTOR_BITFLD_C, FEI_DESCRIPTOR_CONST_C, FEI_DESCRIPTOR_LONG_C, FEI_DESCRIPTOR_RESTR_C, FEI_DESCRIPTOR_SHORT_C, FEI_DESCRIPTOR_SHRD_PTEE, FEI_DESCRIPTOR_SIGN_C, FEI_DESCRIPTOR_VOLAT_C, type_descriptor::long_flag, type_descriptor::restricted, type_descriptor::short_flag, type_descriptor::signed_flag, t_TY, test_flag, and type_descriptor::volatile_flag.
Referenced by fei_descriptor(), fei_dope_vector(), and fei_get_pdg_type().
static TY_IDX cwh_types_find_f90_pointer_ty | ( | TY_IDX | ty | ) | [static] |
Definition at line 3383 of file cwh_types.cxx.
References num_type_pairs.
Referenced by cwh_types_mk_f90_pointer_ty().
FLD_HANDLE cwh_types_fld_dummy | ( | OFFSET_64 | off, |
TY_IDX | ty | ||
) |
Definition at line 2419 of file cwh_types.cxx.
References cwh_types_fld_util(), and FALSE.
Referenced by fei_arg_addr(), and fei_non_conform_store().
static FLD_HANDLE cwh_types_fld_util | ( | char * | name_string, |
TY_IDX | fld_ty, | ||
OFFSET_64 | offset, | ||
BOOL | global | ||
) | [static] |
Definition at line 2392 of file cwh_types.cxx.
References FLD_Init(), New_FLD(), Save_Str(), Set_FLD_bofst(), and Set_FLD_bsize().
Referenced by cwh_types_dim_struct_TY(), cwh_types_dope_TY(), cwh_types_fld_dummy(), cwh_types_mk_basic_TY(), cwh_types_mk_dope_invariant_TY(), cwh_types_mk_element(), cwh_types_mk_namelist_item_TY(), cwh_types_mk_namelist_TY(), and cwh_types_mk_result_temp_TY().
TY_IDX cwh_types_form_misaligned_TY | ( | TY_IDX | ty_idx, |
mUINT16 | alignment | ||
) |
Definition at line 1174 of file cwh_types.cxx.
References byte_to_bit, Copy_TY(), cwh_types_form_misaligned_TY(), cwh_types_is_dope(), cwh_types_mk_logical_TY(), cwh_types_mk_misaligned_TY(), FLD_bofst(), FLD_bsize(), FLD_flags(), FLD_Init(), FLD_last_field(), FLD_name(), FLD_ofst(), FLD_type(), Is_True, KIND_ARRAY, KIND_POINTER, KIND_SCALAR, KIND_STRUCT, Make_fld_iter(), New_FLD(), Save_Str2(), Set_FLD_bofst(), Set_FLD_bsize(), Set_FLD_flags(), Set_TY_align(), Set_TY_etype(), Set_TY_fld(), Set_TY_name_idx(), TY_align(), TY_etype(), TY_fld(), TY_is_logical(), TY_kind(), TY_name(), TY_size(), and Ty_Table.
Referenced by cwh_types_form_misaligned_TY().
static ST* cwh_types_formal_util | ( | TY_IDX | ty_idx | ) | [static] |
Definition at line 1834 of file cwh_types.cxx.
References CLASS_VAR, CURRENT_SYMTAB, cwh_auxst_clear(), cwh_types_mk_anon_name(), EXPORT_LOCAL, New_ST(), Save_Str(), SCLASS_FORMAL, and ST_Init().
Referenced by cwh_types_character_extra().
void cwh_types_get_dope_info | ( | INT32 | crayfield, |
INT32 * | offset, | ||
INT32 * | rshift, | ||
INT64 * | mask, | ||
TYPE_ID * | ty | ||
) |
Definition at line 2686 of file cwh_types.cxx.
References dope_bofst, dope_bsize, dope_btype, dope_offset, MTYPE_size_best, and size.
Referenced by fei_get_dv_hdr_fld(), and fei_set_dv_hdr_fld().
static BOOL cwh_types_in_dtype | ( | void | ) | [static] |
Definition at line 3169 of file cwh_types.cxx.
References dtype_top, FALSE, and TRUE.
Referenced by fei_member(), and fei_next_type_idx().
void cwh_types_init_target | ( | void | ) |
Definition at line 3340 of file cwh_types.cxx.
References cwh_types_mk_logical_TY(), DOPE_bound_sz, dope_btype, dope_btype_32, dope_btype_64, DOPE_dim_offset, dope_offset, dope_offset_32, dope_offset_64, DOPE_sz, logical4_ty, NL_Table_Index, and Pointer_Size.
Referenced by cwh_addr_init_target().
BOOL cwh_types_is_character | ( | TY_IDX | ty_idx | ) |
Definition at line 1733 of file cwh_types.cxx.
References cwh_types_array_TY(), cwh_types_scalar_TY(), TY_is_character(), and Ty_Table.
Referenced by cwh_auxst_find_dummy_len(), cwh_dst_stride_kind(), cwh_stmt_call_helper(), cwh_types_character_extra(), and fei_return().
BOOL cwh_types_is_character_function | ( | TY_IDX | ty_idx | ) |
Definition at line 1775 of file cwh_types.cxx.
References cwh_types_array_TY(), cwh_types_scalar_TY(), FALSE, KIND_FUNCTION, TY_is_character(), TY_kind(), Ty_Table, TY_tylist(), and Tylist_Table.
BOOL cwh_types_is_dope | ( | TY_IDX | ty | ) |
Definition at line 2255 of file cwh_types.cxx.
References dope_str, DOPENM_LEN, FALSE, KIND_POINTER, TRUE, TY_kind(), TY_name(), and TY_pointed().
Referenced by cwh_types_contains_dope(), and cwh_types_form_misaligned_TY().
BOOL cwh_types_is_logical | ( | TY_IDX | ty_idx | ) |
Definition at line 1754 of file cwh_types.cxx.
References cwh_types_array_TY(), cwh_types_scalar_TY(), TY_is_logical(), and Ty_Table.
static ST* cwh_types_make_bounds_ST | ( | void | ) | [static] |
Definition at line 3531 of file cwh_types.cxx.
References Be_Type_Tbl, cwh_bound_int_typeid, and cwh_stab_temp_ST().
Referenced by cwh_types_array_temp_TY(), and cwh_types_mk_character_TY().
TY_IDX cwh_types_make_pointer_type | ( | TY_IDX | ty, |
BOOL | f90_pointer | ||
) |
Definition at line 3512 of file cwh_types.cxx.
References Make_F90_Pointer_Type(), and Make_Pointer_Type().
Referenced by cwh_addr_address_ST(), cwh_addr_iload(), cwh_addr_istore(), cwh_addr_lda(), cwh_addr_mload(), cwh_addr_mstore(), cwh_addr_pstore(), cwh_do_tranformational(), fei_arg_addr(), and fei_dv_deref().
char* cwh_types_mk_anon_name | ( | char * | nm | ) |
Definition at line 3073 of file cwh_types.cxx.
References Is_True, len, NULL, and strcpy.
Referenced by cwh_stab_address_temp_ST(), cwh_types_array_util(), cwh_types_formal_util(), cwh_types_mk_procedure_TY(), cwh_types_mk_struct(), and cwh_types_mk_unique_pointer_TY().
static TY_IDX cwh_types_mk_array_TY | ( | ARB_HANDLE | bounds, |
INT16 | n, | ||
TY_IDX | base_idx, | ||
INT64 | size | ||
) | [static] |
Definition at line 1328 of file cwh_types.cxx.
References ANULL, ARB_const_stride(), ARB_swap(), Clear_ARB_first_dimen(), Clear_ARB_last_dimen(), co_top_decl_bounds, cwh_types_array_util(), FALSE, Set_ARB_co_dimension(), Set_ARB_dimension(), Set_ARB_first_dimen(), Set_ARB_last_dimen(), Set_TY_arb(), Set_TY_size(), TRUE, and TY_align().
Referenced by cwh_types_array_temp_TY(), and fei_descriptor().
static TY_IDX cwh_types_mk_basic_TY | ( | BASIC_TYPE | basic_type, |
INTPTR | size, | ||
mUINT16 | alignment | ||
) | [static] |
Definition at line 991 of file cwh_types.cxx.
References align_index, basic_index, Be_Type_Tbl, bit_to_byte, bit_to_byte_WN, C_omplex, cast_to_ST, cast_to_STB, cast_to_TY, cast_to_WN, Char_Fortran, CRI_Pointer, CRI_Pointer_Char, cwh_types_array_util(), cwh_types_fld_util(), cwh_types_mk_character_TY(), cwh_types_mk_logical_TY(), cwh_types_mk_misaligned_TY(), cwh_types_mk_struct(), cwh_types_unique_TY(), FALSE, al::form, is_ST, Is_True, is_WN, al::item, L_ogical, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_U8, Mtypes, NULL, OPR_INTCONST, Pointer_Mtype, Pointer_Size, S_tructure, Set_ARB_stride_val(), Set_ARB_ubnd_val(), Set_FLD_last_field(), T_ypeless, TRUE, TY_arb(), wn, and WNOPR.
Referenced by fei_descriptor().
TY_IDX cwh_types_mk_character_TY | ( | WN * | sz_wn, |
ST * | sz_st, | ||
BOOL | sz_is_wn | ||
) |
Definition at line 1456 of file cwh_types.cxx.
References BUMP_TY_COUNTER, c_TY_MISC, Clear_ARB_const_ubnd(), cwh_addr_store_ST(), cwh_types_array_util(), cwh_types_make_bounds_ST(), cwh_types_new_TY(), cwh_types_unique_TY(), KIND_SCALAR, MTYPE_U1, OPR_INTCONST, Save_Str(), Set_ARB_lbnd_val(), Set_ARB_stride_val(), Set_ARB_ubnd_val(), Set_ARB_ubnd_var(), Set_TY_is_character(), Set_TY_size(), ST_st_idx(), TRUE, TY_arb(), TY_Init(), Ty_Table, WN_const_val(), and WNOPR.
Referenced by cwh_types_ch_parm_TY(), cwh_types_mk_basic_TY(), cwh_types_mk_namelist_item_TY(), cwh_types_mk_namelist_TY(), and fei_concat().
TY_IDX cwh_types_mk_common_TY | ( | INT64 | size, |
mUINT16 | al | ||
) |
Definition at line 2788 of file cwh_types.cxx.
References bit_to_byte, and cwh_types_mk_struct().
Referenced by cwh_stab_common_ST().
static TY_IDX cwh_types_mk_dope_invariant_TY | ( | void | ) | [static] |
Definition at line 2118 of file cwh_types.cxx.
References Be_Type_Tbl, cwh_types_fld_util(), cwh_types_mk_struct(), dope_bofst, dope_bsize, dope_btype, dope_invariant_str, dope_name, DOPE_NM, dope_offset, DOPE_sz, Pointer_Size, Set_FLD_bofst(), Set_FLD_bsize(), Set_FLD_is_bit_field(), Set_FLD_last_field(), and TRUE.
Referenced by cwh_types_dope_TY().
void cwh_types_mk_element | ( | ST * | c, |
ST * | st | ||
) |
Definition at line 2968 of file cwh_types.cxx.
References Clear_FLD_last_field(), cwh_types_fld_util(), FLD_HANDLE::Idx(), IS_COMMON, Is_True, SCLASS_COMMON, SCLASS_MODULE, Set_FLD_equivalence(), Set_FLD_last_field(), Set_FLD_st(), Set_ST_type(), Set_TY_align(), Set_TY_fld(), ST_is_equivalenced(), ST_level(), ST_name(), ST_ofst(), ST_sclass(), ST_st_idx(), ST_type(), TRUE, TY_align(), TY_fld(), and Ty_Table.
Referenced by cwh_stab_mk_flds().
TY_IDX cwh_types_mk_equiv_TY | ( | INT64 | size | ) |
Definition at line 2829 of file cwh_types.cxx.
References bit_to_byte, cwh_types_mk_struct(), and MAX_ALIGN.
Referenced by cwh_stab_altentry_temp(), and fei_seg().
Definition at line 3395 of file cwh_types.cxx.
References Be_Type_Tbl, buf, BUMP_TY_COUNTER, c_TY_f90_POINTER, cwh_types_find_f90_pointer_ty(), cwh_types_mk_f90_pointer_ty(), cwh_types_new_TY(), cwh_types_unique_TY(), type_pair_t::f90_pointed, FALSE, KIND_POINTER, max_type_pairs, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_is_complex, MTYPE_is_m, MTYPE_U1, MTYPE_U4, MTYPE_U8, num_type_pairs, pair_typenum, Pointer_Mtype, Pointer_Size, Save_Str(), Set_TY_is_f90_pointer(), Set_TY_pointed(), TRUE, type_pair_t::ty, TY_Init(), TY_mtype(), Ty_Table, and TYPE_ALLOC_CHUNK_SIZE.
Referenced by cwh_addr_iload(), cwh_addr_istore(), cwh_addr_mload(), cwh_addr_mstore(), cwh_addr_pstore(), cwh_types_mk_f90_pointer_ty(), and fei_dv_deref().
TY_IDX cwh_types_mk_logical_TY | ( | INT32 | size, |
mUINT16 | alignment | ||
) |
Definition at line 1401 of file cwh_types.cxx.
References align_index, alignment_to_align, alstr, basic_index, basic_logical_ty, bit_to_byte, BUMP_TY_COUNTER, c_TY_MISC, cwh_types_new_TY(), cwh_types_unique_TY(), Is_True, KIND_SCALAR, L_ogical, logstr, Mtypes, NUM_LOG_KINDS, Save_Str2(), Set_TY_is_logical(), TRUE, TY_Init(), and Ty_Table.
Referenced by cwh_types_form_misaligned_TY(), cwh_types_init_target(), and cwh_types_mk_basic_TY().
static TY_IDX cwh_types_mk_misaligned_TY | ( | TY_IDX | ty_idx, |
mUINT16 | alignment | ||
) | [static] |
Definition at line 1117 of file cwh_types.cxx.
References alignment_to_align, alstr, BUMP_TY_COUNTER, c_TY_MISC, cwh_types_new_TY(), cwh_types_unique_TY(), KIND_SCALAR, Save_Str2(), Set_TY_flags(), TRUE, TY_align(), TY_flags(), TY_Init(), TY_kind(), TY_mtype(), TY_name(), TY_size(), Ty_Table, and unaligned_type.
Referenced by cwh_types_form_misaligned_TY(), and cwh_types_mk_basic_TY().
TY_IDX cwh_types_mk_module_TY | ( | INT64 | size, |
mUINT16 | al | ||
) |
Definition at line 2804 of file cwh_types.cxx.
References bit_to_byte, and cwh_types_mk_struct().
Referenced by cwh_stab_module_ST().
static TY_IDX cwh_types_mk_namelist_item_TY | ( | void | ) | [static] |
Definition at line 2914 of file cwh_types.cxx.
References ALIGN_Nlentry, Be_Type_Tbl, cwh_types_fld_util(), cwh_types_mk_character_TY(), cwh_types_mk_struct(), Make_Pointer_Type(), MTYPE_I4, MTYPE_V, NL_Name_Length, NL_Table_Index, NL_Tables, NULL, OFFSET_Nlentry_dimp, OFFSET_Nlentry_type, OFFSET_Nlentry_varaddr, OFFSET_Nlentry_varname, Set_FLD_last_field(), SIZE_Nlentry, TRUE, wn, WN_DELETE_Tree(), and WN_Intconst().
Referenced by cwh_types_mk_namelist_TY().
TY_IDX cwh_types_mk_namelist_TY | ( | INT32 | nitems | ) |
Definition at line 2853 of file cwh_types.cxx.
References ALIGN_Namelist, ALIGN_Nlentry, cwh_types_array_util(), cwh_types_fld_util(), cwh_types_mk_character_TY(), cwh_types_mk_namelist_item_TY(), cwh_types_mk_struct(), cwh_types_unique_TY(), MTYPE_I4, NL_Name_Length, NL_Table_Index, NL_Tables, NULL, OFFSET_Namelist_nlname, OFFSET_Namelist_nlvnames, Set_FLD_last_field(), Set_TY_AR_stride_val(), Set_TY_AR_ubnd_val(), TRUE, TY_size(), Ty_Table, wn, and WN_Intconst().
Referenced by fei_namelist().
TY_IDX cwh_types_mk_pointer_TY | ( | TY_IDX | ty_idx, |
BOOL | host | ||
) |
Definition at line 2736 of file cwh_types.cxx.
References Make_Pointer_Type().
Referenced by cwh_stab_formal_ref(), cwh_types_dope_TY(), fei_descriptor(), and fei_object().
Definition at line 1262 of file cwh_types.cxx.
References BUMP_TY_COUNTER, c_TY_PROC, cwh_types_mk_anon_name(), cwh_types_new_TY(), KIND_FUNCTION, MTYPE_is_void, MTYPE_UNKNOWN, New_TYLIST(), Save_Str(), Set_TY_tylist(), TRUE, TY_Init(), TY_mtype(), Ty_Table, and Tylist_Table.
Referenced by cwh_stab_mk_fn_0args(), fei_descriptor(), fei_object(), fei_proc_def(), fei_proc_imp(), and fei_proc_interface().
TY_IDX cwh_types_mk_result_temp_TY | ( | void | ) |
Definition at line 3019 of file cwh_types.cxx.
References Be_Type_Tbl, cwh_types_fld_util(), cwh_types_mk_struct(), MTYPE_I8, RESULT_ALIGN, RESULT_SIZE, Set_FLD_last_field(), and TRUE.
static TY_IDX cwh_types_mk_struct | ( | INT64 | size, |
INT32 | align, | ||
FLD_HANDLE | list, | ||
char * | name | ||
) | [static] |
Definition at line 1860 of file cwh_types.cxx.
References BUMP_TY_COUNTER, c_TY_STRUCT, cwh_types_mk_anon_name(), cwh_types_new_TY(), KIND_STRUCT, MTYPE_M, Save_Str(), Set_TY_fld(), TRUE, TY_Init(), and Ty_Table.
Referenced by cwh_types_dim_struct_TY(), cwh_types_mk_basic_TY(), cwh_types_mk_common_TY(), cwh_types_mk_dope_invariant_TY(), cwh_types_mk_equiv_TY(), cwh_types_mk_module_TY(), cwh_types_mk_namelist_item_TY(), cwh_types_mk_namelist_TY(), cwh_types_mk_result_temp_TY(), and cwh_types_shared_dope().
static TY_IDX cwh_types_mk_unique_pointer_TY | ( | TY_IDX | ty, |
BOOL | host | ||
) | [static] |
Definition at line 2755 of file cwh_types.cxx.
References BUMP_TY_COUNTER, c_TY_UNIQ_POINTER, cwh_types_mk_anon_name(), cwh_types_new_TY(), cwh_types_unique_TY(), KIND_POINTER, Pointer_Mtype, Pointer_Size, Save_Str(), Set_TY_pointed(), TRUE, TY_Init(), and Ty_Table.
Referenced by cwh_types_dope_TY().
static TY_IDX cwh_types_new_TY | ( | BOOL | global, |
INT32 | align | ||
) | [static] |
Definition at line 3465 of file cwh_types.cxx.
References idx, Last_TY_Created, New_TY(), and Set_TY_align().
Referenced by cwh_types_array_util(), cwh_types_mk_character_TY(), cwh_types_mk_f90_pointer_ty(), cwh_types_mk_logical_TY(), cwh_types_mk_misaligned_TY(), cwh_types_mk_procedure_TY(), cwh_types_mk_struct(), cwh_types_mk_unique_pointer_TY(), and fei_next_type_idx().
static dtype_t cwh_types_pop_dtype | ( | void | ) | [static] |
Definition at line 3142 of file cwh_types.cxx.
References d, dtype_t::dty, dtype_t::dty_last, dtype_stk, dtype_top, dtype_t::hosted, Is_True, dtype_t::ncompos, and dtype_t::seq.
Referenced by fei_member().
static void cwh_types_push_dtype | ( | dtype_t | d | ) | [static] |
Definition at line 3114 of file cwh_types.cxx.
References dtype_t::dty, dtype_t::dty_last, dtype_stk, dtype_stk_size, dtype_top, dtype_t::hosted, dtype_t::ncompos, return(), dtype_t::seq, and STK_SIZE_CHANGE.
Referenced by fei_get_pdg_type(), fei_member(), and fei_user_type().
TY_IDX cwh_types_scalar_TY | ( | TY_IDX | ty_idx | ) |
Definition at line 1533 of file cwh_types.cxx.
References cwh_types_scalar_TY(), DUMP_TY, Is_True, KIND_ARRAY, KIND_FUNCTION, KIND_POINTER, KIND_SCALAR, KIND_STRUCT, KIND_VOID, TY_etype(), TY_kind(), and Ty_Table.
Referenced by cwh_addr_load_WN(), cwh_addr_pstore_WN(), cwh_addr_store_WN(), cwh_expr_compare_bitwise(), cwh_io_ioitem(), cwh_io_no_desc(), cwh_io_scalar_type(), cwh_types_is_character(), cwh_types_is_character_function(), cwh_types_is_logical(), cwh_types_scalar_TY(), cwh_types_shared_dope(), fei_abs(), fei_arg_addr(), fei_bneg(), fei_close(), fei_control_list(), fei_doloop(), fei_inquire(), and fei_open().
static TY_IDX cwh_types_shared_dope | ( | FLD_HANDLE | fld, |
int | ndims, | ||
BOOL | is_ptr | ||
) | [static] |
Definition at line 2172 of file cwh_types.cxx.
References BUMP_TY_COUNTER, Clear_TY_is_f90_pointer(), cwh_types_mk_struct(), cwh_types_scalar_TY(), DIM_SZ, dope_str, DOPE_sz, FLD_type(), IS_SHARED_DOPE_BASE, LOGICAL_OFFSET, MAX_ARY_DIMS, NUM_DOPE_TYPES, Pointer_Size, Set_TY_is_f90_pointer(), TY_is_logical(), TY_mtype(), TY_pointed(), and Ty_Table.
Referenced by cwh_types_dope_TY().
WN* cwh_types_size_WN | ( | TY_IDX | ty, |
WN * | e_sz | ||
) |
Definition at line 2591 of file cwh_types.cxx.
References ARB_dimension(), cwh_addr_extent(), cwh_expr_bincalc(), cwh_types_bound_WN(), Is_True, KIND_ARRAY, LOW, MTYPE_I4, OPR_MPY, TY_arb(), TY_kind(), UPPER, wn, and WN_Intconst().
TY_IDX cwh_types_unique_TY | ( | TY_IDX | ty_idx | ) |
Definition at line 3495 of file cwh_types.cxx.
References SEGMENTED_ARRAY< T, block_size >::Delete_last(), Last_TY_Created, TY_is_unique(), and Ty_tab.
Referenced by cwh_types_dim_TY(), cwh_types_dope_TY(), cwh_types_mk_basic_TY(), cwh_types_mk_character_TY(), cwh_types_mk_f90_pointer_ty(), cwh_types_mk_logical_TY(), cwh_types_mk_misaligned_TY(), cwh_types_mk_namelist_TY(), cwh_types_mk_unique_pointer_TY(), and fei_descriptor().
TY_IDX cwh_types_WN_TY | ( | WN * | wn, |
BOOL | addr | ||
) |
Definition at line 1620 of file cwh_types.cxx.
References Be_Type_Tbl, cwh_types_WN_TY(), Is_True, KIND_POINTER, Make_Pointer_Type(), MTYPE_is_pointer, MTYPE_V, OPC_MINTRINSIC_OP, OPCODE_is_expression(), OPR_ADD, OPR_ARRAY, OPR_ARRAYEXP, OPR_ARRSECTION, OPR_CAND, OPR_CIOR, OPR_EQ, OPR_ILOAD, OPR_INTCONST, OPR_INTRINSIC_OP, OPR_LAND, OPR_LDA, OPR_LDID, OPR_LIOR, OPR_LNOT, OPR_MLOAD, OPR_NE, OPR_PARM, OPR_SUB, TY_kind(), TY_pointed(), Ty_Table, WN_kid(), WN_kid0(), WN_opcode(), WN_rtype(), WN_ty(), and WNOPR.
Referenced by cwh_addr_load_WN(), cwh_addr_pstore_WN(), cwh_addr_store_WN(), cwh_addr_substr_util(), cwh_dope_initialize(), cwh_expr_compare_bitwise(), cwh_intrin_wrap_ref_parm(), cwh_intrin_wrap_value_parm(), cwh_io_ioitem(), cwh_io_scalar_type(), cwh_stmt_call_helper(), cwh_types_WN_TY(), fei_abs(), fei_allocate(), fei_arg_addr(), fei_bneg(), fei_control_list(), fei_doloop(), fei_fcd(), fei_non_conform_store(), and fei_set_dv_hdr_fld().
INTPTR fei_array_dimen | ( | INT32 | flag_bits, |
INT64 | low_bound, | ||
INT64 | extent, | ||
INT32 | axis, | ||
TYPE | span_type, | ||
INT64 | bitsize, | ||
INT | distribution, | ||
INT64 | upper_bound | ||
) |
Definition at line 269 of file cwh_types.cxx.
References ARB_const_lbnd(), ARB_const_stride(), ARB_const_ubnd(), ARB_Init(), ARB_stride_val(), bit_to_byte, Block_Dist, cast_to_int, cast_to_ST, cast_to_STB, cast_to_TY, Clear_ARB_const_lbnd(), Clear_ARB_const_ubnd(), cwh_expr_operand(), cwh_types_copyin_pragma(), Cyclic_Dist, decl_bounds, decl_cyclic_val, decl_distribute_pragmas, decl_distributed_pragma_id, decl_distribution, decl_onto, DISTRIBUTE_BLOCK, DISTRIBUTE_CYCLIC_CONST, DISTRIBUTE_CYCLIC_EXPR, distribute_onto, DISTRIBUTE_STAR, FALSE, FEI_ARRAY_DIMEN_DIST_EXPR, FEI_ARRAY_DIMEN_DIST_RESHAPE, FEI_ARRAY_DIMEN_EMPTY_LB, FEI_ARRAY_DIMEN_EMPTY_UB, FEI_ARRAY_DIMEN_FLOW_DEPENDENT, FEI_ARRAY_DIMEN_HOSTED_TYPE, FEI_ARRAY_DIMEN_ONTO_EXPR, FEI_ARRAY_DIMEN_VARY_EXT, FEI_ARRAY_DIMEN_VARY_LB, FEI_ARRAY_DIMEN_VARY_UB, al::form, in_hosted_dtype, is_ST, Is_True, al::item, last_bitsize, New_ARB(), No_Dist, NULL, OPR_INTCONST, Set_ARB_const_lbnd(), Set_ARB_const_stride(), Set_ARB_const_ubnd(), Set_ARB_empty_lbnd(), Set_ARB_empty_ubnd(), Set_ARB_lbnd_val(), Set_ARB_lbnd_var(), Set_ARB_stride_val(), Set_ARB_ubnd_val(), Set_ARB_ubnd_var(), ST_st_idx(), Star_Dist, t_TY, test_flag, top_of_decl_bounds, TRUE, ty_dim1, TY_size(), Ty_Table, wn, WN_const_val(), WN_operator(), WN_PRAGMA_DISTRIBUTE, WN_PRAGMA_DISTRIBUTE_RESHAPE, and WN_PRAGMA_UNDEFINED.
Referenced by get_type_desc().
INTPTR fei_co_array_dimen | ( | INT32 | flag_bits, |
INT64 | low_bound, | ||
INT64 | extent, | ||
INT32 | arraydims, | ||
INT32 | axis, | ||
TYPE | span_type, | ||
INT64 | bitsize, | ||
INT | distribution, | ||
INT64 | upper_bound | ||
) |
Definition at line 453 of file cwh_types.cxx.
References ANULL, ARB_const_lbnd(), ARB_const_stride(), ARB_const_ubnd(), ARB_Init(), ARB_stride_val(), bit_to_byte, Block_Dist, cast_to_int, cast_to_ST, cast_to_STB, cast_to_TY, Clear_ARB_const_lbnd(), Clear_ARB_const_ubnd(), co_top_decl_bounds, cwh_expr_operand(), cwh_types_copyin_pragma(), Cyclic_Dist, decl_bounds, decl_cyclic_val, decl_distribute_pragmas, decl_distributed_pragma_id, decl_distribution, decl_onto, DISTRIBUTE_BLOCK, DISTRIBUTE_CYCLIC_CONST, DISTRIBUTE_CYCLIC_EXPR, distribute_onto, DISTRIBUTE_STAR, FALSE, FEI_ARRAY_DIMEN_DIST_EXPR, FEI_ARRAY_DIMEN_DIST_RESHAPE, FEI_ARRAY_DIMEN_EMPTY_LB, FEI_ARRAY_DIMEN_EMPTY_UB, FEI_ARRAY_DIMEN_FLOW_DEPENDENT, FEI_ARRAY_DIMEN_HOSTED_TYPE, FEI_ARRAY_DIMEN_ONTO_EXPR, FEI_ARRAY_DIMEN_VARY_EXT, FEI_ARRAY_DIMEN_VARY_LB, FEI_ARRAY_DIMEN_VARY_UB, al::form, in_hosted_dtype, is_ST, Is_True, al::item, last_bitsize, New_ARB(), No_Dist, NULL, OPR_INTCONST, Set_ARB_const_lbnd(), Set_ARB_const_stride(), Set_ARB_const_ubnd(), Set_ARB_empty_lbnd(), Set_ARB_empty_ubnd(), Set_ARB_lbnd_val(), Set_ARB_lbnd_var(), Set_ARB_stride_val(), Set_ARB_ubnd_val(), Set_ARB_ubnd_var(), ST_st_idx(), Star_Dist, t_TY, test_flag, top_of_decl_bounds, TRUE, ty_dim1, TY_size(), Ty_Table, wn, WN_const_val(), WN_operator(), WN_PRAGMA_DISTRIBUTE, WN_PRAGMA_DISTRIBUTE_RESHAPE, and WN_PRAGMA_UNDEFINED.
Referenced by get_type_desc().
TYPE fei_descriptor | ( | INT32 | flag_matrix, |
INT32 | table_type, | ||
INTPTR | size, | ||
INT32 | basic_type, | ||
INT32 | aux_info, | ||
INT32 | alignment | ||
) |
Definition at line 119 of file cwh_types.cxx.
References ANULL, Array, Basic, type_descriptor::basic_type, Be_Type_Tbl, bit_to_byte, co_top_decl_bounds, cwh_addr_extent(), cwh_types_bound_WN(), cwh_types_fill_type(), cwh_types_mk_array_TY(), cwh_types_mk_basic_TY(), cwh_types_mk_pointer_TY(), cwh_types_mk_procedure_TY(), cwh_types_unique_TY(), decl_bounds, decl_cyclic_val, decl_distribute_pragmas, decl_distributed_pragma_id, decl_distribution, decl_onto, DevWarn(), DISTRIBUTE_CYCLIC_CONST, DISTRIBUTE_CYCLIC_EXPR, distribute_onto, DISTRIBUTE_STAR, FALSE, FEI_ASSUMD_SHAPE_ARRAY, FEI_ASSUMED_SIZE_ARRAY, FEI_DEFERRED_SHAPE_ARRAY, FEI_DESCRIPTOR_HOSTED_TYPE, Func_tion, in_hosted_dtype, Is_True, last_bitsize, LOW, MTYPE_I4, MTYPE_V, NULL, Set_TY_is_co_array(), Set_TY_is_f90_assumed_shape(), Set_TY_is_f90_assumed_size(), Set_TY_is_f90_deferred_shape(), type_descriptor::table_type, test_flag, top_of_decl_bounds, TRUE, ty_dim1, UPPER, wn, WN_CreateBlock(), WN_CreatePragma(), WN_CreateXpragma(), WN_INSERT_BlockLast, WN_Intconst(), WN_kid0(), WN_pragma_distr_type(), WN_pragma_index(), WN_PRAGMA_ONTO, WN_pragma_preg(), and WN_PRAGMA_UNDEFINED.
Referenced by cvrt_to_pdg(), cwh_stab_altentry_temp(), fei_where(), get_basic_type(), get_type_desc(), send_derived_type(), and send_non_standard_aligned_type().
TYPE fei_dope_vector | ( | INT32 | num_dims, |
TYPE | base_type, | ||
INT32 | flag | ||
) |
Definition at line 952 of file cwh_types.cxx.
References Basic, type_descriptor::basic_type, cast_to_TY, cwh_types_dope_TY(), cwh_types_fill_type(), FEI_DOPE_VECTOR_HOSTED_TYPE, FEI_DOPE_VECTOR_POINTER, in_hosted_dtype, S_tructure, t_TY, type_descriptor::table_type, and test_flag.
void fei_gen_st_for_type | ( | char * | name_string, |
TYPE | type_idx, | ||
INTPTR | modst_idx | ||
) |
Definition at line 826 of file cwh_types.cxx.
References cast_to_ST, cast_to_STB, cast_to_TY, CLASS_TYPE, CURRENT_SYMTAB, cwh_auxst_add_item(), cwh_stab_seen_derived_type_or_imported_var(), EXPORT_LOCAL, GLOBAL_SYMTAB, al::item, l_TYMDLIST, New_ST(), return(), Save_Str(), SCLASS_UNKNOWN, Scope_tab, Set_ST_base(), SCOPE::st, ST_Init(), and t_TY.
Referenced by send_attr_ntry().
Definition at line 695 of file cwh_types.cxx.
References type_descriptor::basic_type, cast_to_TY, cwh_types_fill_type(), cwh_types_push_dtype(), d, dtype_t::dty, dtype_t::dty_last, FLD_HANDLE::Idx(), dtype_t::ncompos, New_FLD(), Set_TY_fld(), type_descriptor::table_type, and Ty_Table.
Referenced by send_derived_type().
INT32 fei_imported_type | ( | char * | name_string, |
INTPTR | modst_idx | ||
) |
Definition at line 671 of file cwh_types.cxx.
References cast_to_int, cast_to_ST, cast_to_STB, cwh_stab_seen_derived_type_or_imported_var(), al::item, and ST_type().
Referenced by send_derived_type().
void fei_init_global_vars | ( | ) |
Definition at line 242 of file cwh_types.cxx.
References ANULL, co_top_decl_bounds, and top_of_decl_bounds.
Referenced by get_type_desc().
INT32 fei_member | ( | char * | name_string, |
TYPE | member_type, | ||
INT64 | offset, | ||
INT64 | size, | ||
INT32 | alignment, | ||
INT32 | lineno, | ||
INT64 | flag_bits, | ||
INT64 | io_code | ||
) |
Definition at line 872 of file cwh_types.cxx.
References bit_to_byte, cast_to_TY, cwh_types_in_dtype(), cwh_types_pop_dtype(), cwh_types_push_dtype(), d, dtype_t::dty, dtype_t::dty_last, FALSE, FEI_OBJECT_DV_IS_PTR, FLD_Init(), in_hosted_dtype, Is_True, Make_F90_Pointer_Type(), dtype_t::ncompos, p1, Save_Str(), Set_FLD_is_pointer(), Set_FLD_last_field(), Set_TY_is_f90_pointer(), t_TY, test_flag, TY_align(), TY_is_f90_pointer(), and Ty_Table.
Referenced by send_attr_ntry().
INT32 fei_next_type_idx | ( | INT32 | flag, |
INT32 | align | ||
) |
Definition at line 650 of file cwh_types.cxx.
References bit_to_byte, BUMP_TY_COUNTER, c_TY_DTYPE, cast_to_int, cwh_types_in_dtype(), cwh_types_new_TY(), FEI_NEXT_TYPE_IDX_HOSTED_TYPE, in_hosted_dtype, and test_flag.
Referenced by send_derived_type().
void fei_user_type | ( | char * | name_string, |
INT32 | nbr_components, | ||
INT64 | size, | ||
INT32 | sequence_arg, | ||
INT32 | cr_ty_idx, | ||
INT32 | align, | ||
INTPTR | modst_idx, | ||
INT32 | definition | ||
) |
Definition at line 747 of file cwh_types.cxx.
References bit_to_byte, cast_to_ST, cast_to_STB, cast_to_TY, CLASS_TYPE, CURRENT_SYMTAB, cwh_auxst_add_item(), cwh_types_push_dtype(), d, dtype_t::dty, dtype_t::dty_last, EXPORT_LOCAL, GLOBAL_SYMTAB, dtype_t::hosted, FLD_HANDLE::Idx(), in_hosted_dtype, al::item, KIND_STRUCT, l_TYMDLIST, MTYPE_M, dtype_t::ncompos, New_FLD(), New_ST(), return(), Save_Str(), SCLASS_UNKNOWN, Scope_tab, dtype_t::seq, Seq_Char, Seq_Mixed, Seq_None, Seq_Numeric, Set_ST_base(), Set_TY_fld(), Set_TY_is_packed(), Set_TY_is_sequence(), SCOPE::st, ST_Init(), TY_Init(), and Ty_Table.
Referenced by send_derived_type().
INT max_type_pairs = 0 [static] |
Definition at line 3378 of file cwh_types.cxx.
Referenced by cwh_types_mk_f90_pointer_ty().
INT num_type_pairs = 0 [static] |
Definition at line 3377 of file cwh_types.cxx.
Referenced by cwh_types_find_f90_pointer_ty(), and cwh_types_mk_f90_pointer_ty().
INT pair_typenum = 0 [static] |
Definition at line 3379 of file cwh_types.cxx.
Referenced by cwh_types_mk_f90_pointer_ty().
type_pair_t* pairs [static] |
Definition at line 3376 of file cwh_types.cxx.
char* source_file = __FILE__ [static] |
Definition at line 62 of file cwh_types.cxx.