Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
wn2f_load_store.cxx File Reference
#include <climits>
#include "whirl2f_common.h"
#include "PUinfo.h"
#include "pf_cg.h"
#include "wn2f.h"
#include "st2f.h"
#include "ty2f.h"
#include "tcon2f.h"
#include "wn2f_load_store.h"
#include "ty_ftn.h"
Include dependency graph for wn2f_load_store.cxx:

Go to the source code of this file.

Defines

#define DEB_Whirl2f_IR_TY_WN2F_Arrsection_Slots   0
#define DEB_Whirl2f_IR_TY_WN2F_Arrsection_Slots_st1   0
#define WN2F_INTCONST_ZERO
#define WN2F_INTCONST_ONE

Functions

static void WN2F_Block (TOKEN_BUFFER tokens, ST *st, STAB_OFFSET off, WN2F_CONTEXT context)
void WN2F_Arrsection_Slots (TOKEN_BUFFER tokens, WN *wn, TY_IDX array_ty, WN2F_CONTEXT context, BOOL parens)
void WN2F_Array_Slots (TOKEN_BUFFER tokens, WN *wn, TY_IDX array_ty, WN2F_CONTEXT context, BOOL parens)
static STWN2F_Get_Named_Param (const WN *pu, const char *param_name)
static void WN2F_Translate_StringLEN (TOKEN_BUFFER tokens, ST *param_st)
static WNWN2F_Initiate_ZeroInt (void)
static WNWN2F_Initiate_OneInt (void)
static BOOL WN2F_Expr_Plus_Literal (TOKEN_BUFFER tokens, WN *wn, INT64 literal, WN2F_CONTEXT context)
static WN2F_STATUS WN2F_OLD_Den_Arr_Idx (TOKEN_BUFFER tokens, WN *idx_expr, WN2F_CONTEXT context)
static WN2F_STATUS WN2F_Denormalize_Array_Idx (TOKEN_BUFFER tokens, WN *idx_expr, WN2F_CONTEXT context)
static void WN2F_Normalize_Idx_To_Onedim (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
static void WN2F_Substring (TOKEN_BUFFER tokens, INT64 string_size, WN *lower_bnd, WN *substring_size, WN2F_CONTEXT context)
static void WN2F_Get_Substring_Info (WN **base, TY_IDX *string_ty, WN **lower_bnd, WN **length)
static WNWN2F_Find_Base (WN *addr)
BOOL WN2F_Is_Address_Preg (WN *ad, TY_IDX ptr_ty)
static void WN2F_Append_Prefetch_Map (TOKEN_BUFFER tokens, WN *wn)
void WN2F_Load_Store_initialize (void)
void WN2F_Load_Store_finalize (void)
WN2F_STATUS WN2F_pstore (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_istore (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_istorex (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_mstore (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_stid (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_pstid (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_iload (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_iloadx (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_mload (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_ldid (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_lda (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_arrayexp (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_triplet (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_src_triplet (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_arrsection (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_where (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_array (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
void WN2F_arrsection_bounds (TOKEN_BUFFER tokens, WN *wn, TY_IDX array_ty, WN2F_CONTEXT context)
void WN2F_array_bounds (TOKEN_BUFFER tokens, WN *wn, TY_IDX array_ty, WN2F_CONTEXT context)
void WN2F_String_Argument (TOKEN_BUFFER tokens, WN *base_parm, WN *length, WN2F_CONTEXT context)
WN2F_STATUS WN2F_strctfld (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)
WN2F_STATUS WN2F_comma (TOKEN_BUFFER tokens, WN *wn, WN2F_CONTEXT context)

Variables

BOOL W2F_Only_Mark_Loads
static WNWN2F_ZeroInt_Ptr = NULL
static WNWN2F_OneInt_Ptr = NULL
TY_IDX fld_type_z = 0

Define Documentation

Definition at line 70 of file wn2f_load_store.cxx.

Definition at line 71 of file wn2f_load_store.cxx.


Function Documentation

WN2F_STATUS WN2F_arrayexp ( TOKEN_BUFFER  tokens,
WN wn,
WN2F_CONTEXT  context 
)

Definition at line 1599 of file wn2f_load_store.cxx.

References EMPTY_WN2F_STATUS, WN2F_translate(), and WN_kid0().

Here is the call graph for this function:

static void WN2F_Block ( TOKEN_BUFFER  tokens,
ST st,
STAB_OFFSET  off,
WN2F_CONTEXT  context 
) [static]

Definition at line 2573 of file wn2f_load_store.cxx.

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

Referenced by WN2F_lda().

Here is the call graph for this function:

WN2F_STATUS WN2F_comma ( TOKEN_BUFFER  tokens,
WN wn,
WN2F_CONTEXT  context 
)

Definition at line 2625 of file wn2f_load_store.cxx.

References EMPTY_WN2F_STATUS, WN2F_translate(), and WN_kid1().

Here is the call graph for this function:

static WN* WN2F_Find_Base ( WN addr) [static]

Definition at line 655 of file wn2f_load_store.cxx.

References OPR_ADD, OPR_ARRAY, OPR_ILOAD, OPR_INTCONST, WN_kid0(), WN_kid1(), and WN_operator().

Referenced by WN2F_Is_Address_Preg().

Here is the call graph for this function:

static ST* WN2F_Get_Named_Param ( const WN pu,
const char *  param_name 
) [static]

Definition at line 95 of file wn2f_load_store.cxx.

References NULL, OPC_ALTENTRY, ST_name(), WN_formal, WN_kid_count(), WN_num_formals, WN_opcode(), and WN_st().

Referenced by WN2F_ldid().

Here is the call graph for this function:

static void WN2F_Get_Substring_Info ( WN **  base,
TY_IDX string_ty,
WN **  lower_bnd,
WN **  length 
) [static]
WN2F_STATUS WN2F_iloadx ( TOKEN_BUFFER  tokens,
WN wn,
WN2F_CONTEXT  context 
)

Definition at line 1323 of file wn2f_load_store.cxx.

References Append_Token_String(), ASSERT_DBG_WARN, DIAG_UNIMPLEMENTED, EMPTY_WN2F_STATUS, FALSE, and WN_opc_name.

Here is the call graph for this function:

static WN* WN2F_Initiate_OneInt ( void  ) [static]

Definition at line 175 of file wn2f_load_store.cxx.

References MTYPE_I4, MTYPE_V, OPR_INTCONST, wn, WN_const_val(), WN_map_id(), WN_MAP_UNDEFINED, WN_set_kid_count(), and WN_set_opcode().

Here is the call graph for this function:

static WN* WN2F_Initiate_ZeroInt ( void  ) [static]

Definition at line 160 of file wn2f_load_store.cxx.

References MTYPE_I4, MTYPE_V, OPR_INTCONST, wn, WN_const_val(), WN_map_id(), WN_MAP_UNDEFINED, WN_set_kid_count(), and WN_set_opcode().

Here is the call graph for this function:

WN2F_STATUS WN2F_istorex ( TOKEN_BUFFER  tokens,
WN wn,
WN2F_CONTEXT  context 
)

Definition at line 970 of file wn2f_load_store.cxx.

References Append_Token_String(), ASSERT_DBG_WARN, DIAG_UNIMPLEMENTED, EMPTY_WN2F_STATUS, FALSE, NULL, WN2F_Stmt_Newline(), WN_linenum(), and WN_opc_name.

Here is the call graph for this function:

void WN2F_Load_Store_finalize ( void  )

Definition at line 780 of file wn2f_load_store.cxx.

Referenced by WN2F_finalize().

void WN2F_Load_Store_initialize ( void  )

Definition at line 774 of file wn2f_load_store.cxx.

Referenced by WN2F_initialize().

WN2F_STATUS WN2F_src_triplet ( TOKEN_BUFFER  tokens,
WN wn,
WN2F_CONTEXT  context 
)

Definition at line 1779 of file wn2f_load_store.cxx.

References Append_Token_Special(), EMPTY_WN2F_STATUS, OPR_INTCONST, WN2F_translate(), WN_const_val(), WN_kid0(), WN_kid1(), WN_kid2(), and WN_operator().

Here is the call graph for this function:

static void WN2F_Substring ( TOKEN_BUFFER  tokens,
INT64  string_size,
WN lower_bnd,
WN substring_size,
WN2F_CONTEXT  context 
) [static]

Variable Documentation

WN* WN2F_OneInt_Ptr = NULL [static]

Definition at line 77 of file wn2f_load_store.cxx.

WN* WN2F_ZeroInt_Ptr = NULL [static]

Definition at line 76 of file wn2f_load_store.cxx.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines