Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
Go to the source code of this file.
enum STACK_DIR |
Definition at line 69 of file data_layout.h.
enum STACK_MODEL |
Definition at line 72 of file data_layout.h.
void Allocate_File_Statics | ( | void | ) |
Definition at line 2470 of file data_layout.cxx.
References Allocate_Object(), CLASS_CONST, CLASS_VAR, DevWarn(), Emit_Global_Data, For_all(), FOREACH_SYMBOL, Get_Trace(), GLOBAL_SYMTAB, Has_Base_Block(), SCLASS_COMMON, SCLASS_REG, Set_ST_base(), St_Attr_Table, ST_ATTR_Table_Size(), ST_class(), ST_export(), ST_index(), ST_is_fill_align(), ST_is_reshaped(), ST_name(), ST_name_idx(), ST_sclass(), ST_type(), TP_DATALAYOUT, Trace_Frame, and TY_size().
Referenced by Phase_Init().
void Allocate_Object | ( | ST * | st | ) |
Definition at line 2330 of file data_layout.cxx.
References _SEC_BSS, _SEC_CPLINIT, _SEC_DATA, _SEC_DISTR_ARRAY, _SEC_EH_REGION, _SEC_EH_REGION_SUPP, _SEC_LBSS, _SEC_LDATA, _SEC_RDATA, _SEC_TEXT, _SEC_THREAD_PRIVATE_FUNCS, Adjusted_Alignment(), Allocate_Object_To_Section(), Assign_Object_To_Section(), Assign_ST_To_Named_Section(), Base_Symbol(), Clear_ST_is_not_used(), DevWarn(), FALSE, File_info, FILE_INFO_ipa(), Find_Section_Name_For_ST(), Has_Base_Block(), Is_Allocated(), Is_True, Make_Align_Type(), name, NULL, Process_Stack_Variable(), SCLASS_AUTO, SCLASS_COMMON, SCLASS_CPLINIT, SCLASS_DGLOBAL, SCLASS_DISTR_ARRAY, SCLASS_EH_REGION, SCLASS_EH_REGION_SUPP, SCLASS_EXTERN, SCLASS_FORMAL, SCLASS_FORMAL_REF, SCLASS_FSTATIC, SCLASS_PSTATIC, SCLASS_REG, SCLASS_TEXT, SCLASS_THREAD_PRIVATE_FUNCS, SCLASS_UGLOBAL, SCLASS_UNKNOWN, Set_ST_gprel(), Set_ST_type(), SF_Block, SFSEG_FORMAL, Shorten_Section(), ST_has_named_section(), ST_init_value_zero(), ST_is_constant(), ST_is_initialized(), ST_is_not_used(), ST_is_thread_private(), ST_is_weak_symbol(), ST_sclass(), and ST_type().
Referenced by Allocate_File_Statics(), Fill_Align_Symbol(), Finalize_Stack_Frame(), finalize_inito::operator()(), and St_Block_Union().
void Allocate_Temp_To_Memory | ( | ST * | st | ) |
Definition at line 2111 of file data_layout.cxx.
References Is_True, Process_Stack_Variable(), SCLASS_AUTO, Set_ST_is_temp_var(), and ST_sclass().
Referenced by Allocate_Local_Spill_Sym().
ST* Allocate_Vararg_Formal | ( | void | ) |
void Calculate_Stack_Frame_Sizes | ( | WN * | PU_tree | ) |
Definition at line 1867 of file data_layout.cxx.
References Allocate_Local_Spill_Sym(), Bind_Stack_Frame(), Current_PU_Actual_Size, FP_Sym, fprintf(), Get_Current_PU_ST(), Init_Frame_For_PU(), MAX, Max_Arg_Area_Bytes(), Merge_Fixed_Stack_Frame(), MTYPE_byte_size, ROUNDUP, SP_Sym, Spill_Int_Mtype, ST_asm_function_st(), TFile, and Trace_Frame.
Referenced by Do_WOPT_and_CG_with_Regions().
void Check_Actual_Stack_Size | ( | WN * | call_tree | ) |
Definition at line 1104 of file data_layout.cxx.
References Calc_Actual_Area(), Current_PU_Actual_Size, FALSE, FmtAssert, OPR_CALL, OPR_ICALL, OPR_PICCALL, ST_pu_type(), WN_operator(), WN_st(), and WN_ty().
INT64 Finalize_Stack_Frame | ( | void | ) |
Definition at line 2008 of file data_layout.cxx.
References Allocate_Object(), Assign_Offset(), CLASS_VAR, Clear_Vararg_Symbols(), Current_PU_Stack_Model, CURRENT_SYMTAB, DevWarn(), Early_Terminate(), EC_LAY_stack_limit, ErrMsg(), FmtAssert, For_all(), FOREACH_SYMBOL, FP_Sym, fprintf(), Frame_Has_Calls, Get_Current_PU(), Inito_Table, MAX, Max_Small_Frame_Offset, MERGE_SEGMENT, PU_has_nested(), RC_OVERFLOW_ERROR, ROUNDUP, SEG_SIZE, Set_Error_Phase(), Set_ST_base(), SF_Block, SFSEG_FORMAL, SFSEG_UPFORMAL, SMODEL_DYNAMIC, SMODEL_LARGE, SMODEL_SMALL, SP_Sym, ST_class(), ST_has_nested_ref(), ST_is_not_used(), stack_align, Stack_Offset_Adjustment, STB_size(), TFile, Trace_Frame, Trace_Stack_Segments(), and TRUE.
ST* Find_Special_Return_Address_Symbol | ( | void | ) |
Definition at line 838 of file data_layout.cxx.
References CURRENT_SYMTAB, For_all_until(), NULL, ST_ptr(), and St_Table.
Referenced by Initialize_Stack_Frame().
ST* Get_Altentry_UpFormal_Symbol | ( | ST * | formal, |
PLOC | ploc | ||
) |
Definition at line 1435 of file data_layout.cxx.
References Assign_Object_To_Frame_Segment(), Clear_ST_gprel(), Copy_ST(), Formal_Save_Area_Size, MTYPE_byte_size, PLOC_offset, Pointer_Mtype, PUSH_FRAME_POINTER_ON_STACK, PUSH_RETURN_ADDRESS_ON_STACK, Save_Str2(), SCLASS_FORMAL, Set_ST_name, Set_ST_sclass(), SFSEG_UPFORMAL, and ST_name().
Definition at line 803 of file data_layout.cxx.
References arg_area_size_array, Init_PU_arg_area_size_array(), Is_True, KIND_FUNCTION, max_arg_area_size_index, TY_id(), and TY_kind().
Referenced by Calc_Formal_Area().
PREG_NUM Get_ST_formal_preg_num | ( | const ST * | base | ) |
Definition at line 409 of file data_layout.cxx.
References formal_info_array, max_formal_info_index, NULL, and formal_info::preg.
Referenced by Formal_Sym(), and ST_has_formal_preg_num().
ST* Get_ST_formal_ref_base | ( | const ST * | sym | ) |
Definition at line 375 of file data_layout.cxx.
References formal_info::base, formal_info_array, max_formal_info_index, NULL, SCLASS_FORMAL_REF, and ST_sclass().
Referenced by Formal_Sym().
ST* Get_Vararg_Symbol | ( | PLOC | ) |
Definition at line 1318 of file data_layout.cxx.
References First_Int_Preg_Param_Offset, Is_True, MAX_NUMBER_OF_REGISTER_PARAMETERS, PLOC_reg, and vararg_symbols.
void Initialize_Stack_Frame | ( | WN * | PU_tree | ) |
Definition at line 1754 of file data_layout.cxx.
References Add_Object_To_Frame_Segment(), Allocate_All_Formals(), Calc_Formal_Area(), Calc_Local_Area(), Choose_Stack_Model(), CLASS_VAR, Create_Base_Reg(), Current_PU_Actual_Size, Current_PU_Stack_Model, DECREMENT, DEFAULT_TEMP_SPACE_BYTES, EXPORT_LOCAL, FALSE, Find_Special_Return_Address_Symbol(), FmtAssert, FP_Sym, fprintf(), Frame_Has_Calls, Get_Current_PU(), Get_Trace(), INCREMENT, Init_Formal_Segments(), Init_PU_arg_area_size_array(), Init_Segment_Descriptors(), Max_Arg_Area_Bytes(), MTYPE_byte_size, MTYPE_To_TY, New_ST(), OPC_FUNC_ENTRY, Pointer_Mtype, PU_has_return_address(), PUSH_FRAME_POINTER_ON_STACK, PUSH_RETURN_ADDRESS_ON_STACK, ROUNDUP, Save_Str(), SCLASS_AUTO, Set_Error_Phase(), Set_ST_base(), Set_ST_ofst(), SFSEG_UPFORMAL, SP_Sym, Spill_Int_Mtype, ST_asm_function_st(), ST_class(), ST_export(), ST_Init(), ST_name(), ST_sclass(), stack_direction, TFile, TP_DATALAYOUT, Trace_Frame, TRUE, WN_opcode(), and WN_st().
Referenced by Do_WOPT_and_CG_with_Regions().
BOOL Is_Allocated | ( | ST * | st | ) |
Definition at line 218 of file data_layout.cxx.
References Base_Symbol_And_Offset(), CLASS_BLOCK, Is_root_base, SCLASS_FORMAL, ST_class(), ST_sclass(), and TRUE.
Referenced by Allocate_Object(), and Formal_Sym().
void Pad_Global_Arrays | ( | ) |
Definition at line 2643 of file data_layout.cxx.
References For_all(), GLOBAL_SYMTAB, and St_Table.
Referenced by Phase_Init().
void Reset_UPFORMAL_Segment | ( | void | ) |
Definition at line 1214 of file data_layout.cxx.
References block, INCREMENT, Initialize_Frame_Segment(), SCLASS_AUTO, Set_ST_ofst(), Set_STB_size(), SF_Block, and SFSEG_UPFORMAL.
Referenced by Allocate_All_Formals().
void Set_PU_arg_area_size | ( | PU_IDX | , |
UINT32 | size | ||
) |
Definition at line 816 of file data_layout.cxx.
References arg_area_size_array, Init_PU_arg_area_size_array(), Is_True, KIND_FUNCTION, max_arg_area_size_index, size, TY_id(), and TY_kind().
Referenced by Calc_Actual_Area(), and Calc_Formal_Area().
void Set_ST_formal_preg_num | ( | const ST * | base, |
PREG_NUM | p | ||
) |
Definition at line 422 of file data_layout.cxx.
References FALSE, formal_info_array, Is_True, max_formal_info_index, and formal_info::preg.
Referenced by Formal_Sym().
void Set_ST_formal_ref_base | ( | const ST * | sym, |
ST * | base | ||
) |
Definition at line 390 of file data_layout.cxx.
References formal_info::base, formal_info_array, formal_info::level, max_formal_info_index, NULL, Realloc_ST_formal_info(), ST_level(), and formal_info::sym.
Referenced by Formal_Sym().
BOOL ST_has_formal_preg_num | ( | const ST *const | st | ) | [inline] |
Definition at line 156 of file data_layout.h.
References Get_ST_formal_preg_num(), SCLASS_FORMAL, and ST_sclass().
BOOL ST_on_stack | ( | ST * | ) |
Definition at line 247 of file data_layout.cxx.
References Base_Symbol(), FALSE, FP_Sym, SCLASS_AUTO, SCLASS_FORMAL, SP_Sym, ST_sclass(), and TRUE.
BOOL ST_pu_defined | ( | ST * | ) |
Definition at line 276 of file data_layout.cxx.
References CLASS_CONST, CLASS_VAR, FALSE, SCLASS_AUTO, SCLASS_DGLOBAL, SCLASS_FORMAL, SCLASS_FSTATIC, SCLASS_PSTATIC, ST_class(), ST_sclass(), and TRUE.
INT32 Stack_Alignment | ( | void | ) |
Definition at line 496 of file data_layout.cxx.
References stack_align.
Referenced by Adjusted_Alignment().
STACK_DIR Stack_Direction | ( | void | ) |
Definition at line 502 of file data_layout.cxx.
References stack_direction.
INT Stack_Offset_Adjustment_For_PU | ( | void | ) |
Definition at line 2650 of file data_layout.cxx.
References Frame_Has_Calls, and Stack_Offset_Adjustment.
BOOL Uses_Small_Offset | ( | ST * | st, |
WN_OFFSET | wn_ofst | ||
) |
Definition at line 2543 of file data_layout.cxx.
References CLASS_BLOCK, CLASS_CONST, CLASS_VAR, Current_PU_Stack_Model, FALSE, Large_Object_Bytes, SCLASS_AUTO, SCLASS_FORMAL, SMODEL_DYNAMIC, SMODEL_LARGE, SMODEL_SMALL, ST_class(), ST_gprel(), ST_sclass(), ST_size(), and TRUE.
Definition at line 94 of file data_layout.cxx.
Referenced by Calculate_Stack_Frame_Sizes(), Check_Actual_Stack_Size(), and Initialize_Stack_Frame().
Definition at line 95 of file data_layout.cxx.
Referenced by Allocate_Local_Spill_Sym(), Allocate_Space(), Bind_Stack_Frame(), Finalize_Stack_Frame(), Initialize_Stack_Frame(), Merge_Fixed_Stack_Frame(), Process_Stack_Variable(), and Uses_Small_Offset().
Definition at line 92 of file data_layout.cxx.
Referenced by Allocate_Space(), Calculate_Stack_Frame_Sizes(), Finalize_Stack_Frame(), Initialize_Stack_Frame(), Process_Stack_Variable(), and ST_on_stack().
Definition at line 93 of file data_layout.cxx.
Referenced by Allocate_Local_Spill_Sym().
Definition at line 91 of file data_layout.cxx.
Referenced by Allocate_Space(), Calculate_Stack_Frame_Sizes(), Finalize_Stack_Frame(), Initialize_Stack_Frame(), Process_Stack_Variable(), and ST_on_stack().