osprey/be/whirl2f/ty2f.cxx File Reference

#include "whirl2f_common.h"
#include "PUinfo.h"
#include "wn2f.h"
#include "ty2f.h"
#include "st2f.h"
#include "tcon2f.h"
#include "wn2f_load_store.h"

Include dependency graph for ty2f.cxx:

Go to the source code of this file.

Defines

#define NOT_BITFIELD_OR_IS_FIRST_OF_BITFIELD(f)   (!FLD_is_bit_field(f) || (FLD_is_bit_field(f) && (FLD_bofst(f) == 0) || FLD_bofst(f) > 16))
#define FLD_INFO_ALLOC_CHUNK   16

Typedefs

typedef void(* TY2F_HANDLER_FUNC )(TOKEN_BUFFER, TY_IDX)

Functions/Subroutines

static void TY2F_invalid (TOKEN_BUFFER decl_tokens, TY_IDX ty)
static void TY2F_scalar (TOKEN_BUFFER decl_tokens, TY_IDX ty)
static void TY2F_array (TOKEN_BUFFER decl_tokens, TY_IDX ty)
static void TY2F_struct (TOKEN_BUFFER decl_tokens, TY_IDX ty)
static void TY2F_pointer (TOKEN_BUFFER decl_tokens, TY_IDX ty)
static void TY2F_void (TOKEN_BUFFER decl_tokens, TY_IDX ty)
void WN2F_Append_Purple_Xsym (TOKEN_BUFFER tokens, ST *st)
static void TY2F_Append_Array_Bnd_Ph (TOKEN_BUFFER decl_tokens, ST_IDX arbnd, BOOL purple_assumed_size)
static void TY2F_Append_ARB (TOKEN_BUFFER decl_tokens, ARB_HANDLE arb, BOOL purple_assumed_size)
static void TY2F_Append_Assumed_Single_Dim (TOKEN_BUFFER decl_tokens, ST *st, TY_IDX element_ty)
static void TY2F_Purple_Ptr_As_Array (TOKEN_BUFFER decl_tokens, ST *st, TY_IDX element_ty)
static void TY2F_Purple_Assumed_Sized_Array (TOKEN_BUFFER decl_tokens, ST *st, TY_IDX ty)
static BOOL TY2F_is_character (TY_IDX ty)
static BOOL TY2F_Pointer_To_Dope (TY_IDX ty)
static FLD_PATH_INFONew_Fld_Path_Info (FLD_HANDLE fld)
static STAB_OFFSET TY2F_Fld_Size (FLD_HANDLE this_fld, mUINT64 max_size)
static FLD_PATH_INFOSelect_Best_Fld_Path (FLD_PATH_INFO *path1, FLD_PATH_INFO *path2, TY_IDX desired_ty, mUINT64 desired_offset)
static FLD_PATH_INFOConstruct_Fld_Path (FLD_HANDLE fld, TY_IDX struct_ty, TY_IDX desired_ty, mUINT64 desired_offset, mUINT64 max_fld_size)
static const char * TY2F_Fld_Name (FLD_HANDLE fld, BOOL common_or_equivalence, BOOL alt_return_name)
static void TY2F_Equivalence (TOKEN_BUFFER tokens, const char *equiv_name, const char *fld_name, STAB_OFFSET fld_ofst)
static void TY2F_Equivalence_FldList (TOKEN_BUFFER tokens, FLD_HANDLE fldlist, UINT equiv_var_idx, mUINT64 ofst, BOOL *common_block_equivalenced)
static void TY2F_Equivalence_List (TOKEN_BUFFER tokens, const TY_IDX struct_ty)
static void TY2F_Translate_Structure (TY_IDX ty)
static void TY2F_Translate_EquivCommon_PtrFld (TOKEN_BUFFER tokens, FLD_HANDLE fld)
static void TY2F_Declare_Common_Flds (TOKEN_BUFFER tokens, FLD_HANDLE fldlist, BOOL alt_return, BOOL *is_equiv)
static void TY2F_List_Common_Flds (TOKEN_BUFFER tokens, FLD_HANDLE fldlist)
void TY2F_translate (TOKEN_BUFFER tokens, TY_IDX ty)
void TY2F_Translate_Purple_Array (TOKEN_BUFFER tokens, ST *st, TY_IDX ty)
void TY2F_Translate_ArrayElt (TOKEN_BUFFER tokens, TY_IDX arr_ty_idx, STAB_OFFSET arr_ofst)
void TY2F_Translate_Common (TOKEN_BUFFER tokens, const char *name, TY_IDX ty_idx)
void TY2F_Translate_Equivalence (TOKEN_BUFFER tokens, TY_IDX ty_idx, BOOL alt_return)
void TY2F_Prepend_Structures (TOKEN_BUFFER tokens)
FLD_PATH_INFOTY2F_Free_Fld_Path (FLD_PATH_INFO *fld_path)
FLD_PATH_INFOTY2F_Get_Fld_Path (const TY_IDX struct_ty, const TY_IDX object_ty, STAB_OFFSET offset)
void TY2F_Translate_Fld_Path (TOKEN_BUFFER tokens, FLD_PATH_INFO *fld_path, BOOL deref, BOOL member_of_common, BOOL alt_ret_name, WN2F_CONTEXT context)
void TY2F_Fld_Separator (TOKEN_BUFFER tokens)
FLD_HANDLE TY2F_Last_Fld (FLD_PATH_INFO *fld_path)
FLD_PATH_INFOTY2F_Point_At_Path (FLD_PATH_INFO *path, STAB_OFFSET off)
void TY2F_Dump_Fld_Path (FLD_PATH_INFO *fld_path)

Variables

BOOL Use_Purple_Array_Bnds_Placeholder = FALSE
static const TY2F_HANDLER_FUNC TY2F_Handler [KIND_LAST]
static FLD_PATH_INFOFree_Fld_Path_Info = NULL
static TOKEN_BUFFER TY2F_Structure_Decls = NULL


Define Documentation

#define FLD_INFO_ALLOC_CHUNK   16

Definition at line 372 of file ty2f.cxx.

Referenced by New_Fld_Path_Info().

#define NOT_BITFIELD_OR_IS_FIRST_OF_BITFIELD ( f   )     (!FLD_is_bit_field(f) || (FLD_is_bit_field(f) && (FLD_bofst(f) == 0) || FLD_bofst(f) > 16))

Definition at line 98 of file ty2f.cxx.

Referenced by TY2F_Get_Fld_Path(), and TY2F_Translate_Structure().


Typedef Documentation

Definition at line 75 of file ty2f.cxx.


Function Documentation

static FLD_PATH_INFO* Construct_Fld_Path ( FLD_HANDLE  fld,
TY_IDX  struct_ty,
TY_IDX  desired_ty,
mUINT64  desired_offset,
mUINT64  max_fld_size 
) [static]

static FLD_PATH_INFO* New_Fld_Path_Info ( FLD_HANDLE  fld  )  [static]

static FLD_PATH_INFO* Select_Best_Fld_Path ( FLD_PATH_INFO path1,
FLD_PATH_INFO path2,
TY_IDX  desired_ty,
mUINT64  desired_offset 
) [static]

static void TY2F_Append_ARB ( TOKEN_BUFFER  decl_tokens,
ARB_HANDLE  arb,
BOOL  purple_assumed_size 
) [static]

static void TY2F_Append_Array_Bnd_Ph ( TOKEN_BUFFER  decl_tokens,
ST_IDX  arbnd,
BOOL  purple_assumed_size 
) [static]

Definition at line 126 of file ty2f.cxx.

References Append_Token_String(), p, sprintf(), ST_name, and ST_ptr().

Referenced by TY2F_Append_ARB().

static void TY2F_Append_Assumed_Single_Dim ( TOKEN_BUFFER  decl_tokens,
ST st,
TY_IDX  element_ty 
) [static]

static void TY2F_array ( TOKEN_BUFFER  decl_tokens,
TY_IDX  ty 
) [static]

static void TY2F_Declare_Common_Flds ( TOKEN_BUFFER  tokens,
FLD_HANDLE  fldlist,
BOOL  alt_return,
BOOL is_equiv 
) [static]

void TY2F_Dump_Fld_Path ( FLD_PATH_INFO fld_path  ) 

static void TY2F_Equivalence ( TOKEN_BUFFER  tokens,
const char *  equiv_name,
const char *  fld_name,
STAB_OFFSET  fld_ofst 
) [static]

Definition at line 737 of file ty2f.cxx.

References Append_Token_Special(), Append_Token_String(), and Number_as_String().

Referenced by TY2F_Equivalence_FldList().

static void TY2F_Equivalence_FldList ( TOKEN_BUFFER  tokens,
FLD_HANDLE  fldlist,
UINT  equiv_var_idx,
mUINT64  ofst,
BOOL common_block_equivalenced 
) [static]

static void TY2F_Equivalence_List ( TOKEN_BUFFER  tokens,
const TY_IDX  struct_ty 
) [static]

static const char* TY2F_Fld_Name ( FLD_HANDLE  fld,
BOOL  common_or_equivalence,
BOOL  alt_return_name 
) [static]

void TY2F_Fld_Separator ( TOKEN_BUFFER  tokens  ) 

Definition at line 1615 of file ty2f.cxx.

References Append_Token_Special(), p, and WN2F_F90_pu.

Referenced by TY2F_Translate_Fld_Path(), and WN2F_Offset_Memref().

static STAB_OFFSET TY2F_Fld_Size ( FLD_HANDLE  this_fld,
mUINT64  max_size 
) [static]

FLD_PATH_INFO* TY2F_Free_Fld_Path ( FLD_PATH_INFO fld_path  ) 

FLD_PATH_INFO* TY2F_Get_Fld_Path ( const TY_IDX  struct_ty,
const TY_IDX  object_ty,
STAB_OFFSET  offset 
)

static void TY2F_invalid ( TOKEN_BUFFER  decl_tokens,
TY_IDX  ty 
) [static]

static BOOL TY2F_is_character ( TY_IDX  ty  )  [static]

Definition at line 362 of file ty2f.cxx.

References KIND_ARRAY, TY_etype, TY_is_character, and TY_kind.

Referenced by Construct_Fld_Path().

FLD_HANDLE TY2F_Last_Fld ( FLD_PATH_INFO fld_path  ) 

Definition at line 1628 of file ty2f.cxx.

References f, Fld_Path_Info::fld, Fld_Path_Info::next, and NULL.

Referenced by WN2F_String_Argument().

static void TY2F_List_Common_Flds ( TOKEN_BUFFER  tokens,
FLD_HANDLE  fldlist 
) [static]

FLD_PATH_INFO* TY2F_Point_At_Path ( FLD_PATH_INFO path,
STAB_OFFSET  off 
)

static void TY2F_pointer ( TOKEN_BUFFER  decl_tokens,
TY_IDX  ty 
) [static]

static BOOL TY2F_Pointer_To_Dope ( TY_IDX  ty  )  [static]

Definition at line 377 of file ty2f.cxx.

References strcmp(), TY_name, and TY_pointed.

Referenced by TY2F_pointer().

void TY2F_Prepend_Structures ( TOKEN_BUFFER  tokens  ) 

Definition at line 1492 of file ty2f.cxx.

References NULL, and Prepend_And_Reclaim_Token_List().

Referenced by ST2F_decl_var(), and ST2F_Declare_Return_Type().

static void TY2F_Purple_Assumed_Sized_Array ( TOKEN_BUFFER  decl_tokens,
ST st,
TY_IDX  ty 
) [static]

static void TY2F_Purple_Ptr_As_Array ( TOKEN_BUFFER  decl_tokens,
ST st,
TY_IDX  element_ty 
) [static]

static void TY2F_scalar ( TOKEN_BUFFER  decl_tokens,
TY_IDX  ty 
) [static]

static void TY2F_struct ( TOKEN_BUFFER  decl_tokens,
TY_IDX  ty 
) [static]

void TY2F_translate ( TOKEN_BUFFER  tokens,
TY_IDX  ty 
)

void TY2F_Translate_ArrayElt ( TOKEN_BUFFER  tokens,
TY_IDX  arr_ty_idx,
STAB_OFFSET  arr_ofst 
)

void TY2F_Translate_Common ( TOKEN_BUFFER  tokens,
const char *  name,
TY_IDX  ty_idx 
)

void TY2F_Translate_Equivalence ( TOKEN_BUFFER  tokens,
TY_IDX  ty_idx,
BOOL  alt_return 
)

static void TY2F_Translate_EquivCommon_PtrFld ( TOKEN_BUFFER  tokens,
FLD_HANDLE  fld 
) [static]

void TY2F_Translate_Fld_Path ( TOKEN_BUFFER  tokens,
FLD_PATH_INFO fld_path,
BOOL  deref,
BOOL  member_of_common,
BOOL  alt_ret_name,
WN2F_CONTEXT  context 
)

void TY2F_Translate_Purple_Array ( TOKEN_BUFFER  tokens,
ST st,
TY_IDX  ty 
)

static void TY2F_Translate_Structure ( TY_IDX  ty  )  [static]

static void TY2F_void ( TOKEN_BUFFER  decl_tokens,
TY_IDX  ty 
) [static]

void WN2F_Append_Purple_Xsym ( TOKEN_BUFFER  tokens,
ST st 
)


Variable Documentation

Definition at line 373 of file ty2f.cxx.

const TY2F_HANDLER_FUNC TY2F_Handler[KIND_LAST] [static]

Initial value:

Definition at line 84 of file ty2f.cxx.

Referenced by TY2F_translate().

Definition at line 733 of file ty2f.cxx.

Definition at line 67 of file ty2f.cxx.

Referenced by ST2F_decl_var(), and WN2F_translate_purple_main().


Generated on Wed Apr 8 14:37:07 2009 for Open64 by  doxygen 1.5.6