Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
s_asg_expr.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 "s_globals.m"
#include "debug.m"
#include "s_asg_expr.m"
#include "globals.h"
#include "tokens.h"
#include "sytb.h"
#include "s_globals.h"
#include "s_asg_expr.h"
Include dependency graph for s_asg_expr.c:

Go to the source code of this file.

Defines

#define BIAS_SIZE   128

Functions

static boolean array_construct_semantics (opnd_type *, expr_arg_type *)
static boolean bin_array_syntax_check (expr_arg_type *, expr_arg_type *, expr_arg_type *, int, int)
static void make_logical_array_tmp (opnd_type *, expr_arg_type *)
static void fold_nested_substrings (int)
static boolean uplus_opr_handler (opnd_type *, expr_arg_type *)
static boolean power_opr_handler (opnd_type *, expr_arg_type *)
static boolean mult_opr_handler (opnd_type *, expr_arg_type *)
static boolean minus_opr_handler (opnd_type *, expr_arg_type *)
static boolean plus_opr_handler (opnd_type *, expr_arg_type *)
static boolean concat_opr_handler (opnd_type *, expr_arg_type *)
static boolean eq_opr_handler (opnd_type *, expr_arg_type *)
static boolean lg_opr_handler (opnd_type *, expr_arg_type *)
static boolean lt_opr_handler (opnd_type *, expr_arg_type *)
static boolean not_opr_handler (opnd_type *, expr_arg_type *)
static boolean and_opr_handler (opnd_type *, expr_arg_type *)
static boolean defined_un_opr_handler (opnd_type *, expr_arg_type *)
static boolean defined_bin_opr_handler (opnd_type *, expr_arg_type *)
static boolean max_opr_handler (opnd_type *, expr_arg_type *)
static boolean struct_opr_handler (opnd_type *, expr_arg_type *, int)
static boolean struct_construct_opr_handler (opnd_type *, expr_arg_type *)
static boolean array_construct_opr_handler (opnd_type *, expr_arg_type *)
static boolean subscript_opr_handler (opnd_type *, expr_arg_type *, int)
static boolean substring_opr_handler (opnd_type *, expr_arg_type *, int)
static boolean triplet_opr_handler (opnd_type *, expr_arg_type *)
static boolean dealloc_obj_opr_handler (opnd_type *, expr_arg_type *, int)
static boolean alloc_obj_opr_handler (opnd_type *, expr_arg_type *, int)
static boolean cvrt_opr_handler (opnd_type *, expr_arg_type *)
static boolean paren_opr_handler (opnd_type *, expr_arg_type *)
static boolean stmt_func_call_opr_handler (opnd_type *, expr_arg_type *)
static int implied_do_depth (opnd_type *)
static long64 outer_imp_do_count (opnd_type *)
static void lower_ptr_asg (expr_arg_type *)
static void translate_distant_ref1 (opnd_type *, expr_arg_type *, int)
static void translate_distant_dv_ref (opnd_type *, expr_arg_type *, int)
static void translate_distant_ref2 (opnd_type *, expr_arg_type *, int)
static int set_up_pe_offset_attr (void)
static void gen_bias_ref (opnd_type *)
static void linearize_pe_dims (int, int, int, int, opnd_type *)
void assignment_stmt_semantics (void)
boolean expr_semantics (opnd_type *result_opnd, expr_arg_type *exp_desc)
boolean expr_sem (opnd_type *result_opnd, expr_arg_type *exp_desc)
boolean gen_whole_subscript (opnd_type *opnd, expr_arg_type *exp_desc)
boolean gen_whole_substring (opnd_type *opnd, int rank)
boolean operation_is_intrinsic (operator_type opr, int type_idx_l, int rank_l, int type_idx_r, int rank_r)
boolean fold_relationals (int idx_1, int idx_2, operator_type opr)
void make_triplet_extent_tree (opnd_type *opnd, int list_idx)
boolean check_asg_semantics (int l_new_type_idx, int r_new_type_idx, int line, int col)
void ptr_assign_from_ptr (opnd_type *l_opnd, opnd_type *r_opnd)
void add_substring_length (int sub_idx)
boolean stmt_func_semantics (int stmt_func_idx)
void look_for_real_div (opnd_type *opnd)
boolean check_substring_bounds (int ir_idx)
boolean check_array_bounds (int ir_idx)
void translate_distant_ref (opnd_type *result_opnd, expr_arg_type *exp_desc, int pe_dim_list_idx)
void translate_dv_component (opnd_type *result_opnd, expr_arg_type *exp_desc)
void transform_cri_ch_ptr (opnd_type *result_opnd)

Variables

static char USMID [] = "\n@(#)5.0_pl/sources/s_asg_expr.c 5.10 10/26/99 17:20:56\n"
boolean has_present_opr

Define Documentation

#define BIAS_SIZE   128

Referenced by set_up_pe_offset_attr().


Function Documentation

static boolean array_construct_opr_handler ( opnd_type result_opnd,
expr_arg_type exp_desc 
) [static]

Definition at line 8846 of file s_asg_expr.c.

References Allocate_Stmt, analyse_loops(), arg_info_list, arg_info_list_base, arg_info_list_size, arg_info_list_top, Arith_If_Stmt, Array_Construct_Opr, array_construct_semantics(), Assignment_Stmt, AT_Tbl_Idx, Backspace_Stmt, Buffer_Stmt, Call_Stmt, Case_Stmt, Close_Stmt, CN_Tbl_Idx, compare_cn_and_value(), Constant_Array_Construct_Opr, constructor_level, expr_semantics_args::constructor_size_level, COPY_OPND, create_constructor_constant(), Deallocate_Stmt, Decode_Stmt, defer_stmt_expansion, Do_Infinite_Stmt, Do_Iterative_Stmt, Do_While_Stmt, arg_strct::ed, Else_If_Stmt, Else_Where_Stmt, Encode_Stmt, Endfile_Stmt, enlarge_info_list_table(), expr_mode, expr_semantics(), FALSE, expr_semantics_args::foldable, Func_Entry, Func_Exit, Gt_Opr, expr_semantics_args::has_constructor, If_Cstrct_Stmt, If_Stmt, implied_do_depth(), in_call_list, in_constructor, init_arg_info, Initialization_Expr, Inquire_Stmt, Interp_Loop_Size, io_item_must_flatten, IR_IDX_L, IR_OPND_R, IR_OPR, IR_Tbl_Idx, IR_TYPE_IDX, no_func_expansion, NULL, Nullify_Stmt, Open_Stmt, OPND_FLD, OPND_IDX, outer_imp_do_count(), Outmoded_If_Stmt, print_at_all(), print_cn(), print_ir(), Print_Stmt, expr_semantics_args::rank, Read_Stmt, Rewind_Stmt, Select_Stmt, expr_semantics_args::shape, Simple_Expr_Size, stmt_type, TRACE, TRUE, expr_semantics_args::type_idx, Where_Cstrct_Stmt, Where_Stmt, expr_semantics_args::will_fold_later, and Write_Stmt.

Here is the call graph for this function:

static boolean array_construct_semantics ( opnd_type top_opnd,
expr_arg_type exp_desc 
) [static]

Definition at line 3812 of file s_asg_expr.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_NAME_PTR, AT_SEMANTICS_DONE, AT_Tbl_Idx, ATD_FLD, ATD_IMP_DO_LCV, ATD_LCV_IS_CONST, ATD_STOR_BLK_IDX, ATD_TMP_IDX, ATD_TMP_NEEDS_CIF, ATD_TYPE_IDX, cast_typeless_constant(), CG_INTEGER_DEFAULT_TYPE, expr_semantics_args::char_len, Character, cif_flags, CIF_No_Usage_Rec, CIF_Symbol_Modification, CIF_Symbol_Reference, cif_usage_rec(), CN_CONST, CN_INTEGER_ONE_IDX, CN_INTEGER_ZERO_IDX, CN_Tbl_Idx, compare_derived_types(), expr_semantics_args::constant, constructor_level, COPY_OPND, curr_scp_idx, Dv_Deref_Opr, arg_strct::ed, enlarge_info_list_table(), Eq_Opr, Error, EXIT, expr_mode, expr_sem(), FALSE, find_opnd_line_and_column(), opnd_entry::fld, fold_relationals(), expr_semantics_args::foldable, folder_driver(), Func_Entry, Func_Exit, gen_compiler_tmp(), Gt_Opr, expr_semantics_args::has_symbolic, opnd_entry::idx, IL_ARG_DESC_IDX, IL_ARG_DESC_VARIANT, IL_COL_NUM, IL_FLD, IL_HAS_FUNCTIONS, IL_IDX, IL_LINE_NUM, IL_NEXT_LIST_IDX, IL_OPND, IL_Tbl_Idx, Implied_Do_Opr, in_implied_do, init_arg_info, Integer, INTEGER_DEFAULT_TYPE, Internal, IR_IDX_R, IR_LIST_CNT_R, IR_OPND_L, IR_OPR, IR_Tbl_Idx, IR_TYPE_IDX, expr_semantics_args::linear_type, Long_Typeless, Ne_Opr, NO_Tbl_Idx, NTR_IR_LIST_TBL, NULL, NULL_IDX, number_of_functions, OPND_FLD, OPND_IDX, PRINTMSG(), Priv, expr_semantics_args::rank, expr_semantics_args::reference, Regular_Expr, SCP_SB_STACK_IDX, Short_Typeless_Const, stmt_start_col, stmt_start_line, Structure, THIS_IS_TRUE, TRACE, TRUE, expr_semantics_args::type, expr_semantics_args::type_idx, Typeless, Typeless_4, Typeless_8, Whole_Subscript_Opr, expr_semantics_args::will_fold_later, and xref_state.

Referenced by array_construct_opr_handler().

Here is the call graph for this function:

void assignment_stmt_semantics ( void  )

Definition at line 198 of file s_asg_expr.c.

