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

Go to the source code of this file.

Functions

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]

Function Documentation

int copy_sbtree ( int  idx,
fld_type  fld 
)

Definition at line 700 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, idx, 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, name, 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, id_str_entry::string, 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().

Here is the call graph for this function:

void make_copy_of_routine ( int  original_head)
void srch_for_calls ( int  ir_idx,
fld_type  field 
)

Definition at line 1869 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, 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, 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_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, 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().

Here is the call graph for this function:


Variable Documentation

Definition at line 82 of file inline.c.

Referenced by srch_for_calls().

Definition at line 84 of file inline.c.

int copy_head [static]

Definition at line 77 of file inline.c.

Referenced by make_copy_of_routine(), and srch_for_calls().

Definition at line 92 of file inline.c.

Referenced by srch_for_calls().

Definition at line 85 of file inline.c.

int entry_label_attr_idx [static]

Definition at line 64 of file inline.c.

Referenced by copy_sbtree(), and srch_for_calls().

int exit_label_attr_idx [static]

Definition at line 65 of file inline.c.

Referenced by copy_sbtree(), and srch_for_calls().

Definition at line 83 of file inline.c.

Definition at line 71 of file inline.c.

Referenced by srch_for_calls().

Definition at line 76 of file inline.c.

Referenced by copy_sbtree(), inline_processing(), and srch_for_calls().

Definition at line 90 of file inline.c.

int loop_nest [static]

Definition at line 62 of file inline.c.

Referenced by inline_processing(), and srch_for_calls().

Definition at line 81 of file inline.c.

Referenced by copy_sbtree().

int next_copy_out_sh_idx [static]

Definition at line 79 of file inline.c.

Referenced by srch_for_calls().

int next_label_slot [static]

Definition at line 78 of file inline.c.

Referenced by copy_sbtree(), and srch_for_calls().

Definition at line 93 of file inline.c.

Referenced by copy_sbtree(), inline_processing(), and srch_for_calls().

Definition at line 75 of file inline.c.

Referenced by inline_processing(), and srch_for_calls().

int npi [static]

Definition at line 61 of file inline.c.

Referenced by copy_sbtree(), inline_processing(), and srch_for_calls().

int number_of_actual_args [static]

Definition at line 68 of file inline.c.

Referenced by srch_for_calls().

int number_of_dummy_args [static]

Definition at line 69 of file inline.c.

Referenced by copy_sbtree(), and srch_for_calls().

Definition at line 80 of file inline.c.

Referenced by copy_sbtree().

int parallel_region [static]

Definition at line 58 of file inline.c.

Referenced by copy_sbtree(), and inline_processing().

Definition at line 73 of file inline.c.

Referenced by copy_sbtree(), and srch_for_calls().

int sh_count [static]

Definition at line 60 of file inline.c.

Referenced by make_copy_of_routine(), and srch_for_calls().

Definition at line 72 of file inline.c.

Referenced by inline_processing(), and srch_for_calls().

Definition at line 88 of file inline.c.

opnd_type subscript[9] [static]

Definition at line 94 of file inline.c.

Referenced by cwh_addr_add_bound(), and cwh_addr_do_bounds_check().

Definition at line 95 of file inline.c.

Definition at line 86 of file inline.c.

Definition at line 91 of file inline.c.

Definition at line 89 of file inline.c.

Referenced by interpret_ref().

Definition at line 87 of file inline.c.

Definition at line 70 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]

Definition at line 37 of file inline.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines