#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 "p_globals.h"#include "s_globals.h"

Go to the source code of this file.
Functions/Subroutines | |
| boolean | check_actual_and_dummy (opnd_type actual, opnd_type dummy, int arg) |
| void | scalar_dope_to_scalar (int i, int *copy_out_DV_scalar, boolean dummy_referenced) |
| void | array_element_to_scalar (int i, int *copy_out_array_element, boolean dummy_referenced, boolean dummy_modified) |
| void | character_to_character (int i) |
| int | copy_sbtree (int idx, fld_type fld) |
| void | make_copy_of_routine (int original_head) |
| void | srch_for_calls (int ir_idx, fld_type field) |
| void | inline_processing (int first_sh_idx) |
Variables | |
| static char | USMID [] = "\n@(#)5.0_pl/sources/inline.c 5.8 08/09/99 17:48:48\n" |
| static int | parallel_region |
| static int | call_sh |
| static int | sh_count |
| static int | npi |
| static int | loop_nest |
| static int | pgm_attr_idx |
| static int | entry_label_attr_idx |
| static int | exit_label_attr_idx |
| static int | call_line_number |
| static int | call_col_number |
| static int | number_of_actual_args |
| static int | number_of_dummy_args |
| static boolean | table_overflow |
| static boolean | function_call |
| static boolean | something_was_inlined |
| static boolean | processing_ENTRY_called |
| static boolean | inlinable = TRUE |
| static boolean | noinline_in_effect |
| static boolean | inline_in_effect |
| static int | copy_head |
| static int | next_label_slot |
| static int | next_copy_out_sh_idx |
| static int | old_label [MAX_INLINE_LABELS] |
| static int | new_label [MAX_INLINE_LABELS] |
| static int | actual_arg_attrs [MAX_INLINE_ARGS] |
| static opnd_type | flipped_opnd [MAX_INLINE_ARGS] |
| static opnd_type | actual_opnd [MAX_INLINE_ARGS] |
| static opnd_type | dummy_opnd [MAX_INLINE_ARGS] |
| static opnd_type | subscripting_tree [MAX_INLINE_ARGS] |
| static opnd_type | substringing_tree [MAX_INLINE_ARGS] |
| static opnd_type | struct_tree [MAX_INLINE_ARGS] |
| static opnd_type | substring_offset [MAX_INLINE_ARGS] |
| static opnd_type | linearized_offset [MAX_INLINE_ARGS][9] |
| static opnd_type | substring_len [MAX_INLINE_ARGS] |
| static int | copy_out_sh [MAX_INLINE_ARGS] |
| static int | next_pgm_idx [MAX_INLINED_ROUTINES] |
| static opnd_type | subscript [9] |
| static opnd_type | subscript_attr [9] |
| void array_element_to_scalar | ( | int | i, | |
| int * | copy_out_array_element, | |||
| boolean | dummy_referenced, | |||
| boolean | dummy_modified | |||
| ) |
Definition at line 436 of file inline.c.
References Asg_Opr, Assignment_Stmt, AT_SEMANTICS_DONE, AT_Tbl_Idx, ATD_STOR_BLK_IDX, ATD_TYPE_IDX, Before, call_col_number, call_line_number, call_sh, col, COPY_OPND, curr_scp_idx, curr_stmt_sh_idx, FALSE, find_base_attr(), Func_Entry, Func_Exit, gen_compiler_tmp(), gen_sh(), IL_NEXT_LIST_IDX, IL_OPND, INTEGER_DEFAULT_TYPE, 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_OPR, IR_TYPE_IDX, NTR_IR_TBL, NULL, OPND_COL_NUM, OPND_FLD, OPND_IDX, OPND_LINE_NUM, Priv, SCP_SB_STACK_IDX, SH_IR_IDX, SH_P2_SKIP_ME, SH_PREV_IDX, TRACE, and TRUE.
Referenced by srch_for_calls().
| void character_to_character | ( | int | i | ) |
Definition at line 579 of file inline.c.
References Asg_Opr, Assignment_Stmt, Assumed_Size_Char, AT_OBJ_NAME_PTR, AT_SEMANTICS_DONE, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_STOR_BLK_IDX, ATD_TYPE_IDX, Before, call_col_number, call_line_number, call_sh, CG_INTEGER_DEFAULT_TYPE, CN_INTEGER_ONE_IDX, CN_Tbl_Idx, COPY_OPND, curr_scp_idx, curr_stmt_sh_idx, Dv_Deref_Opr, FALSE, Func_Entry, Func_Exit, gen_compiler_tmp(), gen_sh(), IL_NEXT_LIST_IDX, IL_OPND, inlinable, Inline, 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_OPND_L, IR_OPR, IR_Tbl_Idx, IR_TYPE_IDX, Minus_Opr, NTR_IR_TBL, NULL, NULL_IDX, OPND_FLD, OPND_IDX, pgm_attr_idx, PRINTMSG(), Priv, SCP_SB_STACK_IDX, SH_IR_IDX, SH_P2_SKIP_ME, SH_PREV_IDX, Subscript_Opr, TRACE, TRUE, and TYP_CHAR_CLASS.
Referenced by srch_for_calls().
Definition at line 119 of file inline.c.
References AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_CLASS, ATD_PE_ARRAY_IDX, ATD_RESHAPE_ARRAY_OPT, ATD_TYPE_IDX, ATD_WAS_SCOPED, BD_LB_FLD, BD_LB_IDX, BD_RANK, BD_UB_FLD, BD_UB_IDX, call_col_number, call_line_number, Character, CN_Tbl_Idx, CN_TYPE_IDX, Complex, Data_Obj, Eq_Opr, Error, FALSE, fold_relationals(), Func_Entry, Func_Exit, i, inlinable, Inline, Integer, NULL, NULL_IDX, OPND_FLD, OPND_IDX, pgm_attr_idx, PRINTMSG(), Real, result, Struct_Component, TRACE, TRUE, TYP_LINEAR, and TYP_TYPE.
Referenced by srch_for_calls().
| int copy_sbtree | ( | int | idx, | |
| fld_type | fld | |||
| ) |
Definition at line 704 of file inline.c.
References ADD_ATTR_TO_LOCAL_LIST, Aloc_Opr, Argchck_Present_Opr, Asg_Opr, Assumed_Size_Char, AT_ATTR_LINK, AT_HOST_ASSOCIATED, AT_NAME_LEN, AT_OBJ_CLASS, AT_OBJ_NAME_PTR, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_AUTOMATIC, ATD_CLASS, ATD_IM_A_DOPE, ATD_IN_COMMON, ATD_NEXT_MEMBER_IDX, ATD_OFFSET_FLD, ATD_OFFSET_IDX, ATD_PE_ARRAY_IDX, ATD_POINTER, ATD_PTR_IDX, ATD_RESHAPE_ARRAY_OPT, ATD_STOR_BLK_IDX, ATD_TMP_INIT_NOT_DONE, ATD_TYPE_IDX, ATL_DIRECTIVE_LIST, ATP_IN_CURRENT_COMPILE, ATP_INLINE_ALWAYS, ATP_MOD_PATH_IDX, BD_RANK, BD_XT_FLD, BD_XT_IDX, Br_Asg_Opr, Br_Uncond_Opr, Cache_Bypass_Dir_Idx, call_col_number, call_line_number, Call_Opr, CG_INTEGER_DEFAULT_TYPE, Clen_Opr, CN_CONST, CN_INTEGER_ONE_IDX, CN_Tbl_Idx, CN_TYPE_IDX, Common, Compiler_Tmp, Const_Tmp_Loc_Opr, COPY_ATTR_NTRY, COPY_COMMON_ATTR_INFO, COPY_OPND, COPY_TBL_NTRY, COPY_VARIANT_ATTR_INFO, CREATE_ID, CRI__Pointee, CRI_Ch_Ptr, CRI_Ptr, curr_scp_idx, Data_Obj, Doall_Cmic_Opr, Dummy_Argument, entry_label_attr_idx, Entry_Opr, Eq_Opr, exit_label_attr_idx, FALSE, FALSE_VALUE, find_left_attr(), folder_driver(), Func_Entry, Func_Exit, Function_Result, GA_DEFINED, gen_internal_lbl(), GN_ATTR_IDX, Gt_Opr, i, IL_ARG_DESC_IDX, IL_ARG_DESC_VARIANT, 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, Implied_Do_Opr, Init_Opr, Init_Reloc_Opr, inlinable, Inline, inline_in_effect, opt_flags_entry::inline_lvl, Inline_Lvl_3, insert_init_stmt_for_tmp(), Int_Opr, Integer, Integer_Cdir_Opr, 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_tbl, IR_Tbl_Idx, IR_TYPE_IDX, Label, Label_Opr, Loc_Opr, MAX_INLINE_IR, MAX_INLINE_LABELS, new_label, next_label_slot, next_pgm_idx, NO_Tbl_Idx, Not_Opr, npi, NTR_ATTR_TBL, NTR_IR_LIST_TBL, NTR_IR_TBL, ntr_stor_blk_tbl(), NULL, NULL_IDX, Null_Opr, Numarg_Opr, number_of_dummy_args, old_label, OPND_FLD, OPND_IDX, opt_flags, parallel_region, pgm_attr_idx, Plus_Opr, Present_Opr, PRINTMSG(), processing_ENTRY_called, Return_Opr, SB_BLANK_COMMON, SB_BLK_TYPE, SB_DEF_MULT_SCPS, SB_FIRST_ATTR_IDX, sb_len, SB_LEN_FLD, SB_LEN_IDX, sb_name, SB_NAME_LEN, SB_NAME_PTR, SB_SCP_IDX, Section_Subscript_Opr, set_up_logical_constant(), SH_Tbl_Idx, srch_global_name_tbl(), srch_stor_blk_tbl(), Static, Static_Local, Static_Named, stor_blk_tbl, strcmp(), id_str_entry::string, sub, Subscript_Opr, Substring_Opr, table_overflow, Task_Common, THIS_IS_TRUE, Threadprivate, TRACE, Triplet_Opr, TRUE, TYP_CHAR_CLASS, TYP_LINEAR, TYP_TYPE, Use_Opr, User_Code_Start_Opr, Warning, What_Blk, Whole_Subscript_Opr, and Whole_Substring_Opr.
Referenced by make_copy_of_routine().
| void inline_processing | ( | int | first_sh_idx | ) |
Definition at line 3070 of file inline.c.
References call_col_number, call_line_number, call_sh, Continue_Stmt, curr_scp_idx, curr_stmt_sh_idx, Doall_Cmic_Opr, FALSE, Func_Entry, Func_Exit, i, inline_in_effect, Internal, IR_OPR, IR_Tbl_Idx, Loop_Info_Opr, loop_nest, MAX_INLINED_ROUTINES, next_pgm_idx, noinline_in_effect, npi, NULL, NULL_IDX, parallel_region, PRINTMSG(), SCP_FIRST_CHILD_IDX, SCP_FIRST_SH_IDX, SCP_SIBLING_IDX, SH_DOALL_LOOP_END, SH_IR_IDX, SH_NEXT_IDX, SH_PARENT_BLK_IDX, SH_STMT_TYPE, something_was_inlined, srch_for_calls(), table_overflow, and TRACE.
Referenced by main().
| void make_copy_of_routine | ( | int | original_head | ) |
Definition at line 1816 of file inline.c.
References call_col_number, call_line_number, copy_head, copy_sbtree(), COPY_TBL_NTRY, Func_Entry, Func_Exit, IR_Tbl_Idx, ntr_sh_tbl(), NULL, NULL_IDX, SH_COL_NUM, sh_count, SH_GLB_LINE, SH_IR_IDX, SH_NEXT_IDX, SH_PREV_IDX, sh_tbl, and TRACE.
Referenced by srch_for_calls().
Definition at line 309 of file inline.c.
References Asg_Opr, Assignment_Stmt, Assumed_Size_Char, AT_SEMANTICS_DONE, AT_Tbl_Idx, ATD_STOR_BLK_IDX, ATD_TYPE_IDX, Before, call_col_number, call_line_number, call_sh, CG_INTEGER_DEFAULT_TYPE, Character, CN_INTEGER_THREE_IDX, CN_Tbl_Idx, COPY_OPND, curr_scp_idx, curr_stmt_sh_idx, Dv_Access_El_Len, Dv_Deref_Opr, FALSE, Func_Entry, Func_Exit, gen_compiler_tmp(), gen_sh(), inlinable, 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_OPND_L, IR_OPR, IR_Tbl_Idx, IR_TYPE_IDX, NTR_IR_TBL, NULL, OPND_FLD, OPND_IDX, Priv, SCP_SB_STACK_IDX, SH_IR_IDX, SH_P2_SKIP_ME, SH_PREV_IDX, Shiftr_Opr, TRACE, TRUE, TYP_CHAR_CLASS, and TYP_TYPE.
Referenced by srch_for_calls().
Definition at line 1877 of file inline.c.
References actual_arg_attrs, After, AL_ATTR_IDX, AL_NEXT_IDX, Aloc_Opr, array_element_to_scalar(), Asg_Opr, Assignment_Stmt, Assumed_Size_Char, AT_ACTUAL_ARG, AT_ATTR_LINK, AT_COMPILER_GEND, AT_DEF_IN_CHILD, AT_DEFINED, AT_HOST_ASSOCIATED, AT_IS_DARG, AT_OBJ_CLASS, AT_OBJ_NAME, AT_OBJ_NAME_PTR, AT_OPTIONAL, AT_REFERENCED, AT_SEMANTICS_DONE, AT_Tbl_Idx, ATD_ARRAY_IDX, ATD_AUTO_BASE_IDX, ATD_AUTOMATIC, ATD_CLASS, ATD_DV_ALIAS, ATD_IM_A_DOPE, ATD_INTENT, ATD_PE_ARRAY_IDX, ATD_RESHAPE_ARRAY_IDX, ATD_RESHAPE_ARRAY_OPT, ATD_STOR_BLK_IDX, ATD_TYPE_IDX, ATP_ELEMENTAL, ATP_FIRST_IDX, ATP_FIRST_SH_IDX, ATP_HAS_OVER_INDEXING, ATP_HAS_TASK_DIRS, ATP_INLINE_ALWAYS, ATP_INLINE_NEVER, ATP_NUM_DARGS, ATP_PGM_UNIT, ATP_PROC, ATP_RECURSIVE, ATP_RSLT_IDX, attr_list_tbl_idx, Based, Based_Blk, BD_LB_FLD, BD_LB_IDX, BD_RANK, Before, Br_Uncond_Opr, call_col_number, call_line_number, Call_Opr, call_sh, CG_INTEGER_DEFAULT_TYPE, Character, CHARACTER_DEFAULT_TYPE, character_to_character(), check_actual_and_dummy(), CLEAR_TBL_NTRY, cmd_line_flags, CN_INTEGER_THREE_IDX, CN_INTEGER_ZERO_IDX, CN_Tbl_Idx, col, Const_Len_Char, Const_Tmp_Loc_Opr, Continue_Stmt, COPY_COMMON_ATTR_INFO, copy_head, Copy_In_Opr, COPY_OPND, Copy_Out_Opr, copy_out_sh, copy_subtree(), COPY_VARIANT_ATTR_INFO, CREATE_ID, CRI_Ch_Ptr, CRI_Ch_Ptr_8, CRI_Ptr, curr_scp_idx, curr_stmt_sh_idx, Data_Obj, Dummy_Proc, Dv_Access_Base_Addr, Dv_Access_El_Len, Dv_Def_Asg_Opr, Dv_Whole_Copy_Opr, entry_label_attr_idx, exit_label_attr_idx, FALSE, find_base_attr(), find_left_attr(), find_prog_unit_tbl(), Func_Entry, Func_Exit, Function, function_call, gen_compiler_tmp(), gen_internal_lbl(), gen_sh(), Goto_Stmt, i, idx, IL_FLD, IL_IDX, IL_NEXT_LIST_IDX, IL_OPND, inlinable, Inline, Inline_Cdir_Opr, inline_in_effect, opt_flags_entry::inline_lvl, Inline_Lvl_1, Inline_Lvl_2, insert_sh_chain_before(), Intent_In, Intent_Out, Intrin_Proc, 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_Tbl_Idx, IR_TYPE_IDX, Label_Opr, loop_nest, make_copy_of_routine(), MAX_INLINE_ARGS, MAX_INLINED_ROUTINES, Minus_Opr, Module_Proc, next_copy_out_sh_idx, next_label_slot, next_pgm_idx, NO_Tbl_Idx, Noinline_Cdir_Opr, noinline_in_effect, npi, NTR_ATTR_LIST_TBL, NTR_IR_TBL, ntr_stor_blk_tbl(), ntr_type_tbl(), NULL, NULL_IDX, null_opnd, Null_Opr, number_of_actual_args, number_of_dummy_args, opnd, OPND_FLD, OPND_IDX, opt_flags, pgm_attr_idx, PRINTMSG(), Priv, processing_ENTRY_called, Referenced, cmd_line_flags_entry::runtime_arg_call, cmd_line_flags_entry::runtime_arg_count_only, cmd_line_flags_entry::runtime_argument, sb_len, sb_name, scalar_dope_to_scalar(), SCP_ATTR_IDX, SCP_RESHAPE_ARRAY_LIST, SCP_SB_STACK_IDX, sh_count, SH_INLINING_ATTEMPTED, SH_IR_IDX, SH_NEXT_IDX, SH_P2_SKIP_ME, SH_PREV_IDX, Shiftr_Opr, SN_ATTR_IDX, something_was_inlined, id_str_entry::string, Struct_Opr, Structure, sub, Subscript_Opr, Substring_Opr, table_overflow, TRACE, TRUE, TYP_CHAR_CLASS, TYP_FLD, TYP_IDX, TYP_LINEAR, TYP_RESOLVED, TYP_TYPE, TYP_WORK_IDX, type_tbl, TYPELESS_DEFAULT_TYPE, Variable, and Whole_Substring_Opr.
Referenced by inline_processing().
int actual_arg_attrs[MAX_INLINE_ARGS] [static] |
opnd_type actual_opnd[MAX_INLINE_ARGS] [static] |
int call_col_number [static] |
Definition at line 71 of file inline.c.
Referenced by array_element_to_scalar(), character_to_character(), check_actual_and_dummy(), copy_sbtree(), inline_processing(), make_copy_of_routine(), scalar_dope_to_scalar(), and srch_for_calls().
int call_line_number [static] |
Definition at line 70 of file inline.c.
Referenced by array_element_to_scalar(), character_to_character(), check_actual_and_dummy(), copy_sbtree(), inline_processing(), make_copy_of_routine(), scalar_dope_to_scalar(), and srch_for_calls().
int call_sh [static] |
Definition at line 63 of file inline.c.
Referenced by array_element_to_scalar(), character_to_character(), inline_processing(), scalar_dope_to_scalar(), and srch_for_calls().
int copy_head [static] |
int copy_out_sh[MAX_INLINE_ARGS] [static] |
opnd_type dummy_opnd[MAX_INLINE_ARGS] [static] |
int entry_label_attr_idx [static] |
int exit_label_attr_idx [static] |
opnd_type flipped_opnd[MAX_INLINE_ARGS] [static] |
boolean function_call [static] |
Definition at line 78 of file inline.c.
Referenced by character_to_character(), check_actual_and_dummy(), copy_sbtree(), expand_call(), GTY(), inlinable_function_p(), rest_of_compilation(), scalar_dope_to_scalar(), and srch_for_calls().
boolean inline_in_effect [static] |
Definition at line 80 of file inline.c.
Referenced by copy_sbtree(), inline_processing(), and srch_for_calls().
opnd_type linearized_offset[MAX_INLINE_ARGS][9] [static] |
int loop_nest [static] |
Definition at line 66 of file inline.c.
Referenced by compute_data_dependences_for_loop(), free_dependence_relations(), inline_processing(), linear_transform_loops(), srch_for_calls(), and WFE_Expand_Expr().
int new_label[MAX_INLINE_LABELS] [static] |
Definition at line 85 of file inline.c.
Referenced by CFG::Add_bb_to_edge(), BB_NODE::Add_label_stmtrep(), Build_CFG(), CG_Instrument_Arcs(), convert_nl_goto_receiver(), convert_nl_goto_reference(), copy_sbtree(), dead_or_predicable(), REGION::Edge_Splitting(), find_and_verify_loops(), find_block_label(), fix_crossing_conditional_branches(), lower_bit_field_id(), redirect_branch_edge(), redirect_edge_and_branch(), REGION_Exit_Whirl_Labels(), Rename_Labels_Gotos(), replace_label(), update_eh_label(), and vho_lower_check_labels().
int next_copy_out_sh_idx [static] |
int next_label_slot [static] |
int next_pgm_idx[MAX_INLINED_ROUTINES] [static] |
Definition at line 97 of file inline.c.
Referenced by copy_sbtree(), inline_processing(), and srch_for_calls().
boolean noinline_in_effect [static] |
int npi [static] |
Definition at line 65 of file inline.c.
Referenced by copy_sbtree(), inline_processing(), invalidate_nonnull_info(), and srch_for_calls().
int number_of_actual_args [static] |
int number_of_dummy_args [static] |
int old_label[MAX_INLINE_LABELS] [static] |
Definition at line 84 of file inline.c.
Referenced by copy_sbtree(), fix_crossing_conditional_branches(), redirect_branch_edge(), redirect_edge_and_branch(), Rename_Labels_Gotos(), replace_label(), and update_eh_label().
int parallel_region [static] |
int pgm_attr_idx [static] |
Definition at line 67 of file inline.c.
Referenced by assign_storage_blk(), attr_semantics(), character_to_character(), check_actual_and_dummy(), copy_sbtree(), cvrt_proc_to_pdg(), decl_semantics(), pgm_unit_semantics(), and srch_for_calls().
boolean processing_ENTRY_called [static] |
int sh_count [static] |
boolean something_was_inlined [static] |
opnd_type struct_tree[MAX_INLINE_ARGS] [static] |
opnd_type subscript_attr[9] [static] |
opnd_type subscripting_tree[MAX_INLINE_ARGS] [static] |
opnd_type substring_len[MAX_INLINE_ARGS] [static] |
opnd_type substring_offset[MAX_INLINE_ARGS] [static] |
opnd_type substringing_tree[MAX_INLINE_ARGS] [static] |
boolean table_overflow [static] |
Definition at line 74 of file inline.c.
Referenced by copy_sbtree(), inline_processing(), and srch_for_calls().
char USMID[] = "\n@(#)5.0_pl/sources/inline.c 5.8 08/09/99 17:48:48\n" [static] |
1.5.6