osprey/kg++fe/wfe_decl.cxx File Reference

#include <values.h>
#include <sys/types.h>
#include <elf.h>
#include "defs.h"
#include "errors.h"
#include "gnu_config.h"
#include "gnu/flags.h"
#include "gnu/system.h"
#include "gnu/toplev.h"
#include "gnu/tree.h"
#include "cp-tree.h"
#include "c-pragma.h"
#include "glob.h"
#include "wn.h"
#include "wn_util.h"
#include "symtab.h"
#include "const.h"
#include "pu_info.h"
#include "ir_bwrite.h"
#include "ir_reader.h"
#include "wfe_decl.h"
#include "wfe_misc.h"
#include "wfe_dst.h"
#include "tree_symtab.h"
#include "wfe_expr.h"
#include "wfe_stmt.h"
#include "tree_cmp.h"
#include "targ_sim.h"

Include dependency graph for wfe_decl.cxx:

Go to the source code of this file.

Data Types

module  INITBUF

Functions/Subroutines

void check_gnu_errors (int *, int *)
static void Init_Deferred_Function_Stack ()
void Push_Deferred_Function (tree decl)
static tree Pop_Deferred_Function (void)
static void Init_Deferred_Decl_Init_Stack ()
void Push_Deferred_Decl_Init (tree decl)
static tree Pop_Deferred_Decl_Init (void)
static void Set_Current_Function_Decl (tree decl)
tree Current_Function_Decl (void)
static int WFE_Expand_Function_Body (tree decl)
void WFE_Finish_Function (void)
static void WFE_Generate_Thunk (tree decl)
static void process_local_classes ()
void WFE_Expand_Decl (tree decl)
static BOOL function_has_varargs (tree fndecl)
WNWFE_Start_Function (tree fndecl)
void WFE_Start_Aggregate_Init (tree decl)
void WFE_Add_Aggregate_Init_Padding (INT size)
void WFE_Add_Aggregate_Init_Integer (INT64 val, INT size)
float WFE_Convert_Internal_Real_to_IEEE_Single (REAL_VALUE_TYPE real)
double WFE_Convert_Internal_Real_to_IEEE_Double (REAL_VALUE_TYPE real)
long double WFE_Convert_Internal_Real_to_IEEE_Double_Extended (REAL_VALUE_TYPE real)
static void WFE_Add_Init_Block (void)
void WFE_Add_Aggregate_Init_Double (double val, INT size)
void WFE_Add_Aggregate_Init_Complex (REAL_VALUE_TYPE rval, REAL_VALUE_TYPE ival, INT size)
void WFE_Add_Aggregate_Init_String (char *s, INT size)
void WFE_Add_Aggregate_Init_Symoff (ST *st, WN_OFFSET offset=0)
void WFE_Add_Aggregate_Init_Label (LABEL_IDX lab)
void WFE_Add_Aggregate_Init_Address (tree init)
void WFE_Finish_Aggregate_Init (void)
static BOOL Has_Non_Constant_Init_Value (tree init)
static BOOL Use_Static_Init_For_Aggregate (ST *st, tree init)
static void Add_Initv_For_Tree (tree val, UINT size)
static void Add_Bitfield_Initv_For_Tree (tree val, FLD_HANDLE fld, INT &bytes)
static void Gen_Assign_Of_Init_Val (ST *st, tree init, UINT offset, UINT array_elem_offset, TY_IDX ty, BOOL is_bit_field, UINT field_id, FLD_HANDLE fld, INT &bytes)
UINT Traverse_Aggregate_Constructor (ST *st, tree init_list, tree type, BOOL gen_initv, UINT current_offset, UINT array_elem_offset, UINT field_id)
UINT Traverse_Aggregate_Struct (ST *st, tree init_list, tree type, BOOL gen_initv, UINT current_offset, UINT array_elem_offset, UINT field_id)
void Traverse_Aggregate_Pad (ST *st, BOOL gen_initv, UINT pad, UINT current_offset)
void Traverse_Aggregate_Array (ST *st, tree init_list, tree type, BOOL gen_initv, UINT current_offset)
static void Add_Inito_For_Tree (tree init, ST *st)
STWFE_Generate_Temp_For_Initialized_Aggregate (tree init, char *name)
void WFE_Initialize_Decl (tree decl)
void WFE_Decl (tree decl)
BOOL WFE_Assemble_Alias (tree decl, tree target)
STWFE_Get_Return_Address_ST (int level)
STWFE_Alloca_0 (void)
STWFE_Alloca_ST (tree decl)
void WFE_Dealloca (ST *alloca_st, tree vars)
void WFE_Record_Asmspec_For_ST (tree decl, char *asmspec, int reg)
void WFE_Resolve_Duplicate_Decls (tree olddecl, tree newdecl)
void WFE_Add_Weak ()
void WFE_Weak_Finish ()
void WFE_Process_Type_Decl (tree)
void WFE_Process_Template_Decl (tree)
void WFE_Process_Var_Decl (tree)
void WFE_Process_Function_Decl (tree)
void WFE_Process_Namespace_Decl (tree)
void WFE_Process_Decl (tree)
void WFE_Process_Class_Decl (tree decl)
bool decl_is_needed_vtable (tree decl)
void WFE_Expand_Top_Level_Decl (tree top_level_decl)

Variables

static treedeferred_function_stack
static INT32 deferred_function_i
static INT32 deferred_function_max
static treedeferred_decl_init_stack
static INT32 deferred_decl_init_i
static INT32 deferred_decl_init_max
PU_InfoPU_Tree_Root
static PU_InfoPU_Info_Table [258] = {0}
static STReturn_Address_ST [258] = {0}
static BOOL map_mempool_initialized = FALSE
static MEM_POOL Map_Mem_Pool
static tree curr_func_decl = NULL_TREE
static int __ctors = 0
static int __dtors = 0
static INITO_IDX aggregate_inito = 0
static INITV_IDX last_aggregate_initv = 0
static BOOL not_at_root = FALSE
static tree init_decl = NULL
tree weak_decls


Function Documentation

static void Add_Bitfield_Initv_For_Tree ( tree  val,
FLD_HANDLE  fld,
INT bytes 
) [static]

static void Add_Inito_For_Tree ( tree  init,
ST st 
) [static]

static void Add_Initv_For_Tree ( tree  val,
UINT  size 
) [static]

void check_gnu_errors ( int *  ,
int *   
)

tree Current_Function_Decl ( void   ) 

bool decl_is_needed_vtable ( tree  decl  ) 

static BOOL function_has_varargs ( tree  fndecl  )  [static]

static void Gen_Assign_Of_Init_Val ( ST st,
tree  init,
UINT  offset,
UINT  array_elem_offset,
TY_IDX  ty,
BOOL  is_bit_field,
UINT  field_id,
FLD_HANDLE  fld,
INT bytes 
) [static]

static BOOL Has_Non_Constant_Init_Value ( tree  init  )  [static]

static void Init_Deferred_Decl_Init_Stack ( void   )  [static]

static void Init_Deferred_Function_Stack ( void   )  [static]

static tree Pop_Deferred_Decl_Init ( void   )  [static]

Definition at line 186 of file wfe_decl.cxx.

References deferred_decl_init_i, and deferred_decl_init_stack.

Referenced by WFE_Initialize_Decl(), and WGEN_Initialize_Decl().

static tree Pop_Deferred_Function ( void   )  [static]

static void process_local_classes (  )  [static]

Definition at line 569 of file wfe_decl.cxx.

References Get_TY(), i, local_classes, and VARRAY_TREE.

Referenced by WFE_Expand_Decl(), and WGEN_Expand_Decl().

void Push_Deferred_Decl_Init ( tree  decl  ) 

void Push_Deferred_Function ( tree  decl  ) 

static void Set_Current_Function_Decl ( tree  decl  )  [static]

Definition at line 207 of file wfe_decl.cxx.

References curr_func_decl.

Referenced by WFE_Expand_Function_Body().

void Traverse_Aggregate_Array ( ST st,
tree  init_list,
tree  type,
BOOL  gen_initv,
UINT  current_offset 
)

UINT Traverse_Aggregate_Constructor ( ST st,
tree  init_list,
tree  type,
BOOL  gen_initv,
UINT  current_offset,
UINT  array_elem_offset,
UINT  field_id 
)

void Traverse_Aggregate_Pad ( ST st,
BOOL  gen_initv,
UINT  pad,
UINT  current_offset 
)

UINT Traverse_Aggregate_Struct ( ST st,
tree  init_list,
tree  type,
BOOL  gen_initv,
UINT  current_offset,
UINT  array_elem_offset,
UINT  field_id 
)

static BOOL Use_Static_Init_For_Aggregate ( ST st,
tree  init 
) [static]

void WFE_Add_Aggregate_Init_Address ( tree  init  ) 

Definition at line 1854 of file wfe_decl.cxx.

Referenced by Add_Inito_For_Tree(), Add_Initv_For_Tree(), and output_constant().

void WFE_Add_Aggregate_Init_Complex ( REAL_VALUE_TYPE  rval,
REAL_VALUE_TYPE  ival,
INT  size 
)

void WFE_Add_Aggregate_Init_Double ( double  val,
INT  size 
)

void WFE_Add_Aggregate_Init_Integer ( INT64  val,
INT  size 
)

void WFE_Add_Aggregate_Init_Label ( LABEL_IDX  lab  ) 

void WFE_Add_Aggregate_Init_Padding ( INT  size  ) 

void WFE_Add_Aggregate_Init_String ( char *  s,
INT  size 
)

void WFE_Add_Aggregate_Init_Symoff ( ST st,
WN_OFFSET  offset = 0 
)

static void WFE_Add_Init_Block ( void   )  [static]

Definition at line 1627 of file wfe_decl.cxx.

References New_INITV(), Set_INITO_val(), and Set_INITV_next().

Referenced by Traverse_Aggregate_Constructor().

void WFE_Add_Weak ( void   ) 

Definition at line 3649 of file wfe_decl.cxx.

ST* WFE_Alloca_0 ( void   ) 

Definition at line 3508 of file wfe_decl.cxx.

Referenced by Create_ST_For_Tree(), and expand_decl().

ST* WFE_Alloca_ST ( tree  decl  ) 

Definition at line 3524 of file wfe_decl.cxx.

Referenced by expand_decl().

BOOL WFE_Assemble_Alias ( tree  decl,
tree  target 
)

Definition at line 3363 of file wfe_decl.cxx.

Referenced by assemble_alias(), WFE_Expand_Decl(), and WFE_Expand_Top_Level_Decl().

double WFE_Convert_Internal_Real_to_IEEE_Double ( REAL_VALUE_TYPE  real  ) 

long double WFE_Convert_Internal_Real_to_IEEE_Double_Extended ( REAL_VALUE_TYPE  real  ) 

float WFE_Convert_Internal_Real_to_IEEE_Single ( REAL_VALUE_TYPE  real  ) 

void WFE_Dealloca ( ST alloca_st,
tree  vars 
)

Definition at line 3564 of file wfe_decl.cxx.

Referenced by expand_end_bindings(), and Pop_Scope_And_Do_Cleanups().

void WFE_Decl ( tree  decl  ) 

Definition at line 3345 of file wfe_decl.cxx.

Referenced by finish_decl(), and WFE_Expand_Expr().

void WFE_Expand_Decl ( tree  decl  ) 

static int WFE_Expand_Function_Body ( tree  decl  )  [static]

void WFE_Expand_Top_Level_Decl ( tree  top_level_decl  ) 

void WFE_Finish_Aggregate_Init ( void   ) 

void WFE_Finish_Function ( void   ) 

ST* WFE_Generate_Temp_For_Initialized_Aggregate ( tree  init,
char *  name 
)

static void WFE_Generate_Thunk ( tree  decl  )  [static]

ST* WFE_Get_Return_Address_ST ( int  level  ) 

Definition at line 3492 of file wfe_decl.cxx.

Referenced by WFE_Expand_Expr().

void WFE_Initialize_Decl ( tree  decl  ) 

Definition at line 3188 of file wfe_decl.cxx.

Referenced by finish_decl(), WFE_Address_Of(), and WFE_Expand_Decl().

void WFE_Process_Class_Decl ( tree  decl  ) 

void WFE_Process_Decl ( tree  decl  ) 

void WFE_Process_Function_Decl ( tree  decl  ) 

void WFE_Process_Namespace_Decl ( tree  namespace_decl  ) 

void WFE_Process_Template_Decl ( tree  decl  ) 

void WFE_Process_Type_Decl ( tree  decl  ) 

Definition at line 3746 of file wfe_decl.cxx.

References cp_type_quals(), TREE_CODE, TREE_TYPE, TYPE_UNQUALIFIED, and WFE_Process_Class_Decl().

Referenced by WFE_Process_Decl().

void WFE_Process_Var_Decl ( tree  decl  ) 

void WFE_Record_Asmspec_For_ST ( tree  decl,
char *  asmspec,
int  reg 
)

void WFE_Resolve_Duplicate_Decls ( tree  olddecl,
tree  newdecl 
)

Definition at line 3614 of file wfe_decl.cxx.

Referenced by duplicate_decls().

void WFE_Start_Aggregate_Init ( tree  decl  ) 

Definition at line 1534 of file wfe_decl.cxx.

Referenced by assemble_variable().

WN* WFE_Start_Function ( tree  fndecl  ) 

void WFE_Weak_Finish ( void   ) 

Definition at line 3665 of file wfe_decl.cxx.


Variable Documentation

int __ctors = 0 [static]

Definition at line 204 of file wfe_decl.cxx.

Referenced by WFE_Assemble_Constructor(), WFE_Start_Function(), and WGEN_Start_Function().

int __dtors = 0 [static]

Definition at line 205 of file wfe_decl.cxx.

Referenced by WFE_Assemble_Destructor(), WFE_Start_Function(), and WGEN_Start_Function().

INITO_IDX aggregate_inito = 0 [static]

tree curr_func_decl = NULL_TREE [static]

Definition at line 199 of file wfe_decl.cxx.

Referenced by Current_Function_Decl(), and Set_Current_Function_Decl().

Definition at line 161 of file wfe_decl.cxx.

Referenced by Init_Deferred_Decl_Init_Stack(), and Push_Deferred_Decl_Init().

Definition at line 120 of file wfe_decl.cxx.

Referenced by Init_Deferred_Function_Stack(), and Push_Deferred_Function().

tree init_decl = NULL [static]

Definition at line 197 of file wfe_decl.cxx.

BOOL map_mempool_initialized = FALSE [static]

BOOL not_at_root = FALSE [static]

PU_Info* PU_Info_Table[258] = {0} [static]

Definition at line 194 of file wfe_decl.cxx.

Definition at line 83 of file wfe_misc.cxx.

ST* Return_Address_ST[258] = {0} [static]

Definition at line 195 of file wfe_decl.cxx.


Generated on Wed Apr 8 15:48:40 2009 for Open64 by  doxygen 1.5.6