References active_forall_sh_idx, Ansi, ASG_EXTN, Asg_Opr, ASG_TYPE, Assignment_Stmt, AT_DEFINED, AT_IS_INTRIN, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_REFERENCED, AT_Tbl_Idx, ATD_CLASS, ATD_PE_ARRAY_IDX, ATD_POINTER, ATD_PTR_ASSIGNED, ATD_PURE, ATD_SYMBOLIC_CONSTANT, ATD_TARGET, ATD_TYPE_IDX, ATL_DEF_STMT_IDX, ATL_INFORM_ONLY, ATL_TOP_OF_LOOP, ATP_ELEMENTAL, ATP_PURE, ATP_RSLT_IDX, ATT_CHAR_SEQ, Before, Call_Opr, Call_Stmt, cast_typeless_constant(), change_asg_to_where(), expr_semantics_args::char_len, Character, check_dependence(), check_for_legal_define(), check_where_conformance(), CIF_Array_Assignment_Stmt, CIF_Assignment_Stmt, cif_flags, cif_stmt_type_rec(), CIF_Symbol_Modification, CIF_Symbol_Reference, CN_Tbl_Idx, compare_derived_types(), expr_semantics_args::constant, Continue_Stmt, COPY_OPND, copy_subtree(), CRI_Ch_Ptr_8, curr_scp_idx, curr_stmt_sh_idx, Data_Obj, defer_stmt_expansion, dump_flags, Dv_Deref_Opr, Err_Res, Error, EXIT, expr_semantics(), dump_flags_entry::f_minus_minus, FALSE, find_base_attr(), find_left_attr(), find_opnd_line_and_column(), opnd_entry::fld, fold_relationals(), Func_Entry, Func_Exit, gen_dv_whole_def_init(), gen_forall_if_mask(), gen_forall_loops(), gen_forall_tmp(), gen_internal_lbl(), gen_ir(), gen_opnd(), gen_sh(), get_basic_type_str(), idx, opnd_entry::idx, IL_COL_NUM, IL_FLD, IL_IDX, IL_LINE_NUM, IL_Tbl_Idx, Integer, IR_COL_NUM, IR_COL_NUM_L, IR_COL_NUM_R, IR_FLD_L, IR_FLD_R, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LINE_NUM_L, IR_LINE_NUM_R, IR_LIST_CNT_R, IR_OPND_L, IR_OPND_R, IR_OPR, IR_RANK, IR_Tbl_Idx, IR_TYPE_IDX, Label_Opr, expr_semantics_args::linear_type, look_for_real_div(), MISC_RECS, Ne_Opr, Not_Referenced, NTR_IR_LIST_TBL, NTR_IR_TBL, NULL, NULL_IDX, OPND_COL_NUM, OPND_FLD, OPND_IDX, OPND_LINE_NUM, expr_semantics_args::pointer, PRINTMSG(), process_deferred_functions(), Ptr_Asg_Opr, expr_semantics_args::rank, Real, expr_semantics_args::reference, resolve_ext_opr(), SCP_ATTR_IDX, set_directives_on_label(), SH_COMPILER_GEN, SH_IR_IDX, SH_P2_SKIP_ME, SH_PREV_IDX, SH_STMT_TYPE, expr_semantics_args::shape, Short_Typeless_Const, statement_number, Struct_Component, Structure, Structure_Type, expr_semantics_args::target, expr_semantics_args::tmp_reference, TRACE, transform_char_sequence_ref(), transform_cri_ch_ptr(), TRUE, TYP_FLD, TYP_IDX, TYP_LINEAR, expr_semantics_args::type, expr_semantics_args::type_idx, TYPELESS_DEFAULT_TYPE, expr_semantics_args::vector_subscript, where_ir_idx, Whole_Subscript_Opr, Whole_Substring_Opr, and xref_state.

Here is the call graph for this function:

boolean expr_semantics ( opnd_type result_opnd,
expr_arg_type exp_desc 
)

Definition at line 1035 of file s_asg_expr.c.

References FALSE.

Referenced by add_substring_length(), allocate_stmt_semantics(), arith_if_stmt_semantics(), array_construct_opr_handler(), array_dim_resolution(), assign_stmt_semantics(), assignment_stmt_semantics(), bound_semantics(), buffer_stmt_semantics(), build_loop_tbl(), calculate_iteration_count(), call_list_semantics(), case_stmt_semantics(), case_value_range_semantics(), change_section_to_this_element(), check_stat_variable(), compute_char_element_len(), concat_opr_handler(), constant_value_semantics(), copy_and_replace_tmps(), create_loop_stmts(), create_runtime_array_constructor(), create_tmp_from_stmt_func(), data_repeat_semantics(), deallocate_stmt_semantics(), default_init_semantics(), determine_tmp_size(), directive_stmt_semantics(), distribution_resolution(), do_loop_expr_semantics(), do_stmt_semantics(), doall_cmic_semantics(), doparallel_cmic_semantics(), else_stmt_semantics(), encode_decode_stmt_semantics(), equivalence_semantics(), final_arg_work(), fold_nested_substrings(), forall_semantics(), gen_arg_type_descriptor(), gen_assumed_shape_copy(), gen_auto_length(), gen_bd_entry(), gen_dv_access_low_bound(), gen_forall_max_expr(), gen_forall_tmp(), gen_forall_tmp_bd_entry(), gen_loop_end_ir(), gen_rbounds_condition(), gen_single_automatic_allocate(), generate_bounds_list(), goto_stmt_semantics(), if_stmt_semantics(), imp_do_metamorphed(), inquire_stmt_semantics(), io_ctl_list_semantics(), io_list_semantics(), make_triplet_extent_tree(), mp_directive_semantics(), nullify_stmt_semantics(), object_semantics(), open_mp_directive_semantics(), outer_imp_do_count(), outmoded_if_stmt_semantics(), parallel_cmic_semantics(), paren_grp_is_cplx_const(), parse_int_spec_expr(), parse_operand(), parse_parameter_stmt(), parse_type_dcl_stmt(), pe_array_dim_resolution(), prefetch_ref_semantics(), process_all_initialized_cpnts(), return_stmt_semantics(), select_stmt_semantics(), set_shape_for_deferred_funcs(), stmt_func_semantics(), stop_pause_stmt_semantics(), transfer_intrinsic(), translate_distant_ref1(), type_init_semantics(), validate_char_len(), and where_stmt_semantics().

boolean fold_relationals ( int  idx_1,
int  idx_2,
operator_type  opr 
)

Definition at line 3265 of file s_asg_expr.c.

References CN_CONST, CN_TYPE_IDX, Eq_Opr, folder_driver(), Func_Entry, Func_Exit, Ge_Opr, Gt_Opr, Internal, Le_Opr, Lt_Opr, Ne_Opr, NULL, PRINTMSG(), stmt_start_col, stmt_start_line, THIS_IS_TRUE, and TRACE.

Referenced by array_construct_semantics(), array_dim_resolution(), assign_offset(), assign_offsets_for_equiv_groups(), assignment_stmt_semantics(), attr_init_semantics(), bin_array_syntax_check(), build_loop_tbl(), calculate_iteration_count(), case_stmt_semantics(), case_value_range_semantics(), cast_to_type_idx(), check_actual_and_dummy(), check_and_allocate_common_storage(), check_array_bounds(), check_elemental_conformance(), check_substring_bounds(), check_where_conformance(), compare_darg_to_actual_arg(), compare_derived_types(), compare_entry_to_func_rslt(), const_init_semantics(), determine_lb_ub(), directive_stmt_semantics(), do_stmt_semantics(), equivalence_semantics(), final_arg_work(), final_attr_semantics(), final_decl_semantics(), final_equivalence_semantics(), fold_all_subscripts(), gen_loop_end_ir(), imp_do_metamorphed(), interpret_binary_intrinsic_opr(), interpret_binary_opr(), interpret_concat_opr(), interpret_csmg_opr(), interpret_cvmgt_opr(), interpret_index_opr(), interpret_max_min_opr(), interpret_struct_construct_opr(), max_opr_handler(), merge_dimension(), merge_parameter(), mult_opr_handler(), parse_cpnt_dcl_stmt(), pe_array_dim_resolution(), power_opr_handler(), sin_intrinsic(), stmt_func_call_opr_handler(), storage_blk_resolution(), struct_construct_opr_handler(), subscript_opr_handler(), substring_opr_handler(), and wait_send_semantics().

Here is the call graph for this function:

boolean gen_whole_subscript ( opnd_type opnd,
expr_arg_type exp_desc 
)

Definition at line 2528 of file s_asg_expr.c.

References ADD_TMP_TO_SHARED_LIST, Assignment_Stmt, Assumed_Size, AT_OBJ_CLASS, AT_Tbl_Idx, ATD_ALLOCATABLE, ATD_ARRAY_IDX, ATD_IM_A_DOPE, ATD_LCV_IS_CONST, ATD_PE_ARRAY_IDX, ATD_TYPE_IDX, BD_ARRAY_CLASS, BD_LB_FLD, BD_LB_IDX, BD_RANK, BD_UB_FLD, BD_UB_IDX, BD_XT_FLD, BD_XT_IDX, cast_to_cg_default(), CG_INTEGER_DEFAULT_TYPE, Character, CN_INTEGER_ONE_IDX, CN_Tbl_Idx, CN_TYPE_IDX, COPY_OPND, copy_subtree(), curr_stmt_sh_idx, Data_Obj, Dv_Access_Extent, Dv_Deref_Opr, Error, EXIT, FALSE, find_base_attr(), FREE_IR_NODE, Func_Entry, Func_Exit, gen_dv_access_low_bound(), gen_whole_substring(), IL_COL_NUM, IL_FLD, IL_IDX, IL_LINE_NUM, IL_NEXT_LIST_IDX, IL_OPND, IL_PE_SUBSCRIPT, IL_PREV_LIST_IDX, IL_Tbl_Idx, in_call_list, in_io_list, INTEGER_DEFAULT_TYPE, io_item_must_flatten, IR_ARRAY_SYNTAX, IR_COL_NUM, IR_COL_NUM_L, IR_COL_NUM_R, IR_DV_DIM, IR_FLD_L, IR_FLD_R, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LINE_NUM_L, IR_LINE_NUM_R, IR_LIST_CNT_L, IR_LIST_CNT_R, IR_OPND_L, IR_OPND_R, IR_OPR, IR_RANK, IR_Tbl_Idx, IR_TYPE_IDX, expr_semantics_args::linear_type, Minus_Opr, My_Pe_Opr, NTR_IR_LIST_TBL, NTR_IR_TBL, NULL, NULL_IDX, OPND_FLD, OPND_IDX, expr_semantics_args::pe_dim_ref, Plus_Opr, PRINTMSG(), expr_semantics_args::rank, SA_INTEGER_DEFAULT_TYPE, SH_IR_IDX, SH_STMT_TYPE, expr_semantics_args::shape, SHAPE_FOLDABLE, SHAPE_WILL_FOLD_LATER, Subscript_Opr, TRACE, Triplet_Opr, TRUE, TYP_LINEAR, TYP_TYPE, expr_semantics_args::type, expr_semantics_args::type_idx, and Whole_Subscript_Opr.

Referenced by adjustl_intrinsic(), allocate_stmt_semantics(), create_argchck_descriptor(), create_constructor_constant(), create_namelist_descriptor(), create_runtime_array_constructor(), create_strct_tbl(), create_struct_constructor_asg(), create_tmp_asg(), discombobulate_structure_ref(), final_arg_work(), flatten_function_call(), fold_aggragate_expression(), gen_arg_type_descriptor(), gen_call_type_descriptor(), gen_default_init_code(), gen_entry_dope_code(), interpret_reshape_intrinsic(), interpret_transfer_intrinsic(), lbound_intrinsic(), null_intrinsic(), optimize_reshape(), process_all_initialized_cpnts(), process_cpnt_inits(), reshape_intrinsic(), shape_intrinsic(), struct_construct_opr_handler(), struct_opr_handler(), subscript_opr_handler(), transfer_intrinsic(), and ubound_intrinsic().

Here is the call graph for this function:

boolean gen_whole_substring ( opnd_type opnd,
int  rank 
)

Definition at line 2927 of file s_asg_expr.c.

References add_substring_length(), ADD_TMP_TO_SHARED_LIST, Assumed_Size_Char, AT_Tbl_Idx, ATD_CHAR_LEN_IN_DV, ATD_CLASS, ATD_TYPE_IDX, CG_INTEGER_DEFAULT_TYPE, char_len_in_bytes, Clen_Opr, CN_INTEGER_ONE_IDX, CN_INTEGER_THREE_IDX, CN_Tbl_Idx, COPY_OPND, CRI__Pointee, Dv_Access_El_Len, FALSE, find_base_attr(), Func_Entry, Func_Exit, IL_COL_NUM, IL_FLD, IL_IDX, IL_LINE_NUM, IL_NEXT_LIST_IDX, IL_PREV_LIST_IDX, IL_Tbl_Idx, IR_ARRAY_SYNTAX, 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_L, IR_LIST_CNT_R, IR_OPND_L, IR_OPR, IR_RANK, IR_Tbl_Idx, IR_TYPE_IDX, NTR_IR_LIST_TBL, NTR_IR_TBL, NULL, OPND_FLD, OPND_IDX, SA_INTEGER_DEFAULT_TYPE, Shiftr_Opr, TRACE, TRUE, TYP_CHAR_CLASS, TYP_FLD, TYP_IDX, and Whole_Substring_Opr.

Referenced by const_init_semantics(), create_constructor_constant(), create_runtime_array_constructor(), create_scalar_type_tbl(), create_struct_constructor_asg(), create_tmp_asg(), cvrt_exp_to_pdg(), discombobulate_structure_ref(), do_single_asg(), final_arg_work(), finish_cdir_id(), flatten_function_call(), fold_aggragate_expression(), gen_forall_tmp(), gen_whole_subscript(), interpret_reshape_intrinsic(), interpret_transfer_intrinsic(), parse_id_directive(), process_cpnt_inits(), put_string_in_tmp(), reshape_intrinsic(), stmt_func_call_opr_handler(), struct_opr_handler(), subscript_opr_handler(), and transfer_intrinsic().

Here is the call graph for this function:

static int set_up_pe_offset_attr ( void  ) [static]

Definition at line 14093 of file s_asg_expr.c.

References AT_DEF_COLUMN, AT_DEF_LINE, AT_LOCKED_IN, AT_NAME_IDX, AT_NAME_LEN, AT_OBJ_CLASS, AT_REFERENCED, AT_SEMANTICS_DONE, AT_TYPED, ATD_ARRAY_IDX, ATD_CLASS, ATD_CPNT_OFFSET_IDX, ATD_DERIVED_TYPE_IDX, ATD_IN_COMMON, ATD_OFFSET_ASSIGNED, ATD_OFFSET_FLD, ATD_OFFSET_IDX, ATD_STOR_BLK_IDX, ATD_TYPE_IDX, ATT_DCL_NUMERIC_SEQ, ATT_FIRST_CPNT_IDX, ATT_NUM_CPNTS, ATT_NUMERIC_CPNT, ATT_SCP_IDX, ATT_SEQUENCE_SET, ATT_STRUCT_BIT_LEN_FLD, ATT_STRUCT_BIT_LEN_IDX, BIAS_SIZE, C_INT_TO_CN, CG_INTEGER_DEFAULT_TYPE, CLEAR_TBL_NTRY, CN_INTEGER_ZERO_IDX, CN_Tbl_Idx, Common, create_bd_ntry_for_const(), CREATE_ID, curr_scp_idx, Data_Obj, Derived_Type, FALSE, opnd_entry::fld, Func_Entry, Func_Exit, opnd_entry::idx, init_exp_desc, Integer, Integer_4, Integer_8, expr_semantics_args::linear_type, NTR_ATTR_TBL, NTR_NAME_POOL, NTR_SN_TBL, ntr_stor_blk_tbl(), ntr_sym_tbl(), ntr_type_tbl(), NULL, NULL_IDX, expr_semantics_args::rank, Referenced, SA_INTEGER_DEFAULT_TYPE, SB_BLANK_COMMON, SB_COMMON_NEEDS_OFFSET, SB_FIRST_ATTR_IDX, SB_LEN_FLD, SB_LEN_IDX, SB_NAME_IN_STONE, expr_semantics_args::shape, SN_ATTR_IDX, SN_NAME_IDX, SN_NAME_LEN, SN_SIBLING_LINK, srch_stor_blk_tbl(), srch_sym_tbl(), stmt_start_col, stmt_start_line, storage_bit_size_tbl, Struct_Component, Structure, Structure_Type, Task_Common, Tok_Id, token, TOKEN_COLUMN, TOKEN_ID, TOKEN_LEN, TOKEN_LINE, TOKEN_STR, TRACE, TRUE, TYP_IDX, TYP_LINEAR, TYP_TYPE, TYP_WORK_IDX, expr_semantics_args::type, expr_semantics_args::type_idx, type_tbl, and Variable.

Referenced by gen_bias_ref().

Here is the call graph for this function:

static boolean stmt_func_call_opr_handler ( opnd_type result_opnd,
expr_arg_type exp_desc 
) [static]

Definition at line 11628 of file s_asg_expr.c.

References Ansi, arg_info_list, arg_info_list_base, arg_info_list_size, arg_info_list_top, arg_list_size, arg_strct::arg_opnd, ASG_EXTN, ASG_TYPE, Assignment_Stmt, AT_DCL_ERR, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_Tbl_Idx, ATD_FLD, ATD_SF_ARG_IDX, ATD_SF_LINK, ATD_TYPE_IDX, ATP_FIRST_IDX, ATP_NUM_DARGS, ATS_SF_ACTIVE, ATS_SF_FLD, ATS_SF_IDX, ATS_SF_SEMANTICS_DONE, Before, cast_to_type_idx(), cast_typeless_constant(), Caution, expr_semantics_args::char_len, Character, Character_1, check_type_conversion, CN_Tbl_Idx, compare_derived_types(), expr_semantics_args::constant, COPY_OPND, copy_subtree(), create_tmp_asg(), curr_stmt_sh_idx, Data_Obj, defer_stmt_expansion, Dv_Deref_Opr, arg_strct::ed, enlarge_call_list_tables(), enlarge_info_list_table(), Eq_Opr, Err_Res, Error, EXIT, expr_mode, expr_sem(), FALSE, find_opnd_line_and_column(), opnd_entry::fld, fnd_semantic_err(), fold_aggragate_expression(), fold_relationals(), expr_semantics_args::foldable, Func_Entry, Func_Exit, GEN_COMPILER_TMP_ASG, gen_sh(), gen_whole_substring(), get_basic_type_str(), expr_semantics_args::has_constructor, expr_semantics_args::has_symbolic, opnd_entry::idx, IL_ARG_DESC_IDX, IL_ARG_DESC_VARIANT, IL_FLD, IL_HAS_FUNCTIONS, IL_NEXT_LIST_IDX, IL_OPND, init_arg_info, Intent_In, io_item_must_flatten, IR_COL_NUM, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LIST_CNT_R, IR_OPND_L, IR_OPND_R, IR_OPR, IR_Tbl_Idx, IR_TYPE_IDX, expr_semantics_args::linear_type, Lt_Opr, max_call_list_size, no_func_expansion, NTR_IR_TBL, NULL, number_of_functions, Obj_Sf_Actual_Arg, OPND_COL_NUM, OPND_FLD, OPND_IDX, OPND_LINE_NUM, Paren_Opr, PRINTMSG(), Priv, expr_semantics_args::rank, expr_semantics_args::reference, Section_Subscript_Opr, SH_IR_IDX, SH_P2_SKIP_ME, SH_PREV_IDX, Short_Typeless_Const, SN_ATTR_IDX, stmt_expansion_control_end(), stmt_expansion_control_start(), Stmt_Func_Expr, stmt_func_semantics(), Struct_Opr, Structure, Subscript_Opr, Substring_Opr, target_char_len_idx, target_type_idx, expr_semantics_args::tmp_reference, TRACE, expr_semantics_args::tree_has_ranf, tree_has_ranf, TRUE, TYP_FLD, TYP_IDX, TYP_LINEAR, TYP_TYPE, expr_semantics_args::type, expr_semantics_args::type_idx, Typeless_4, Typeless_8, validate_char_len(), Whole_Subscript_Opr, Whole_Substring_Opr, and expr_semantics_args::will_fold_later.

Here is the call graph for this function:

static boolean struct_construct_opr_handler ( opnd_type result_opnd,
expr_arg_type exp_desc 
) [static]

Definition at line 8348 of file s_asg_expr.c.

References Ansi, arg_info_list, arg_info_list_base, arg_info_list_size, arg_info_list_top, ASG_EXTN, ASG_TYPE, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_SEMANTICS_DONE, AT_Tbl_Idx, AT_USE_ASSOCIATED, ATD_ARRAY_IDX, ATD_POINTER, ATD_STOR_BLK_IDX, ATD_TARGET, ATD_TYPE_IDX, ATP_RSLT_IDX, ATT_FIRST_CPNT_IDX, ATT_NUM_CPNTS, ATT_PRIVATE_CPNT, BD_RANK, Before, Call_Opr, cast_typeless_constant(), expr_semantics_args::char_len, Character, CLEAR_TBL_NTRY, CN_Tbl_Idx, compare_derived_types(), Constant_Struct_Construct_Opr, constructor_level, COPY_OPND, create_constructor_constant(), create_runtime_struct_constructor(), curr_scp_idx, Data_Obj, defer_stmt_expansion, Derived_Type, Dv_Deref_Opr, arg_strct::ed, enlarge_info_list_table(), Err_Res, Error, EXIT, expr_mode, expr_sem(), FALSE, find_opnd_line_and_column(), opnd_entry::fld, fold_relationals(), expr_semantics_args::foldable, Func_Entry, Func_Exit, gen_compiler_tmp(), gen_ir(), gen_opnd(), gen_static_dv_whole_def(), gen_whole_subscript(), get_basic_type_str(), expr_semantics_args::has_constructor, expr_semantics_args::has_symbolic, opnd_entry::idx, IL_ARG_DESC_IDX, IL_ARG_DESC_VARIANT, IL_IDX, IL_NEXT_LIST_IDX, IL_OPND, in_call_list, in_constructor, init_arg_info, Initialization_Expr, Internal, io_item_must_flatten, IR_COL_NUM, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LIST_CNT_R, IR_OPND_L, IR_OPR, IR_RANK, IR_Tbl_Idx, IR_TYPE_IDX, expr_semantics_args::linear_type, Ne_Opr, no_func_expansion, NO_Tbl_Idx, ntr_type_tbl(), NULL, NULL_IDX, Null_Intrinsic_Opr, OPND_FLD, OPND_IDX, Pgm_Unit, pgm_unit_illegal, expr_semantics_args::pointer, PRINTMSG(), Priv, expr_semantics_args::rank, expr_semantics_args::reference, Regular_Expr, SCP_SB_STATIC_INIT_IDX, Short_Typeless_Const, SN_ATTR_IDX, SN_SIBLING_LINK, Structure, Structure_Type, expr_semantics_args::target, expr_semantics_args::tmp_reference, TRACE, TRUE, TYP_FLD, TYP_IDX, TYP_LINEAR, TYP_TYPE, TYP_WORK_IDX, expr_semantics_args::type, expr_semantics_args::type_idx, type_tbl, Typeless, expr_semantics_args::vector_subscript, and expr_semantics_args::will_fold_later.

Here is the call graph for this function:

static boolean struct_opr_handler ( opnd_type result_opnd,
expr_arg_type exp_desc,
int  rank_in 
) [static]

Definition at line 8115 of file s_asg_expr.c.

References expr_semantics_args::array_elt, expr_semantics_args::assumed_shape, expr_semantics_args::assumed_size, ATD_ARRAY_IDX, expr_semantics_args::bias_opnd, expr_semantics_args::char_len, Character, cif_flags, CIF_No_Usage_Rec, CIF_Symbol_Is_Actual_Arg, cif_usage_rec(), expr_semantics_args::component, expr_semantics_args::constant, expr_semantics_args::contig_array, COPY_OPND, COPY_SHAPE, expr_semantics_args::dist_reshape_ref, expr_semantics_args::dope_vector, Error, expr_sem(), FALSE, find_opnd_line_and_column(), expr_semantics_args::foldable, Func_Entry, Func_Exit, gen_whole_subscript(), gen_whole_substring(), expr_semantics_args::has_constructor, expr_semantics_args::has_symbolic, in_call_list, in_component_ref, insert_subs_ok, IR_COL_NUM, IR_COL_NUM_R, IR_FLD_L, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LINE_NUM_R, IR_OPND_L, IR_OPND_R, IR_OPR, IR_RANK, IR_Tbl_Idx, IR_TYPE_IDX, expr_semantics_args::linear_type, no_sub_or_deref, NULL, OPND_FLD, OPND_IDX, expr_semantics_args::pe_dim_ref, expr_semantics_args::pointer, PRINTMSG(), expr_semantics_args::rank, expr_semantics_args::reference, expr_semantics_args::section, expr_semantics_args::shape, storage_bit_size_tbl, Substring_Opr, expr_semantics_args::target, TRACE, translate_dv_component(), TRUE, expr_semantics_args::type, expr_semantics_args::type_idx, expr_semantics_args::vector_subscript, Whole_Substring_Opr, expr_semantics_args::will_fold_later, and xref_state.

Here is the call graph for this function:

static boolean subscript_opr_handler ( opnd_type result_opnd,
expr_arg_type exp_desc,
int  rank_in 
) [static]

Definition at line 9082 of file s_asg_expr.c.

References ADD_TMP_TO_SHARED_LIST, Ansi, expr_semantics_args::array_elt, Assumed_Shape, expr_semantics_args::assumed_shape, Assumed_Size, AT_ATTR_LINK, AT_IGNORE_ATTR_LINK, AT_OBJ_CLASS, AT_SEMANTICS_DONE, AT_Tbl_Idx, ATD_ALLOCATABLE, ATD_ARRAY_IDX, ATD_CLASS, ATD_FLD, ATD_PE_ARRAY_IDX, ATD_PTR_IDX, ATD_STOR_BLK_IDX, ATD_TYPE_IDX, ATD_VARIABLE_TMP_IDX, ATP_HAS_OVER_INDEXING, BD_ARRAY_CLASS, BD_LB_FLD, BD_LB_IDX, BD_RANK, BD_UB_FLD, BD_UB_IDX, expr_semantics_args::bias_opnd, Call_Opr, cast_to_cg_default(), cast_typeless_constant(), CG_INTEGER_DEFAULT_TYPE, expr_semantics_args::char_len, Character, check_array_bounds(), expr_semantics_args::cif_id, CIF_No_Usage_Rec, CIF_Symbol_Reference, CN_INTEGER_ONE_IDX, CN_Tbl_Idx, CN_TYPE_IDX, compare_cn_and_value(), expr_semantics_args::component, expr_semantics_args::constant, expr_semantics_args::contig_array, COPY_OPND, COPY_SHAPE, copy_subtree(), CRI__Pointee, curr_scp_idx, Data_Obj, Data_Stmt_Target, Data_Stmt_Target_Expr, Deferred_Shape, expr_semantics_args::dist_reshape_ref, expr_semantics_args::dope_vector, dump_flags, Dv_Access_Extent, Dv_Deref_Opr, Eq_Opr, Error, Explicit_Shape, expr_mode, expr_sem(), FALSE, find_base_attr(), find_opnd_line_and_column(), fold_relationals(), expr_semantics_args::foldable, FREE_IR_LIST_NODE, FREE_IR_NODE, Func_Entry, Func_Exit, gen_compiler_tmp(), gen_dv_access_low_bound(), gen_ir(), gen_whole_subscript(), gen_whole_substring(), expr_semantics_args::has_constructor, expr_semantics_args::has_symbolic, IL_COL_NUM, IL_CONSTANT_SUBSCRIPT, IL_FLD, IL_IDX, IL_LINE_NUM, IL_NEXT_LIST_IDX, IL_OPND, IL_PE_SUBSCRIPT, IL_PREV_LIST_IDX, IL_VECTOR_SUBSCRIPT, in_call_list, in_component_ref, in_implied_do, in_io_list, insert_subs_ok, Integer, INTEGER_DEFAULT_TYPE, Internal, io_item_must_flatten, IR_COL_NUM, IR_COL_NUM_L, IR_DV_DIM, IR_FLD_L, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LINE_NUM_L, IR_LIST_CNT_R, IR_OPND_L, IR_OPR, IR_RANK, IR_Tbl_Idx, IR_TYPE_IDX, expr_semantics_args::linear_type, Local_Pe_Dim_Opr, Long_Typeless, make_triplet_extent_tree(), Minus_Opr, My_Pe_Opr, dump_flags_entry::no_dimension_padding, no_sub_or_deref, NO_Tbl_Idx, NTR_IR_LIST_TBL, NTR_IR_TBL, NULL, NULL_IDX, OPND_FLD, OPND_IDX, expr_semantics_args::pe_dim_ref, Pgm_Unit, pgm_unit_illegal, Plus_Opr, expr_semantics_args::pointer, PRINTMSG(), expr_semantics_args::rank, expr_semantics_args::reference, Restricted_Imp_Do_Expr, Restricted_Imp_Do_Target, SA_INTEGER_DEFAULT_TYPE, SCP_ATTR_IDX, SCP_SB_BASED_IDX, expr_semantics_args::section, Section_Subscript_Opr, expr_semantics_args::shape, SHAPE_FOLDABLE, SHAPE_WILL_FOLD_LATER, Shared, Short_Typeless_Const, Struct_Opr, Subscript_Opr, expr_semantics_args::target, TRACE, Triplet_Opr, TRUE, TYP_LINEAR, TYP_TYPE, expr_semantics_args::type, expr_semantics_args::type_idx, Typeless, Variable, expr_semantics_args::vector_subscript, Warning, Whole_Subscript_Opr, expr_semantics_args::will_fold_later, and xref_state.

Here is the call graph for this function:

static boolean substring_opr_handler ( opnd_type result_opnd,
expr_arg_type exp_desc,
int  rank_in 
) [static]

Definition at line 10353 of file s_asg_expr.c.

References add_substring_length(), ADD_TMP_TO_SHARED_LIST, expr_semantics_args::array_elt, Assumed_Size_Char, AT_Tbl_Idx, ATD_CLASS, ATD_TYPE_IDX, expr_semantics_args::bias_opnd, cast_typeless_constant(), CG_INTEGER_DEFAULT_TYPE, expr_semantics_args::char_len, Character, Character_1, CHARACTER_DEFAULT_TYPE, check_substring_bounds(), expr_semantics_args::cif_id, CIF_No_Usage_Rec, CIF_Symbol_Reference, CLEAR_TBL_NTRY, Clen_Opr, CN_CONST, CN_INT_TO_C, CN_INTEGER_ONE_IDX, CN_Tbl_Idx, CN_TYPE_IDX, compare_cn_and_value(), expr_semantics_args::component, Const_Len_Char, expr_semantics_args::constant, expr_semantics_args::contig_array, COPY_OPND, COPY_SHAPE, CRI__Pointee, Data_Stmt_Target, Data_Stmt_Target_Expr, defer_stmt_expansion, expr_semantics_args::dist_reshape_ref, expr_semantics_args::dope_vector, Eq_Opr, Error, expr_mode, expr_sem(), FALSE, find_base_attr(), find_opnd_line_and_column(), fold_nested_substrings(), fold_relationals(), expr_semantics_args::foldable, Func_Entry, Func_Exit, gen_initialized_tmp(), expr_semantics_args::has_constructor, expr_semantics_args::has_symbolic, IL_COL_NUM, IL_CONSTANT_SUBSCRIPT, IL_FLD, IL_IDX, IL_LINE_NUM, IL_NEXT_LIST_IDX, IL_OPND, in_call_list, in_component_ref, insert_subs_ok, Integer, INTEGER_DEFAULT_TYPE, IR_COL_NUM, IR_COL_NUM_L, IR_FLD_L, IR_IDX_L, IR_IDX_R, IR_LINE_NUM, IR_LINE_NUM_L, IR_OPND_L, IR_OPR, IR_RANK, IR_Tbl_Idx, IR_TYPE_IDX, Le_Opr, expr_semantics_args::linear_type, Long_Typeless, NO_Tbl_Idx, ntr_const_tbl(), NTR_IR_TBL, ntr_type_tbl(), NULL, number_of_functions, OPND_COL_NUM, OPND_FLD, OPND_IDX, OPND_LINE_NUM, expr_semantics_args::pe_dim_ref, expr_semantics_args::pointer, PRINTMSG(), expr_semantics_args::rank, expr_semantics_args::reference, Restricted_Imp_Do_Expr, Restricted_Imp_Do_Target, expr_semantics_args::section, expr_semantics_args::shape, Short_Char_Const, Short_Typeless_Const, stmt_expansion_control_end(), stmt_expansion_control_start(), Substring_Opr, expr_semantics_args::target, TRACE, TRUE, TYP_CHAR_CLASS, TYP_FLD, TYP_IDX, TYP_LINEAR, TYP_TYPE, TYP_WORK_IDX, expr_semantics_args::type, expr_semantics_args::type_idx, type_tbl, Typeless, expr_semantics_args::vector_subscript, Whole_Substring_Opr, expr_semantics_args::will_fold_later, and xref_state.

Here is the call graph for this function:


Variable Documentation

char USMID[] = "\n@(#)5.0_pl/sources/s_asg_expr.c 5.10 10/26/99 17:20:56\n" [static]

Definition at line 37 of file s_asg_expr.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines