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

void array_element_to_scalar ( int  i,
int *  copy_out_array_element,
boolean  dummy_referenced,
boolean  dummy_modified 
)
void character_to_character ( int  i  ) 
boolean check_actual_and_dummy ( opnd_type  actual,
opnd_type  dummy,
int  arg 
)
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, CG_LOGICAL_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, 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, MAX_WORDS_FOR_INTEGER, MAX_WORDS_FOR_NUMERIC, 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 inline_processing ( int  first_sh_idx  ) 
void make_copy_of_routine ( int  original_head  ) 
void scalar_dope_to_scalar ( int  i,
int *  copy_out_DV_scalar,
boolean  dummy_referenced 
)
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

int actual_arg_attrs[MAX_INLINE_ARGS] [static]

Definition at line 82 of file inline.c.

Referenced by srch_for_calls().

opnd_type actual_opnd[MAX_INLINE_ARGS] [static]

Definition at line 84 of file inline.c.

int call_col_number [static]
int call_line_number [static]
int call_sh [static]
int copy_head [static]

Definition at line 77 of file inline.c.

Referenced by make_copy_of_routine(), and srch_for_calls().

int copy_out_sh[MAX_INLINE_ARGS] [static]

Definition at line 92 of file inline.c.

Referenced by srch_for_calls().

opnd_type dummy_opnd[MAX_INLINE_ARGS] [static]

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().

opnd_type flipped_opnd[MAX_INLINE_ARGS] [static]

Definition at line 83 of file inline.c.

Definition at line 71 of file inline.c.

Referenced by srch_for_calls().

boolean inlinable = TRUE [static]

Definition at line 76 of file inline.c.

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

opnd_type linearized_offset[MAX_INLINE_ARGS][9] [static]

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().

int new_label[MAX_INLINE_LABELS] [static]

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().

int next_pgm_idx[MAX_INLINED_ROUTINES] [static]

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().

int old_label[MAX_INLINE_LABELS] [static]

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().

int pgm_attr_idx [static]

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().

opnd_type struct_tree[MAX_INLINE_ARGS] [static]

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_do_bounds_check().

Definition at line 95 of file inline.c.

opnd_type subscripting_tree[MAX_INLINE_ARGS] [static]

Definition at line 86 of file inline.c.

opnd_type substring_len[MAX_INLINE_ARGS] [static]

Definition at line 91 of file inline.c.

opnd_type substring_offset[MAX_INLINE_ARGS] [static]

Definition at line 89 of file inline.c.

Referenced by interpret_ref().

opnd_type substringing_tree[MAX_INLINE_ARGS] [static]

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.


Generated on Tue Nov 17 06:20:18 2009 for Open64 (mfef90, whirl2f, and IR tools) by  doxygen 1.6.1