Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
data_layout.cxx File Reference
#include <cmplrs/rcodes.h>
#include <sys/resource.h>
#include <list>
#include "defs.h"
#include "erglob.h"
#include "erbe.h"
#include "config.h"
#include "tracing.h"
#include "strtab.h"
#include "stab.h"
#include "const.h"
#include "glob.h"
#include "mtypes.h"
#include "targ_const.h"
#include "targ_sim.h"
#include "ttype.h"
#include "irbdata.h"
#include "util.h"
#include "stblock.h"
#include "data_layout.h"
#include "wintrinsic.h"
#include "sections.h"
#include "betarget.h"
#include "intrn_info.h"
Include dependency graph for data_layout.cxx:

Go to the source code of this file.

Classes

struct  SF_SEG_DESC
struct  formal_info
struct  is_return_address
struct  Assign_Section_Names
struct  find_st_attr_secname
struct  finalize_inito
struct  pad_global_arrays

Defines

#define ST_force_gprel(s)   ST_gprel(s)
#define ST_NAME(st)
#define SFSEG_FIRST   SFSEG_ACTUAL
#define SFSEG_LAST   SFSEG_UPFORMAL
#define SFSEG_seg(s)   ((s)->seg)
#define SFSEG_block(s)   ((s)->block)
#define SFSEG_maxsize(s)   ((s)->maxsize)
#define SFSEG_name(s)   ((s)->name)
#define DEFAULT_LARGE_OBJECT_BYTES   64
#define DEFAULT_TEMP_SPACE_BYTES   4096
#define MAX_SFSEG_BYTES   0x7FFFFFFFFFFFFFFFLL
#define MAX_LARGE_FRAME_OFFSET   0x7FFFFFFFFFFFFFFFLL
#define MAX_FRAME_OFFSET
#define DEFAULT_STACK_ALIGNMENT   _QUAD_ALIGN
#define SF_Seg_Desc(n)   (&SF_Seg_Descriptors[n])
#define SF_Block(n)   (SFSEG_block(SF_Seg_Desc(n)))
#define SF_Maxsize(n)   (SFSEG_maxsize(SF_Seg_Desc(n)))
#define SF_Name(n)   (SFSEG_name(SF_Seg_Desc(n)))
#define Is_root_base(st)   (ST_class(st) == CLASS_BLOCK && STB_root_base(st))
#define Has_No_Base_Block(st)   (ST_base(st) == st)
#define Is_Allocatable(st)   (!Has_Base_Block(st) && !Is_root_base(st))
#define Is_Allocatable_Root_Block(st)   (ST_class(st) == CLASS_BLOCK && !Is_root_base(st) && Has_No_Base_Block(st))
#define ROUNDUP(val, align)   ( (-(INT64)align) & (INT64)(val+align-1) )
#define ROUNDDOWN(val, align)   ( (-(INT64)align) & (INT64)(val) )
#define IS_POW2(num)   ( (~((num)-1) & (num) ) == (num) )
#define vararg_symbols   ((ST * *)0)
#define SEG_SIZE(s)
#define MERGE_SEGMENT(base, seg, mxfrm)   ST_Block_Merge (base, SF_Block(seg), 0, 0, mxfrm)

Typedefs

typedef enum _align ALIGN

Enumerations

enum  SF_SEGMENT {
  SFSEG_UNKNOWN, SFSEG_ACTUAL, SFSEG_FTEMP, SFSEG_FORMAL,
  SFSEG_UPFORMAL
}
enum  _align {
  _BYTE_ALIGN = 1, _CARD_ALIGN = 2, _WORD_ALIGN = 4, _DWORD_ALIGN = 8,
  _QUAD_ALIGN = 16
}

Functions

void Early_Terminate (INT status)
static SECTION_IDX Shorten_Section (ST *, SECTION_IDX)
static void Allocate_Object_To_Section (ST *, SECTION_IDX, UINT)
static void Allocate_Label (ST *lab)
BOOL Is_Allocated (ST *st)
BOOL ST_on_stack (ST *sym)
BOOL ST_pu_defined (ST *sym)
static void Realloc_ST_formal_info (INT min_needed)
static void Init_ST_formal_info_for_PU (INT num_formals)
STGet_ST_formal_ref_base (const ST *sym)
void Set_ST_formal_ref_base (const ST *sym, ST *base)
PREG_NUM Get_ST_formal_preg_num (const ST *base)
void Set_ST_formal_preg_num (const ST *base, PREG_NUM p)
static STFormal_Sym (ST *sym, BOOL onstack)
INT32 Stack_Alignment (void)
STACK_DIR Stack_Direction (void)
static STACK_DIR Get_Direction (ST *blk)
static void Set_Direction (STACK_DIR dir, ST *blk)
static STCreate_Local_Block (STACK_DIR dir, STR_IDX name)
static STCreate_Base_Reg (char *name, STACK_DIR dir)
static void Assign_Offset (ST *blk, ST *base, INT32 lpad, INT32 rpad)
static void Allocate_Space (ST *base, ST *blk, INT32 lpad, INT32 rpad, INT64 maxsize)
static STST_Block_Merge (ST *block, ST *sym, INT32 lpad, INT32 rpad, INT64 maxsize)
static void Initialize_Frame_Segment (SF_SEGMENT seg, ST_SCLASS sclass, STACK_DIR dir)
static void Assign_Object_To_Frame_Segment (ST *sym, SF_SEGMENT seg, INT64 offset)
static void Add_Object_To_Frame_Segment (ST *sym, SF_SEGMENT seg, BOOL allocate)
static void Init_PU_arg_area_size_array (void)
UINT32 Get_PU_arg_area_size (TY_IDX pu)
void Set_PU_arg_area_size (TY_IDX pu, UINT32 size)
STFind_Special_Return_Address_Symbol (void)
static STGet_Section_ST (SECTION_IDX sec, UINT align, ST_SCLASS sclass)
static STGet_Section_ST_With_Given_Name (SECTION_IDX sec, ST_SCLASS sclass, STR_IDX name)
static void Assign_ST_To_Named_Section (ST *st, STR_IDX name)
STR_IDX Find_Section_Name_For_ST (const ST *st)
static INT32 Calc_Actual_Area (TY_IDX pu_type, WN *pu_tree)
void Check_Actual_Stack_Size (WN *call_tree)
static INT32 Max_Arg_Area_Bytes (WN *node)
void Reset_UPFORMAL_Segment (void)
static void Allocate_Entry_Formal (ST *formal, BOOL on_stack, BOOL in_formal_reg)
static TY_IDX Formal_ST_type (ST *sym)
static void Clear_Vararg_Symbols (void)
STGet_Vararg_Symbol (PLOC ploc)
static void Allocate_All_Formals (WN *pu)
STGet_Altentry_UpFormal_Symbol (ST *formal, PLOC ploc)
static void Calc_Formal_Area (WN *pu_tree, INT32 *formal_size, INT32 *upformal_size)
static INT64 Calc_Local_Area (void)
static void Init_Segment_Descriptors (void)
static void Init_Formal_Segments (INT32 formal_size, INT32 upformal_size)
static void Init_Frame_For_PU (INT32 actual_size)
static void Bind_Stack_Frame (ST *SP_baseST, ST *FP_baseST)
static void Merge_Fixed_Stack_Frame (ST *SP_baseST, ST *FP_baseST)
static STACK_MODEL Choose_Stack_Model (INT64 frame_size)
static void Allocate_Local_Spill_Sym (void)
void Initialize_Stack_Frame (WN *PU_tree)
void Calculate_Stack_Frame_Sizes (WN *PU_tree)
static void Process_Stack_Variable (ST *st)
static void Trace_Stack_Segments (char *msg, ST *SP_baseST, ST *FP_baseST)
INT64 Finalize_Stack_Frame (void)
void Allocate_Temp_To_Memory (ST *st)
static BOOL Is_String_Literal (ST *st)
static void Assign_Object_To_Section (ST *st, SECTION_IDX sec, UINT align)
void Allocate_Object (ST *st)
void Allocate_File_Statics (void)
BOOL Uses_Small_Offset (ST *st, WN_OFFSET wn_ofst)
static STCreate_Global_Array_ST (TYPE_ID emtype, INT num, char *name)
void Pad_Global_Arrays ()
INT Stack_Offset_Adjustment_For_PU (void)

Variables

STSP_Sym
STFP_Sym
STLocal_Spill_Sym
INT32 Current_PU_Actual_Size
STACK_MODEL Current_PU_Stack_Model = SMODEL_UNDEF
static BOOL Frame_Has_Calls
static STACK_DIR stack_direction
static INT16 stack_align = DEFAULT_STACK_ALIGNMENT
static SF_SEG_DESC SF_Seg_Descriptors [SFSEG_LAST+1]
static INT32 Large_Object_Bytes
static BOOL Trace_Frame = FALSE
static formal_infoformal_info_array
static INT max_formal_info_index = 0
static UINT32arg_area_size_array
static INT max_arg_area_size_index = 0

Define Documentation

#define DEFAULT_LARGE_OBJECT_BYTES   64

Definition at line 146 of file data_layout.cxx.

Referenced by Init_Frame_For_PU().

Definition at line 167 of file data_layout.cxx.

#define DEFAULT_TEMP_SPACE_BYTES   4096

Definition at line 148 of file data_layout.cxx.

Referenced by Initialize_Stack_Frame().

#define Has_No_Base_Block (   st)    (ST_base(st) == st)

Definition at line 202 of file data_layout.cxx.

Referenced by Allocate_Entry_Formal(), and finalize_inito::operator()().

#define Is_Allocatable (   st)    (!Has_Base_Block(st) && !Is_root_base(st))

Definition at line 203 of file data_layout.cxx.

#define Is_Allocatable_Root_Block (   st)    (ST_class(st) == CLASS_BLOCK && !Is_root_base(st) && Has_No_Base_Block(st))

Definition at line 204 of file data_layout.cxx.

Referenced by Process_Stack_Variable(), and Shorten_Section().

#define IS_POW2 (   num)    ( (~((num)-1) & (num) ) == (num) )
#define Is_root_base (   st)    (ST_class(st) == CLASS_BLOCK && STB_root_base(st))

Definition at line 201 of file data_layout.cxx.

Referenced by Is_Allocated().

Value:

Definition at line 152 of file data_layout.cxx.

Referenced by Init_Frame_For_PU(), and Process_Stack_Variable().

#define MAX_LARGE_FRAME_OFFSET   0x7FFFFFFFFFFFFFFFLL

Definition at line 151 of file data_layout.cxx.

Referenced by Choose_Stack_Model(), and Merge_Fixed_Stack_Frame().

#define MAX_SFSEG_BYTES   0x7FFFFFFFFFFFFFFFLL

Definition at line 149 of file data_layout.cxx.

Referenced by Init_Segment_Descriptors().

#define MERGE_SEGMENT (   base,
  seg,
  mxfrm 
)    ST_Block_Merge (base, SF_Block(seg), 0, 0, mxfrm)

Definition at line 1645 of file data_layout.cxx.

Referenced by Finalize_Stack_Frame(), and Merge_Fixed_Stack_Frame().

#define ROUNDDOWN (   val,
  align 
)    ( (-(INT64)align) & (INT64)(val) )

Definition at line 234 of file data_layout.cxx.

#define SEG_SIZE (   s)
Value:
(SF_Block(s) ? \
         STB_size(SF_Block(s)) : \
        ((SF_Maxsize(s) == MAX_SFSEG_BYTES) ? 0 : SF_Maxsize(s) ) )

Definition at line 1570 of file data_layout.cxx.

Referenced by Finalize_Stack_Frame(), and Init_Frame_For_PU().

#define SF_Seg_Desc (   n)    (&SF_Seg_Descriptors[n])

Definition at line 180 of file data_layout.cxx.

#define SFSEG_block (   s)    ((s)->block)

Definition at line 134 of file data_layout.cxx.

#define SFSEG_FIRST   SFSEG_ACTUAL

Definition at line 123 of file data_layout.cxx.

Referenced by Trace_Stack_Segments().

#define SFSEG_LAST   SFSEG_UPFORMAL

Definition at line 124 of file data_layout.cxx.

Referenced by Init_Segment_Descriptors(), and Trace_Stack_Segments().

#define SFSEG_maxsize (   s)    ((s)->maxsize)

Definition at line 135 of file data_layout.cxx.

#define SFSEG_name (   s)    ((s)->name)

Definition at line 136 of file data_layout.cxx.

#define SFSEG_seg (   s)    ((s)->seg)

Definition at line 133 of file data_layout.cxx.

#define ST_force_gprel (   s)    ST_gprel(s)

Definition at line 89 of file data_layout.cxx.

Referenced by Shorten_Section().

#define ST_NAME (   st)
Value:
(ST_class(st) == CLASS_CONST ? \
        Targ_Print(NULL,STC_val(st)) : ST_name(st) )

Definition at line 97 of file data_layout.cxx.

Referenced by Shorten_Section().

#define vararg_symbols   ((ST * *)0)

Definition at line 1303 of file data_layout.cxx.

Referenced by Allocate_All_Formals(), Clear_Vararg_Symbols(), and Get_Vararg_Symbol().


Typedef Documentation

typedef enum _align ALIGN

Enumeration Type Documentation

enum _align
Enumerator:
_BYTE_ALIGN 
_CARD_ALIGN 
_WORD_ALIGN 
_DWORD_ALIGN 
_QUAD_ALIGN 

Definition at line 156 of file data_layout.cxx.

enum SF_SEGMENT
Enumerator:
SFSEG_UNKNOWN 
SFSEG_ACTUAL 
SFSEG_FTEMP 
SFSEG_FORMAL 
SFSEG_UPFORMAL 

Definition at line 110 of file data_layout.cxx.


Function Documentation

static void Allocate_Label ( ST lab) [static]

Definition at line 2306 of file data_layout.cxx.

References _SEC_TEXT, Assign_Object_To_Section(), FmtAssert, SCLASS_TEXT, and ST_sclass().

Here is the call graph for this function:

static void Allocate_Local_Spill_Sym ( void  ) [static]

Definition at line 1741 of file data_layout.cxx.

References Allocate_Temp_To_Memory(), Current_PU_Stack_Model, Gen_Temp_Symbol(), Local_Spill_Sym, NULL, SMODEL_SMALL, and Spill_Int_Type.

Referenced by Calculate_Stack_Frame_Sizes().

Here is the call graph for this function:

static void Allocate_Object_To_Section ( ST st,
SECTION_IDX  sec,
UINT  align 
) [static]

Definition at line 2263 of file data_layout.cxx.

References block, Get_Section_ST(), IS_POW2, Is_True, SCLASS_UNKNOWN, SEC_max_sec_size, and ST_Block_Merge().

Referenced by Allocate_Entry_Formal(), and Allocate_Object().

Here is the call graph for this function:

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

Here is the call graph for this function:

static void Assign_Object_To_Frame_Segment ( ST sym,
SF_SEGMENT  seg,
INT64  offset 
) [static]

Definition at line 666 of file data_layout.cxx.

References fprintf(), INCREMENT, Initialize_Frame_Segment(), Set_ST_base(), Set_ST_ofst(), SF_Block, SF_Name, ST_name(), ST_sclass(), TFile, and Trace_Frame.

Referenced by Get_Altentry_UpFormal_Symbol().

Here is the call graph for this function:

static void Assign_Object_To_Section ( ST st,
SECTION_IDX  sec,
UINT  align 
) [static]

Definition at line 2290 of file data_layout.cxx.

References block, fprintf(), Get_Section_ST(), IS_POW2, Is_True, Set_ST_base(), ST_name(), ST_sclass(), TFile, and Trace_Frame.

Referenced by Allocate_Label(), and Allocate_Object().

Here is the call graph for this function:

static void Assign_Offset ( ST blk,
ST base,
INT32  lpad,
INT32  rpad 
) [static]

Definition at line 550 of file data_layout.cxx.

References Adjusted_Alignment(), ROUNDUP, Set_ST_ofst(), ST_ofst(), ST_size(), STB_decrement, and STB_size().

Referenced by Finalize_Stack_Frame().

Here is the call graph for this function:

static void Bind_Stack_Frame ( ST SP_baseST,
ST FP_baseST 
) [static]
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().

Here is the call graph for this function:

static void Clear_Vararg_Symbols ( void  ) [static]

Definition at line 1308 of file data_layout.cxx.

References MAX_NUMBER_OF_REGISTER_PARAMETERS, NULL, and vararg_symbols.

Referenced by Finalize_Stack_Frame().

static ST* Create_Base_Reg ( char *  name,
STACK_DIR  dir 
) [static]

Definition at line 531 of file data_layout.cxx.

References Create_Local_Block(), Save_Str(), Set_STB_is_basereg, and Set_STB_root_base.

Referenced by Initialize_Stack_Frame().

Here is the call graph for this function:

static ST* Create_Global_Array_ST ( TYPE_ID  emtype,
INT  num,
char *  name 
) [static]

Definition at line 2582 of file data_layout.cxx.

References CLASS_VAR, EXPORT_LOCAL, Make_Array_Type(), New_ST(), Save_Str(), SCLASS_UGLOBAL, Set_ST_pt_to_unique_mem(), and ST_Init().

Referenced by pad_global_arrays::operator()().

Here is the call graph for this function:

static ST* Create_Local_Block ( STACK_DIR  dir,
STR_IDX  name 
) [static]

Definition at line 522 of file data_layout.cxx.

References Enter_ST, FALSE, New_ST_Block(), SCLASS_UNKNOWN, Set_Direction(), and stack_align.

Referenced by Create_Base_Reg(), Init_Segment_Descriptors(), and Initialize_Frame_Segment().

Here is the call graph for this function:

Definition at line 997 of file data_layout.cxx.

References d, FmtAssert, For_all_until(), idx, ST_ATTR_section_name(), St_Attr_Table, ST_IDX_level(), ST_name(), and ST_st_idx().

Referenced by Allocate_Object().

Here is the call graph for this function:

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

Here is the call graph for this function:

static TY_IDX Formal_ST_type ( ST sym) [static]

Definition at line 1287 of file data_layout.cxx.

References Make_Pointer_Type(), SCLASS_FORMAL_REF, ST_sclass(), and ST_type().

Referenced by Allocate_All_Formals().

Here is the call graph for this function:

static STACK_DIR Get_Direction ( ST blk) [static]

Definition at line 508 of file data_layout.cxx.

References DECREMENT, INCREMENT, and STB_decrement.

Referenced by Bind_Stack_Frame().

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

Here is the call graph for this function:

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

Here is the call graph for this function:

static void Init_Formal_Segments ( INT32  formal_size,
INT32  upformal_size 
) [static]

Definition at line 1577 of file data_layout.cxx.

References ROUNDUP, SF_Maxsize, SFSEG_FORMAL, SFSEG_UPFORMAL, and stack_align.

Referenced by Initialize_Stack_Frame().

static void Init_PU_arg_area_size_array ( void  ) [static]
static void Init_Segment_Descriptors ( void  ) [static]

Definition at line 1552 of file data_layout.cxx.

References Create_Local_Block(), INCREMENT, MAX_SFSEG_BYTES, s, Save_Str2(), Set_ST_is_not_used(), SF_Block, SF_Maxsize, SF_Name, SFSEG_FORMAL, SFSEG_LAST, and SFSEG_UNKNOWN.

Referenced by Initialize_Stack_Frame().

Here is the call graph for this function:

static void Init_ST_formal_info_for_PU ( INT  num_formals) [static]
static void Initialize_Frame_Segment ( SF_SEGMENT  seg,
ST_SCLASS  sclass,
STACK_DIR  dir 
) [static]

Definition at line 655 of file data_layout.cxx.

References Create_Local_Block(), NULL, Save_Str2(), Set_ST_sclass(), SF_Block, and SF_Name.

Referenced by Add_Object_To_Frame_Segment(), Assign_Object_To_Frame_Segment(), and Reset_UPFORMAL_Segment().

Here is the call graph for this function:

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

Here is the call graph for this function:

static BOOL Is_String_Literal ( ST st) [static]

Definition at line 2127 of file data_layout.cxx.

References CLASS_CONST, CLASS_VAR, FALSE, KIND_ARRAY, MTYPE_STR, MTYPE_U1, ST_class(), ST_is_const_var(), ST_is_initialized(), ST_type(), STC_val(), TCON_ty, TRUE, TY_AR_etype(), TY_kind(), and TY_mtype().

Referenced by Shorten_Section().

Here is the call graph for this function:

Definition at line 2643 of file data_layout.cxx.

References For_all(), GLOBAL_SYMTAB, and St_Table.

Referenced by Phase_Init().

Here is the call graph for this function:

static void Realloc_ST_formal_info ( INT  min_needed) [static]
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().

Here is the call graph for this function:

static void Set_Direction ( STACK_DIR  dir,
ST blk 
) [static]

Definition at line 515 of file data_layout.cxx.

References DECREMENT, Reset_STB_decrement, and Set_STB_decrement.

Referenced by Bind_Stack_Frame(), and Create_Local_Block().

void Set_PU_arg_area_size ( TY_IDX  pu,
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().

Here is the call graph for this function:

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

Here is the call graph for this function:

static ST* ST_Block_Merge ( ST block,
ST sym,
INT32  lpad,
INT32  rpad,
INT64  maxsize 
) [static]
BOOL ST_on_stack ( ST sym)

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.

Here is the call graph for this function:

BOOL ST_pu_defined ( ST sym)

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.

Here is the call graph for this function:

INT32 Stack_Alignment ( void  )

Definition at line 496 of file data_layout.cxx.

References stack_align.

Referenced by Adjusted_Alignment().

Definition at line 502 of file data_layout.cxx.

References stack_direction.

Definition at line 2650 of file data_layout.cxx.

References Frame_Has_Calls, and Stack_Offset_Adjustment.

static void Trace_Stack_Segments ( char *  msg,
ST SP_baseST,
ST FP_baseST 
) [static]

Definition at line 1934 of file data_layout.cxx.

References block, fprintf(), NULL, s, SF_Block, SF_Maxsize, SF_Name, SFSEG_FIRST, SFSEG_LAST, size, ST_base(), ST_name(), ST_ofst(), STB_align(), STB_size(), and TFile.

Referenced by Finalize_Stack_Frame().

Here is the call graph for this function:


Variable Documentation

Definition at line 93 of file data_layout.cxx.

Referenced by Allocate_Local_Spill_Sym().

Initial value:
 {
  { SFSEG_UNKNOWN, NULL, MAX_SFSEG_BYTES, "Unknown" },
  { SFSEG_ACTUAL,  NULL, MAX_SFSEG_BYTES, "Actual_Arg" },
  { SFSEG_FTEMP,   NULL, MAX_SFSEG_BYTES, "Fixed_Temp" },
  { SFSEG_FORMAL,  NULL, MAX_SFSEG_BYTES, "Formal_Arg" },
  { SFSEG_UPFORMAL,  NULL, MAX_SFSEG_BYTES, "UpFormal_Arg" }
}

Definition at line 173 of file data_layout.cxx.

Definition at line 164 of file data_layout.cxx.

Referenced by Initialize_Stack_Frame(), and Stack_Direction().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines