Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
s_data.c File Reference
#include "defines.h"
#include "host.m"
#include "host.h"
#include "target.m"
#include "target.h"
#include "globals.m"
#include "tokens.m"
#include "sytb.m"
#include "debug.m"
#include "s_globals.m"
#include "globals.h"
#include "tokens.h"
#include "sytb.h"
#include "s_globals.h"
#include "s_data.h"
Include dependency graph for s_data.c:

Go to the source code of this file.

Functions

static void adjust_char_value_len (int, int, long64, long64)
static void build_loop_tbl (int, boolean)
static boolean check_target_and_value (int, int)
static void data_imp_do_semantics (int, int, boolean, boolean *)
static void fold_all_subscripts (opnd_type *)
static void gen_section_ref (int, long64, int, int, int, long64 *, long64 *, long64 *)
static boolean good_data_imp_do_expr (int)
static boolean imp_do_metamorphed (int)
static boolean init_whole_array (int, long64 *, int, int, boolean *)
static void interpret_data_imp_do (int)
static void object_semantics (opnd_type *, expr_mode_type, expr_arg_type *, boolean, boolean)
static boolean optimize_whole_array_init (int)
static void process_data_imp_do_target (int, int, long64)
static void section_semantics (int, opnd_type *, int *)
static void set_global_value_variables (opnd_type *, opnd_type *, int)
static void vv_subscript_semantics (int, int, expr_arg_type *)
void data_stmt_semantics (void)
void data_repeat_semantics (int repeat_ir_idx)
void constant_value_semantics (opnd_type *opnd, int uopr_ir_idx)

Variables

static char USMID [] = "\n@(#)5.0_pl/sources/s_data.c 5.7 09/02/99 17:06:53\n"

Function Documentation

static void build_loop_tbl ( int  imp_do_idx,
boolean  compiler_gen_imp_do 
) [static]

Definition at line 2664 of file s_data.c.

References Ansi, arg_info_list, arg_info_list_base, arg_info_list_size, arg_info_list_top, AT_ATTR_LINK, AT_IGNORE_ATTR_LINK, AT_NAME_IDX, AT_NAME_LEN, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_REFERENCED, AT_SEMANTICS_DONE, AT_Tbl_Idx, ATD_IMP_DO_LCV, ATD_LCV_IS_CONST, ATD_STOR_BLK_IDX, ATD_TMP_NEEDS_CIF, ATD_TYPE_IDX, cast_typeless_constant(), cif_flags, CIF_No_Usage_Rec, CIF_Symbol_Modification, CIF_Symbol_Reference, cif_usage_rec(), CN_INT_TO_C, CN_INTEGER_ONE_IDX, CN_INTEGER_ZERO_IDX, CN_Tbl_Idx, COPY_OPND, curr_parent_idx, curr_scp_idx, curr_stmt_sh_idx, loop_tbl_entry::curr_value, Data_Obj, Dv_Deref_Opr, arg_strct::ed, loop_tbl_entry::end_expr_desc_idx, loop_tbl_entry::end_fld, loop_tbl_entry::end_idx, loop_tbl_entry::end_value, enlarge_info_list_table(), Eq_Opr, Error, EXIT, expr_mode, expr_sem(), expr_semantics(), FALSE, find_base_attr(), find_opnd_line_and_column(), fold_relationals(), Func_Entry, Func_Exit, gen_compiler_tmp(), good_data_imp_do_expr(), IL_COL_NUM, IL_FLD, IL_IDX, IL_LINE_NUM, IL_NEXT_LIST_IDX, IL_OPND, IL_PREV_LIST_IDX, Implied_Do_Opr, in_implied_do, loop_tbl_entry::inc_expr_desc_idx, loop_tbl_entry::inc_fld, loop_tbl_entry::inc_idx, loop_tbl_entry::inc_value, init_arg_info, Integer, INTEGER_DEFAULT_TYPE, Internal, IR_COL_NUM, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LIST_CNT_R, IR_OPND_L, IR_OPR, IR_Tbl_Idx, last_lt_idx, loop_tbl_entry::lcv_idx, expr_semantics_args::linear_type, loop_tbl, LOOP_TBL_SIZE, lt_idx, Not_Referenced, NTR_IR_LIST_TBL, NULL, NULL_IDX, loop_tbl_entry::num_targets, object_semantics(), loop_tbl_entry::offspring_idx, OPND_COL_NUM, OPND_FLD, OPND_IDX, OPND_LINE_NUM, loop_tbl_entry::parent_idx, PRINTMSG(), Priv, expr_semantics_args::rank, expr_semantics_args::reference, Regular_Expr, Restricted_Imp_Do_Expr, Restricted_Imp_Do_Target, SCP_SB_STACK_IDX, SH_ERR_FLG, Short_Typeless_Const, loop_tbl_entry::sibling_idx, loop_tbl_entry::start_expr_desc_idx, loop_tbl_entry::start_fld, loop_tbl_entry::start_idx, loop_tbl_entry::start_value, Struct_Opr, Subscript_Opr, Substring_Opr, loop_tbl_entry::target_list, TRACE, TRUE, expr_semantics_args::type, expr_semantics_args::type_idx, Whole_Subscript_Opr, Whole_Substring_Opr, XREF_RECS, and xref_state.

Referenced by data_imp_do_semantics().

Here is the call graph for this function:

void data_stmt_semantics ( void  )

Definition at line 673 of file s_data.c.

References adjust_char_value_len(), After, Ansi, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_TYPE_IDX, BD_LEN_IDX, C_INT_TO_CN, CG_INTEGER_DEFAULT_TYPE, Character, check_target_and_value(), CN_INTEGER_ONE_IDX, CN_INTEGER_ZERO_IDX, CN_Tbl_Idx, compare_cn_and_value(), size_offset_entry::constant, COPY_OPND, curr_stmt_sh_idx, data_imp_do_semantics(), Data_Stmt, Data_Stmt_Target, Eq_Opr, Error, EXIT, FALSE, find_opnd_line_and_column(), size_offset_entry::fld, Func_Entry, Func_Exit, gen_section_ref(), gen_sh(), size_offset_entry::idx, IL_COL_NUM, IL_FLD, IL_IDX, IL_LINE_NUM, IL_NEXT_LIST_IDX, IL_OPND, IL_PREV_LIST_IDX, IL_Tbl_Idx, IL_VECTOR_SUBSCRIPT, Implied_Do_Opr, Init_Opr, init_whole_array(), IR_COL_NUM, IR_COL_NUM_L, IR_FLD_L, IR_FLD_R, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LINE_NUM_L, IR_LIST_CNT_R, IR_OPND_L, IR_OPR, IR_Tbl_Idx, IR_TYPE_IDX, Mult_Opr, NO_Tbl_Idx, ntr_const_tbl(), NTR_IR_LIST_TBL, NTR_IR_TBL, NULL, NULL_IDX, null_opnd, obj_count, obj_il_idx, object_semantics(), OPND_COL_NUM, OPND_FLD, OPND_IDX, OPND_LINE_NUM, expr_semantics_args::pointer, PRINTMSG(), expr_semantics_args::rank, rep_factor, section_semantics(), Section_Subscript_Opr, set_global_value_variables(), SH_ERR_FLG, SH_IR_IDX, size_offset_binary_calc(), stmt_start_col, stmt_start_line, stor_bit_size_of(), Struct_Opr, TRACE, TRUE, TYP_TYPE, size_offset_entry::type_idx, TYPELESS_DEFAULT_TYPE, value_il_idx, value_opnd, vv_subscript_semantics(), and Whole_Subscript_Opr.

Here is the call graph for this function:

static void gen_section_ref ( int  section_sub_ir_idx,
long64  value_count,
int  first_triplet_idx,
int  root_ir_idx,
int  init_ir_idx,
long64 dup_count,
long64 section_start_value,
long64 section_inc_value 
) [static]
static boolean init_whole_array ( int  whole_sub_ir_idx,
long64 dup_count,
int  root_ir_idx,
int  init_ir_idx,
boolean optimized 
) [static]

Definition at line 126 of file s_data.c.

References AT_DEF_COLUMN, AT_DEF_LINE, AT_DEFINED, AT_OBJ_NAME_PTR, AT_REFERENCED, AT_SEMANTICS_DONE, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_CLASS, ATD_CPNT_OFFSET_IDX, ATD_DATA_INIT, ATD_EQUIV, ATD_FLD, ATD_OFFSET_ASSIGNED, ATD_OFFSET_FLD, ATD_OFFSET_IDX, ATD_STOR_BLK_IDX, ATD_TYPE_IDX, ATD_VARIABLE_TMP_IDX, BD_ARRAY_CLASS, BD_ARRAY_SIZE, BD_COLUMN_NUM, BD_LB_FLD, BD_LB_IDX, BD_LEN_FLD, BD_LEN_IDX, BD_LINE_NUM, BD_RANK, BD_RESOLVED, BD_SM_FLD, BD_SM_IDX, BD_UB_FLD, BD_UB_IDX, BD_XT_FLD, BD_XT_IDX, C_INT_TO_CN, CG_INTEGER_DEFAULT_TYPE, Character, CN_INT_TO_C, CN_INTEGER_ONE_IDX, CN_INTEGER_ZERO_IDX, CN_Tbl_Idx, CN_TYPE_IDX, Compiler_Tmp, size_offset_entry::constant, Constant_Size, copy_subtree(), COPY_TBL_NTRY, create_equiv_stor_blk(), curr_scp_idx, curr_stmt_sh_idx, EQ_ATTR_IDX, EQ_NEXT_EQUIV_GRP, EQ_NEXT_EQUIV_OBJ, EQ_OFFSET_FLD, EQ_OFFSET_IDX, equiv_tbl, Error, EXIT, Explicit_Shape, FALSE, size_offset_entry::fld, FOUND, Func_Entry, Func_Exit, gen_compiler_tmp(), gen_opnd(), size_offset_entry::idx, IL_COL_NUM, IL_FLD, IL_IDX, IL_LINE_NUM, IL_LIST_CNT, IL_NEXT_LIST_IDX, IL_Tbl_Idx, Integer, INTEGER_DEFAULT_TYPE, Internal, IR_COL_NUM_L, IR_FLD_L, IR_IDX_L, IR_IDX_R, IR_LINE_NUM_L, IR_LIST_CNT_R, IR_OPR, IR_RANK, IR_Tbl_Idx, NO_Tbl_Idx, ntr_array_in_bd_tbl(), ntr_const_tbl(), NTR_EQ_TBL, NTR_IR_LIST_TBL, NULL, NULL_IDX, obj_count, OPND_COL_NUM, OPND_IDX, OPND_LINE_NUM, optimize_whole_array_init(), Plus_Opr, PRINTMSG(), Real, REAL_DEFAULT_TYPE, Referenced, reserve_array_ntry(), result, SB_BLK_TYPE, SB_HOSTED_STATIC, SB_IS_COMMON, SB_MODULE, SCP_FIRST_EQUIV_GRP, SH_ERR_FLG, Shared, size_offset_binary_calc(), stmt_start_col, stmt_start_line, storage_bit_size_tbl, Struct_Component, Structure, Subscript_Opr, TRACE, TRUE, TYP_BIT_LEN, TYP_IDX, TYP_LINEAR, TYP_TYPE, expr_semantics_args::type, size_offset_entry::type_idx, expr_semantics_args::type_idx, Typeless, value_desc, value_opnd, and Whole_Subscript_Opr.

Referenced by data_stmt_semantics().

Here is the call graph for this function:


Variable Documentation

char USMID[] = "\n@(#)5.0_pl/sources/s_data.c 5.7 09/02/99 17:06:53\n" [static]

Definition at line 37 of file s_data.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines