Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
#include "defs.h"
#include "opcode.h"
#include "mempool.h"
#include "srcpos.h"
#include "wn_core.h"
#include "wn_map.h"
#include "wio.h"
#include "wn_pragmas.h"
#include "stab.h"
Go to the source code of this file.
Defines | |
#define | WN_Delete(wn) IPA_WN_Delete(Current_Map_Tab, (wn)) |
#define | WN_CreateCondbr WN_CreateTruebr |
#define | WN_StidPreg(desc, pregno, value) WN_StidIntoPreg((desc),(pregno),MTYPE_To_PREG(desc),(value)) |
#define | WN_Call(type, desc, n, s) WN_generic_call(OPR_CALL,type,desc,n,s) |
#define | WN_Piccall(type, desc, n, s) WN_generic_call(OPR_PICCALL,type,desc,n,s) |
#define | WN_Neg(type, l) WN_Unary(OPR_NEG,type,l) |
#define | WN_Abs(type, l) WN_Unary(OPR_ABS,type,l) |
#define | WN_Recip(type, l) WN_Unary(OPR_RECIP,type,l) |
#define | WN_Sqrt(type, l) WN_Unary(OPR_SQRT,type,l) |
#define | WN_Rsqrt(type, l) WN_Unary(OPR_RSQRT,type,l) |
#define | WN_Paren(type, l) WN_Unary(OPR_PAREN,type,l) |
#define | WN_Select(type, rel, t, f) WN_Ternary(OPR_SELECT,type,rel,t,f) |
#define | WN_Cselect(type, rel, t, f) WN_Ternary(OPR_CSELECT,type,rel,t,f) |
#define | WN_Add(type, l, r) WN_Binary(OPR_ADD,type,l,r) |
#define | WN_Sub(type, l, r) WN_Binary(OPR_SUB,type,l,r) |
#define | WN_Mpy(type, l, r) WN_Binary(OPR_MPY,type,l,r) |
#define | WN_Div(type, l, r) WN_Binary(OPR_DIV,type,l,r) |
#define | WN_Madd(type, l, r, a) WN_Ternary(OPR_MADD,type,l,r,a) |
#define | WN_Msub(type, l, r, a) WN_Ternary(OPR_MSUB,type,l,r,a) |
#define | WN_Nmadd(type, l, r, a) WN_Ternary(OPR_NMADD,type,l,r,a) |
#define | WN_Nmsub(type, l, r, a) WN_Ternary(OPR_NMSUB,type,l,r,a) |
#define | WN_EQ(type, l, r) WN_Relational(OPR_EQ,type,l,r) |
#define | WN_NE(type, l, r) WN_Relational(OPR_NE,type,l,r) |
#define | WN_LT(type, l, r) WN_Relational(OPR_LT,type,l,r) |
#define | WN_LE(type, l, r) WN_Relational(OPR_LE,type,l,r) |
#define | WN_GT(type, l, r) WN_Relational(OPR_GT,type,l,r) |
#define | WN_GE(type, l, r) WN_Relational(OPR_GE,type,l,r) |
#define | WN_LNOT(l) WN_Unary(OPR_LNOT,Boolean_type,l) |
#define | WN_LAND(l, r) WN_Binary(OPR_LAND,Boolean_type,l,r) |
#define | WN_LIOR(l, r) WN_Binary(OPR_LIOR,Boolean_type,l,r) |
#define | WN_CAND(l, r) WN_Binary(OPR_CAND,Boolean_type,l,r) |
#define | WN_CIOR(l, r) WN_Binary(OPR_CIOR,Boolean_type,l,r) |
#define | WN_Lshr(type, l, r) WN_Binary(OPR_LSHR,type,l,r) |
#define | WN_Ashr(type, l, r) WN_Binary(OPR_ASHR,type,l,r) |
#define | WN_Shl(type, l, r) WN_Binary(OPR_SHL,type,l,r) |
#define | WN_Bnot(type, l) WN_Unary(OPR_BNOT,type,l) |
#define | WN_Band(type, l, r) WN_Binary(OPR_BAND,type,l,r) |
#define | WN_Bior(type, l, r) WN_Binary(OPR_BIOR,type,l,r) |
#define | WN_Bxor(type, l, r) WN_Binary(OPR_BXOR,type,l,r) |
#define | WN_Realpart(t, l) WN_Unary(OPR_REALPART,t,l) |
#define | WN_Imagpart(t, l) WN_Unary(OPR_IMAGPART,t,l) |
#define | WN_Complex(type, l, r) WN_Binary(OPR_COMPLEX,type,l,r) |
Functions | |
BOOL | Types_Are_Compatible (TYPE_ID ltype, WN *wn) |
BOOL | IPO_Types_Are_Compatible (TYPE_ID ltype, TYPE_ID rtype) |
BOOL | Is_Const_Parm (WN *, INT) |
void | Dont_Use_WN_Free_List (void) |
WN * | WN_Create (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, mINT16 kid_count) |
WN * | WN_Create (OPCODE opcode, mINT16 kid_count) |
WN * | WN_Create_Generic (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, mINT16 kid_count, WN *next, WN *prev, ST_IDX st, INT32 label_number, INT32 num_entries, TY_IDX ty, TY_IDX load_addr_ty, WN_OFFSET offset, INT16 cvtl_bits, INT32 num_dim, WN_ESIZE element_size, INT64 const_value, UINT32 flag, INTRINSIC intrinsic) |
WN * | WN_Create_Generic (OPCODE opcode, mINT16 kid_count, WN *next, WN *prev, ST_IDX st, INT32 label_number, INT32 num_entries, TY_IDX ty, TY_IDX load_addr_ty, WN_OFFSET offset, INT16 cvtl_bits, INT32 num_dim, WN_ESIZE element_size, INT64 const_value, UINT32 flag, INTRINSIC intrinsic) |
void | IPA_WN_Delete (WN_MAP_TAB *maptab, WN *wn) |
void | IPA_WN_DELETE_Tree (WN_MAP_TAB *maptab, WN *tree) |
void | WN_Register_Delete_Cleanup_Function (void(*cleanup_fn)(WN *wn)) |
void | WN_Remove_Delete_Cleanup_Function (void(*cleanup_fn)(WN *wn)) |
BOOL | WN_Equiv (WN *wn1, WN *wn2) |
WN * | WN_CreateBlock (void) |
WN * | WN_CreateDO (WN *index, WN *start, WN *end, WN *step, WN *body, WN *loop_info) |
WN * | WN_CreateDoWhile (WN *test, WN *body) |
WN * | WN_CreateWhileDo (WN *test, WN *body) |
WN * | WN_CreateIf (WN *test, WN *if_then, WN *if_else) |
WN * | WN_CreateEntry (INT16 nkids, ST_IDX name, WN *body, WN *pragmas, WN *varrefs) |
WN * | WN_CreateRegion (REGION_KIND kind, WN *body, WN *pragmas, WN *exits, INT region_id, INITO_IDX ereg_supp) |
WN * | WN_CreateRegionExit (INT32 label_number) |
void | Set_Max_Region_Id (INT id) |
WN * | WN_CreateGoto (INT32 label_number) |
WN * | WN_CreateGotoOuterBlock (INT32 label_number, SYMTAB_IDX label_level) |
WN * | WN_CreateAgoto (WN *addr) |
WN * | WN_CreateAltentry (ST_IDX entry) |
WN * | WN_CreateTruebr (INT32 label_number, WN *exp) |
WN * | WN_CreateFalsebr (INT32 label_number, WN *exp) |
WN * | WN_CreateReturn (void) |
WN * | WN_CreateReturn_Val (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN *val) |
WN * | WN_CreateReturn_Val (OPCODE opc, WN *val) |
WN * | WN_CreateLabel (INT32 label_number, UINT32 label_flag, WN *loop_info) |
WN * | WN_CreateCompgoto (INT32 num_entries, WN *value, WN *block, WN *deflt, INT32 last_label) |
WN * | WN_CreateSwitch (INT32 num_entries, WN *value, WN *block, WN *deflt, INT32 last_label) |
WN * | WN_CreateCasegoto (INT64 case_value, INT32 case_label_number) |
WN * | WN_CreateXgoto (INT32 num_entries, WN *value, WN *block, ST_IDX st) |
WN * | WN_CreateIstore (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, TY_IDX ty, WN *value, WN *addr, UINT field_id=0) |
WN * | WN_CreatePstore (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, TY_IDX ty, WN *value, WN *addr, UINT field_id=0) |
WN * | WN_CreateIstore (OPCODE opc, WN_OFFSET offset, TY_IDX ty, WN *value, WN *addr, UINT field_id=0) |
WN * | WN_CreatePstore (OPCODE opc, WN_OFFSET offset, TY_IDX ty, WN *value, WN *addr, UINT field_id=0) |
WN * | WN_CreateIstorex (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, TY_IDX ty, WN *value, WN *addr1, WN *addr2) |
WN * | WN_CreateIstorex (OPCODE opc, TY_IDX ty, WN *value, WN *addr1, WN *addr2) |
WN * | WN_CreateMstore (WN_OFFSET offset, TY_IDX ty, WN *value, WN *addr, WN *num_bytes) |
WN * | WN_CreateStid (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, ST *st, TY_IDX ty, WN *value, UINT field_id=0) |
WN * | WN_CreatePStid (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, ST *st, TY_IDX ty, WN *value, UINT field_id=0) |
WN * | WN_CreateStid (OPCODE opc, WN_OFFSET offset, ST *st, TY_IDX ty, WN *value, UINT field_id=0) |
WN * | WN_CreatePStid (OPCODE opc, WN_OFFSET offset, ST *st, TY_IDX ty, WN *value, UINT field_id=0) |
WN * | WN_CreatePrefetch (WN_OFFSET offset, UINT32 flag, WN *addr) |
WN * | WN_CreatePrefetchx (UINT32 flag, WN *addr1, WN *addr2) |
WN * | WN_CreateIo (IOSTATEMENT iostatement, mINT16 kid_count) |
WN * | WN_CreateIoItem0 (IOITEM ioitem, TY_IDX ty) |
WN * | WN_CreateIoItem1 (IOITEM ioitem, WN *kid0, TY_IDX ty) |
WN * | WN_CreateIoItem2 (IOITEM ioitem, WN *kid0, WN *kid1, TY_IDX ty) |
WN * | WN_CreateIoItem3 (IOITEM ioitem, WN *kid0, WN *kid1, WN *kid2, TY_IDX ty) |
WN * | WN_CreateIoItemN (IOITEM ioitem, mINT16 kid_count, TY_IDX ty) |
WN * | WN_CreateEval (WN *exp) |
WN * | WN_CreatePragma (WN_PRAGMA_ID pragma_name, ST_IDX st, INT32 arg1, INT32 arg2) |
WN * | WN_CreatePragma (WN_PRAGMA_ID pragma_name, ST_IDX st, INT32 arg1, PREG_NUM asm_copyout_preg, UINT32 asm_opnd_num) |
WN * | WN_CreateXpragma (WN_PRAGMA_ID pragma_name, ST_IDX st, INT16 kid_count) |
WN * | WN_CreateExp0 (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc) |
WN * | WN_CreateExp0 (OPCODE opc) |
WN * | WN_CreateExp1 (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN *kid0) |
WN * | WN_CreateExp1 (OPCODE opc, WN *kid0) |
WN * | WN_CreateExp2 (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN *kid0, WN *kid1) |
WN * | WN_CreateExp2 (OPCODE opc, WN *kid0, WN *kid1) |
WN * | WN_CreateExp3 (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN *kid0, WN *kid1, WN *kid2) |
WN * | WN_CreateExp3 (OPCODE opc, WN *kid0, WN *kid1, WN *kid2) |
WN * | WN_CreateIload (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, TY_IDX ty, TY_IDX load_addr_ty, WN *addr, UINT field_id=0) |
WN * | WN_CreateIload (OPCODE opc, WN_OFFSET offset, TY_IDX ty, TY_IDX load_addr_ty, WN *addr, UINT field_id=0) |
WN * | WN_CreateIloadx (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, TY_IDX ty, TY_IDX load_addr_ty, WN *addr1, WN *addr2) |
WN * | WN_CreateIloadx (OPCODE opc, TY_IDX ty, TY_IDX load_addr_ty, WN *addr1, WN *addr2) |
WN * | WN_CreateMload (WN_OFFSET offset, TY_IDX ty, WN *addr, WN *num_bytes) |
WN * | WN_CreateLdid (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, ST_IDX st, TY_IDX ty, UINT field_id=0) |
WN * | WN_CreateLdid (OPCODE opc, WN_OFFSET offset, ST_IDX st, TY_IDX ty, UINT field_id=0) |
WN * | WN_CreateLda (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, TY_IDX ty, ST_IDX st, UINT field_id=0) |
WN * | WN_CreateLda (OPCODE opc, WN_OFFSET offset, TY_IDX ty, ST_IDX st, UINT field_id=0) |
WN * | WN_CreateIlda (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, TY_IDX ty) |
WN * | WN_CreateLdaLabel (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, mUINT32 label_number) |
WN * | WN_CreateIdname (WN_OFFSET offset, ST_IDX st) |
WN * | WN_CreateConst (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, ST_IDX st) |
WN * | WN_CreateConst (OPCODE opc, ST_IDX st) |
WN * | WN_CreateIntconst (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, INT64 const_val) |
WN * | WN_CreateIntconst (OPCODE opc, INT64 const_val) |
WN * | WN_CreateCvtl (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, INT16 cvtl_bits, WN *kid0) |
WN * | WN_CreateCvtl (OPCODE opc, INT16 cvtl_bits, WN *kid0) |
WN * | WN_Create_Intrinsic (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, INTRINSIC intrinsic, INT32 n, WN *kids[]) |
WN * | WN_Create_Intrinsic (OPCODE opc, INTRINSIC intrinsic, INT32 n, WN *kids[]) |
WN * | WN_CreateParm (TYPE_ID rtype, WN *parm_node, TY_IDX ty, UINT32 flag) |
WN * | WN_CreateComma (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN *block, WN *value) |
WN * | WN_CreateComma (OPCODE opc, WN *block, WN *value) |
WN * | WN_CreateRcomma (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN *value, WN *block) |
WN * | WN_CreateRcomma (OPCODE opc, WN *value, WN *block) |
WN * | WN_CreateComment (char *s) |
STR_IDX | WN_GetComment (const WN *wn) |
WN * | WN_CreateAsm_Stmt (INT16 kid_count, char *asm_string) |
WN * | WN_CreateAsm_Input (char *constraint, UINT32 opnd_num, WN *opnd_expr) |
WN * | WN_CopyNode (const WN *src_wn) |
void | IPA_WN_Move_Maps_PU (WN_MAP_TAB *src, WN_MAP_TAB *dst, WN *wn) |
void | WN_Mem_Push (void) |
void | WN_Mem_Pop (void) |
WN * | WN_Ldid (TYPE_ID desc, WN_OFFSET offset, ST_IDX sym, TY_IDX align, UINT field_id=0) |
WN * | WN_RLdid (TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, ST_IDX sym, TY_IDX align) |
WN * | WN_LdidPreg (TYPE_ID desc, WN_OFFSET pregno) |
WN * | WN_Iload (TYPE_ID desc, WN_OFFSET offset, TY_IDX align, WN *addr, UINT field_id=0) |
WN * | WN_RIload (TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, TY_IDX align, WN *addr) |
WN * | WN_IloadLdid (TYPE_ID desc, WN_OFFSET offset, TY_IDX align, ST *sym, WN_OFFSET symOffset) |
WN * | WN_Istore (TYPE_ID desc, WN_OFFSET offset, TY_IDX align, WN *addr, WN *value, UINT field_id=0) |
WN * | WN_Pstore (TYPE_ID desc, WN_OFFSET offset, TY_IDX align, WN *addr, WN *value, UINT field_id=0) |
WN * | WN_Unary (OPERATOR opr, TYPE_ID rtype, WN *l) |
WN * | WN_Binary (OPERATOR opr, TYPE_ID rtype, WN *l, WN *r) |
WN * | WN_Ternary (OPERATOR opr, TYPE_ID rtype, WN *kid0, WN *kid1, WN *kid2) |
WN * | WN_Stid (TYPE_ID desc, WN_OFFSET offset, ST *sym, TY_IDX align, WN *value, UINT field_id=0) |
WN * | WN_PStid (TYPE_ID desc, WN_OFFSET offset, ST *sym, TY_IDX align, WN *value, UINT field_id=0) |
WN * | WN_StidIntoPreg (TYPE_ID desc, WN_OFFSET offset, ST *sym, WN *value) |
WN * | WN_Intconst (TYPE_ID rtype, INT64 value) |
WN * | WN_RotateIntconst (WN *tree, INT32 rotate) |
WN * | WN_Inverse (TYPE_ID type, WN *tree) |
WN * | WN_Floatconst (TYPE_ID type, double value) |
WN * | WN_UVConst (TYPE_ID type) |
WN * | WN_Zerocon (TYPE_ID ty) |
WN * | WN_Cvt (TYPE_ID desc, TYPE_ID rtype, WN *kid0) |
WN * | WN_Trunc (TYPE_ID desc, TYPE_ID rtype, WN *kid0) |
WN * | WN_Rnd (TYPE_ID desc, TYPE_ID rtype, WN *kid0) |
WN * | WN_Ceil (TYPE_ID desc, TYPE_ID rtype, WN *kid0) |
WN * | WN_Floor (TYPE_ID desc, TYPE_ID rtype, WN *kid0) |
WN * | WN_Relational (OPERATOR opr, TYPE_ID desc, WN *kid0, WN *kid1) |
WN * | WN_ConstPowerOf2 (TYPE_ID rtype, INT32 n) |
WN * | WN_Lda (TYPE_ID rtype, WN_OFFSET ldaOffset, ST *sym, UINT field_id=0) |
WN * | WN_LdaString (char *str, WN_OFFSET ldaOffset, INT32 len) |
WN * | WN_LdaLabel (TYPE_ID rtype, INT32 label_number) |
WN * | WN_Icall (TYPE_ID rtype, TYPE_ID desc, INT32 n, TY_IDX ty) |
WN * | WN_generic_call (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, INT32 n, ST_IDX sym) |
WN * | WN_generic_intrinsic (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, INT32 n, INTRINSIC intrinsic) |
WN * | WN_CreateLoopInfo (WN *induction, WN *trip, UINT16 trip_est, UINT16 depth, INT32 flags) |
WN * | WN_CreateExcScopeBegin (INT32 id, INT16 nkids, struct inito *ereg_supp) |
WN * | WN_CreateExcScopeEnd (INT32 id) |
WN * | WN_CreateBarrier (BOOL forward, INT16 nkids) |
WN * | WN_CreateTrap (INT32 value) |
WN * | WN_CreateAssert (INT32 value, WN *condition) |
void | WN_CopyMap (WN *dst, WN_MAP map, const WN *src) |
WN * | WN_Tas (TYPE_ID rtype, TY_IDX ty, WN *l) |
WN * | WN_Iloadx (TYPE_ID rtype, TY_IDX ty, TY_IDX addr_ty, WN *base, WN *index) |
WN * | WN_Istorex (TYPE_ID desc, TY_IDX ty, WN *value, WN *base, WN *index) |
WN * | WN_Int_Type_Conversion (WN *wn, TYPE_ID to_type) |
WN * | WN_Float_Type_Conversion (WN *wn, TYPE_ID to_type) |
WN * | WN_Type_Conversion (WN *wn, TYPE_ID to_type) |
INT32 | WN_Size_and_StartAddress (WN *wn, void **StartAddress) |
BOOL | WN_verifier (WN *) |
BOOL | WN_Tree_Has_Duplicate_Labels (WN *pu_wn, MEM_POOL *tmp_pool) |
BOOL | WN_Rename_Duplicate_Labels (WN *orig_wn, WN *copied_wn, WN *pu_wn, MEM_POOL *tmp_pool) |
WN * | WN_Create_Generic (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, mINT16 kid_count, WN *next, WN *prev, ST *st, INT32 label_number, INT32 num_entries, TY_IDX ty, TY_IDX load_addr_ty, WN_OFFSET offset, INT16 cvtl_bits, INT32 num_dim, WN_ESIZE element_size, INT64 const_value, UINT32 flag, INTRINSIC intrinsic) |
WN * | WN_Create_Generic (OPCODE opcode, mINT16 kid_count, WN *next, WN *prev, ST *st, INT32 label_number, INT32 num_entries, TY_IDX ty, TY_IDX load_addr_ty, WN_OFFSET offset, INT16 cvtl_bits, INT32 num_dim, WN_ESIZE element_size, INT64 const_value, UINT32 flag, INTRINSIC intrinsic) |
WN * | WN_CreateEntry (INT16 nkids, ST *name, WN *body, WN *pragmas, WN *varrefs) |
WN * | WN_CreateRegionExit (ST *st, INT32 label_number) |
WN * | WN_CreateRegionExit (ST_IDX st, INT32 label_number) |
WN * | WN_CreateGoto (ST *st, INT32 label_number) |
WN * | WN_CreateGoto (ST_IDX st, INT32 label_number) |
WN * | WN_CreateLabel (ST_IDX st, INT32 label_number, UINT32 label_flag, WN *loop_info) |
WN * | WN_CreateAltentry (ST *entry) |
WN * | WN_CreateXgoto (INT32 num_entries, WN *value, WN *block, ST *st) |
WN * | WN_CreateStid (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, ST_IDX st, TY_IDX ty, WN *value, UINT field_id=0) |
WN * | WN_CreatePStid (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, ST_IDX st, TY_IDX ty, WN *value, UINT field_id=0) |
WN * | WN_CreateStid (OPCODE opc, WN_OFFSET offset, ST_IDX st, TY_IDX ty, WN *value, UINT field_id=0) |
WN * | WN_CreatePStid (OPCODE opc, WN_OFFSET offset, ST_IDX st, TY_IDX ty, WN *value, UINT field_id=0) |
WN * | WN_CreatePragma (WN_PRAGMA_ID pragma_name, ST *st, INT32 arg1, INT32 arg2) |
WN * | WN_CreatePragma (WN_PRAGMA_ID pragma_name, ST *st, INT32 arg1, PREG_NUM asm_copyout_preg, UINT32 asm_opnd_num) |
WN * | WN_CreateXpragma (WN_PRAGMA_ID pragma_name, ST *st, INT16 kid_count) |
WN * | WN_CreateLdid (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, ST *st, TY_IDX ty, UINT field_id=0) |
WN * | WN_CreateLdid (OPCODE opc, WN_OFFSET offset, ST *st, TY_IDX ty, UINT field_id=0) |
WN * | WN_CreateLda (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, TY_IDX ty, ST *st, UINT field_id=0) |
WN * | WN_CreateLda (OPCODE opc, WN_OFFSET offset, TY_IDX ty, ST *st) |
WN * | WN_CreateIdname (WN_OFFSET offset, ST *st) |
WN * | WN_CreateConst (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, ST *st) |
WN * | WN_CreateConst (OPCODE opc, ST *st) |
WN * | WN_Ldid (TYPE_ID desc, WN_OFFSET offset, ST *sym, TY_IDX align, UINT field_id=0) |
WN * | WN_RLdid (TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, ST *sym, TY_IDX align) |
WN * | WN_generic_call (OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, INT32 n, ST *sym) |
WN * | WN_CreateAffirm (WN *condition) |
WN * | WN_CreateAlloca (WN *size) |
WN * | WN_CreateDealloca (INT32 n) |
WN * | WN_CreateLdma (TYPE_ID rtype, WN_OFFSET offset, TY_IDX ty, ST_IDX st, UINT field_id=0) |
WN * | WN_CreateLdma (OPCODE opc, WN_OFFSET offset, TY_IDX ty, ST_IDX st, UINT field_id=0) |
void | WN_set_st_addr_saved (WN *) |
BOOL | WN_has_side_effects (const WN *) |
WN * | WN_Rrotate (TYPE_ID desc, WN *src, WN *cnt) |
Variables | |
MEM_POOL * | WN_mem_pool_ptr |
Definition at line 1301 of file wn.h.
Referenced by cwh_io_conv_array_to_dope(), cwh_io_conv_arrsection_to_dope(), DRA_Insert_Pragmas(), and Get_Array_Dim_Size().
Definition at line 1330 of file wn.h.
Referenced by cwh_expr_binop_shift().
Definition at line 1331 of file wn.h.
Referenced by cwh_expr_binop_shift().
#define WN_Call | ( | type, | |
desc, | |||
n, | |||
s | |||
) | WN_generic_call(OPR_CALL,type,desc,n,s) |
#define WN_Complex | ( | type, | |
l, | |||
r | |||
) | WN_Binary(OPR_COMPLEX,type,l,r) |
#define WN_CreateCondbr WN_CreateTruebr |
#define WN_Cselect | ( | type, | |
rel, | |||
t, | |||
f | |||
) | WN_Ternary(OPR_CSELECT,type,rel,t,f) |
#define WN_Delete | ( | wn | ) | IPA_WN_Delete(Current_Map_Tab, (wn)) |
Definition at line 714 of file wn.h.
Referenced by arrsection_to_array(), cwh_dope_from_expression(), cwh_expr_address(), cwh_expr_extract_arrayexp(), cwh_io_null_address(), cwh_io_split_io_items(), fei_unroll(), TCON_from_stack(), WN_DELETE_Tree(), WN_INSERT_BlockAfter(), WN_INSERT_BlockBefore(), WN_Simplify_Rebuild_Expr_Tree(), WN_Simplify_Tree(), and WN_Solve_For().
Definition at line 1304 of file wn.h.
Referenced by WN_Inverse().
#define WN_EQ | ( | type, | |
l, | |||
r | |||
) | WN_Relational(OPR_EQ,type,l,r) |
Definition at line 1312 of file wn.h.
Referenced by cwh_stmt_insert_conformance_check(), and fei_logb().
#define WN_GE | ( | type, | |
l, | |||
r | |||
) | WN_Relational(OPR_GE,type,l,r) |
Definition at line 1317 of file wn.h.
Referenced by cwh_io_split_io_items().
#define WN_GT | ( | type, | |
l, | |||
r | |||
) | WN_Relational(OPR_GT,type,l,r) |
Definition at line 1316 of file wn.h.
Referenced by cwh_expr_binop_shift(), and cwh_stmt_insert_conformance_check().
#define WN_Imagpart | ( | t, | |
l | |||
) | WN_Unary(OPR_IMAGPART,t,l) |
#define WN_LAND | ( | l, | |
r | |||
) | WN_Binary(OPR_LAND,Boolean_type,l,r) |
Definition at line 1320 of file wn.h.
Referenced by cwh_addr_do_bounds_check(), and cwh_stmt_insert_conformance_check().
#define WN_LE | ( | type, | |
l, | |||
r | |||
) | WN_Relational(OPR_LE,type,l,r) |
Definition at line 1315 of file wn.h.
Referenced by cwh_io_split_io_items().
#define WN_LIOR | ( | l, | |
r | |||
) | WN_Binary(OPR_LIOR,Boolean_type,l,r) |
Definition at line 1321 of file wn.h.
Referenced by cwh_stmt_insert_conformance_check().
#define WN_LNOT | ( | l | ) | WN_Unary(OPR_LNOT,Boolean_type,l) |
Definition at line 1319 of file wn.h.
Referenced by WN_Create_PtrEq_Test().
Definition at line 1325 of file wn.h.
Referenced by fei_ibits(), fei_ieee_sign_xfer(), and fei_mvbits().
#define WN_LT | ( | type, | |
l, | |||
r | |||
) | WN_Relational(OPR_LT,type,l,r) |
Definition at line 1314 of file wn.h.
Referenced by cwh_expr_binop_shift(), and fei_ieee_sign_xfer().
#define WN_Madd | ( | type, | |
l, | |||
r, | |||
a | |||
) | WN_Ternary(OPR_MADD,type,l,r,a) |
Definition at line 1303 of file wn.h.
Referenced by Insert_Alloca().
#define WN_Msub | ( | type, | |
l, | |||
r, | |||
a | |||
) | WN_Ternary(OPR_MSUB,type,l,r,a) |
#define WN_NE | ( | type, | |
l, | |||
r | |||
) | WN_Relational(OPR_NE,type,l,r) |
Definition at line 1313 of file wn.h.
Referenced by cwh_stmt_insert_conformance_check().
Definition at line 1292 of file wn.h.
Referenced by cwh_expr_binop_shift().
#define WN_Nmadd | ( | type, | |
l, | |||
r, | |||
a | |||
) | WN_Ternary(OPR_NMADD,type,l,r,a) |
#define WN_Nmsub | ( | type, | |
l, | |||
r, | |||
a | |||
) | WN_Ternary(OPR_NMSUB,type,l,r,a) |
#define WN_Piccall | ( | type, | |
desc, | |||
n, | |||
s | |||
) | WN_generic_call(OPR_PICCALL,type,desc,n,s) |
#define WN_Realpart | ( | t, | |
l | |||
) | WN_Unary(OPR_REALPART,t,l) |
Definition at line 1294 of file wn.h.
Referenced by WN_Inverse().
#define WN_Select | ( | type, | |
rel, | |||
t, | |||
f | |||
) | WN_Ternary(OPR_SELECT,type,rel,t,f) |
Definition at line 1299 of file wn.h.
Referenced by cwh_io_split_io_items(), and fei_logb().
Definition at line 1327 of file wn.h.
Referenced by fei_ieee_sign_xfer(), and fei_mvbits().
#define WN_StidPreg | ( | desc, | |
pregno, | |||
value | |||
) | WN_StidIntoPreg((desc),(pregno),MTYPE_To_PREG(desc),(value)) |
Definition at line 1176 of file wn.h.
Referenced by cwh_addr_do_bounds_check(), cwh_inline_allocate(), cwh_intrin_get_return_value(), cwh_stmt_insert_conformance_check(), and fei_doloop().
Definition at line 1302 of file wn.h.
Referenced by DRA_Insert_Pragmas(), and Get_Array_Dim_Size().
void Dont_Use_WN_Free_List | ( | void | ) |
void IPA_WN_Delete | ( | WN_MAP_TAB * | maptab, |
WN * | wn | ||
) |
Definition at line 377 of file wn.cxx.
References delete_cleanup_fns, Is_True, MTYPE_UNKNOWN, num_delete_cleanup_fns, OPERATOR_UNKNOWN, Which_WN_FREE_LIST(), wn, WN_FREE_LIST_Push(), WN_MAP_Add_Free_List(), WN_opcode(), WN_set_desc(), WN_set_operator(), WN_set_rtype(), and WN_Size().
Referenced by IPA_WN_DELETE_Tree().
void IPA_WN_DELETE_Tree | ( | WN_MAP_TAB * | maptab, |
WN * | tree | ||
) |
Definition at line 420 of file wn.cxx.
References IPA_WN_Delete(), IPA_WN_DELETE_Tree(), next, NULL, OPC_BLOCK, WN_first(), WN_kid(), WN_kid_count(), WN_next(), and WN_opcode().
Referenced by IPA_WN_DELETE_Tree().
void IPA_WN_Move_Maps_PU | ( | WN_MAP_TAB * | src, |
WN_MAP_TAB * | dst, | ||
WN * | wn | ||
) |
Definition at line 2133 of file wn.cxx.
References wn_map_tab::_is_used, wn_map_tab::_kind, wn_map_tab::_map_size, wn_map_tab::_mapping, wn_map_tab::_pool, c, FALSE, IPA_WN_MAP32_Set(), IPA_WN_MAP64_Set(), IPA_WN_MAP_Set(), Is_True, NULL, OPCODE_mapcat(), TRUE, WN_MAP_Add_Free_List(), WN_MAP_CATEGORIES, WN_map_id(), WN_MAP_KIND_INT32, WN_MAP_KIND_INT64, WN_MAP_KIND_VOIDP, WN_MAP_MAX, WN_MAP_Set_ID(), WN_MAP_UNDEFINED, and WN_opcode().
BOOL IPO_Types_Are_Compatible | ( | TYPE_ID | ltype, |
TYPE_ID | rtype | ||
) |
Definition at line 197 of file wn.cxx.
References FALSE, INT_TYPE, UINT_TYPE, WTYPE_base_type, WTYPE_comp_type, and WTYPE_size.
BOOL Is_Const_Parm | ( | WN * | , |
INT | |||
) |
void Set_Max_Region_Id | ( | INT | id | ) |
Definition at line 803 of file wn.cxx.
References MAX.
Referenced by fix_tree(), WN_get_tree(), and WN_write_tree().
BOOL Types_Are_Compatible | ( | TYPE_ID | ltype, |
WN * | wn | ||
) |
Intermediate Language Tree Nodes --------------------------------
Description:
This module provides the routines to create and manipulate wns.
Exported functions:
WN *WN_Create( OPERATOR operator, TYPE_ID rtype, TYPE_ID desc, mINT16 kid_count )
Creates and returns a WN with the given 'opcode'. 'Kid_count' give the number of kids when this is not determined by the 'opcode' and is ignored otherwise. The 'opcode', 'kid_count', and 'map_id' fields are initialized. The initial values of all other fields are undefined.
WN *WN_Create_Generic( OPERATOR operator, TYPE_ID rtype, TYPE_ID desc, mINT16 kid_count, WN *next, WN *prev, ST *st, INT32 label_number, INT32 num_entries, TY *ty, TY *load_addr_ty, WN_OFFSET offset, INT16 cvtl_bits, INT32 num_dim WN_ESIZE element_size INT64 const_value, UINT32 flag, INTRINSIC intrinsic)
Call WN_Create and then fill in all the fields relevant for opcode
Higher level Create routines.
These are routines built on top of WN_Create to allow one to create different types of nodes. They include a fair amount of error checking for conformance to WHIRL rules. Every control flow and statment has its own create function. This is necessary as most have distinct internal fields. For expressions with additional internal fields, we also supply operator specific create functions, but for most expressions, we provide generic (based on number of kids) create routines.
WN *WN_CreateBlock(void) WN *WN_CreateDO( WN *index, WN *start, WN *end, WN *step, WN *body) WN *WN_CreateDoWhile( WN *test, WN *body) WN *WN_CreateWhileDo( WN *test, WN *body) WN *WN_CreateIf( WN *test, WN *then, WN *else) WN *WN_CreateRegion( REGION_KIND kind, WN *body, WN *pragmas, WN *exits, INT region_id, struct inito * ereg_sup) WN *WN_CreateRegionExit( ST *st, INT32 label_number) WN *WN_CreateGoto( ST *st, INT32 label_number) WN *WN_CreateAgoto( WN *addr) WN *WN_CreateAltentry( ST *entry) WN *WN_CreateTruebr( INT32 label_number, WN *exp) WN *WN_CreateFalsebr( INT32 label_number, WN *exp) WN *WN_CreateReturn(void) WN *WN_CreateLabel( ST *label, INT32 label_number, UINT32 label_flag, WN *loop_info) WN *WN_CreateCompgoto( INT32 num_entries, WN *value, WN *block, WN *deflt, INT32 last_label) WN *WN_CreateSwitch( INT32 num_entries, WN *value, WN *block, WN *deflt, INT32 last_label) if last_label for Compgoto and Switch is 0, then don't know last_label (and regions can ignore switch heirarchy). WN *WN_CreateCasegoto( INT64 case_value, INT32 case_label_number) WN *WN_CreateXgoto( INT32 num_entries, WN *value, WN *block, ST *st) WN *WN_CreateIstore( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, TY_IDX ty,WN *value, WN *addr, UINT field_id) WN *WN_CreatePstore( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, TY_IDX ty,WN *value, WN *addr, UINT field_id)
WN *WN_CreateIstorex( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, TY_IDX ty,WN *value, WN *addr1, WN *addr2) WN *WN_CreateMstore( WN_OFFSET offset, TY_IDX ty, WN *value, WN *addr,WN *num_bytes) WN *WN_CreateStid( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, ST *st, TY_IDX ty,WN *value, UINT field_id) WN *WN_CreatePStid( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, ST *st, TY_IDX ty,WN *value, UINT field_id) WN *WN_CreatePrefetch(WN_OFFSET offset, UINT32 flag, WN *addr) WN *WN_CreatePrefetchx(UINT32 flag, WN *addr1, WN *addr2) WN *WN_CreateIo(IOSTATEMENT iostatement, mINT16 kid_count) WN *WN_CreateIoItem0(IOITEM ioitem, TY_IDX ty) WN *WN_CreateIoItem1(IOITEM ioitem, WN *kid0, TY_IDX ty) WN *WN_CreateIoItem2(IOITEM ioitem, WN *kid0, WN *kid1, TY_IDX ty) WN *WN_CreateIoItem3(IOITEM ioitem, WN *kid0, WN *kid1, WN *kid2, TY_IDX ty) WN *WN_CreateIoItemN(IOITEM ioitem, mINT16 kid_count, TY_IDX ty) WN *WN_CreateEval( WN *exp) WN *WN_CreatePragma(WN_PRAGMA_ID pragma_name, ST *st, INT64 const_val) WN *WN_CreateExp0( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc) WN *WN_CreateExp1( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN *kid0) WN *WN_CreateExp2( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN *kid0, WN *kid1) WN *WN_CreateExp3( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN *kid0, WN *kid1, WN *kid2) WN *WN_CreateCvtl( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, INT16 bits, WN *kid0) WN *WN_CreateIload( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, TY_IDX ty, TY_IDX load_addr_ty,WN *addr, UINT field_id) WN *WN_CreateIloadx( OPCODE opr, TYPE_ID rtype, TYPE_ID desc, TY_IDX ty,TY_IDX load_addr_ty,WN *addr1, WN *addr2) WN *WN_CreateMload( WN_OFFSET offset, TY_IDX ty,WN *addr, WN *num_bytes) WN *WN_CreateLdid( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, ST *st, TY_IDX ty, UINT field_id) WN *WN_CreateLda( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, TY_IDX ty, ST *st, UINT field_id) WN *WN_CreateIlda( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, TY_IDX ty) WN *WN_CreateIdname( WN_OFFSET offset,ST *st) WN *WN_CreateConst( OPERATOR opr, TYPE_ID rtype, TYPED_ID desc, ST *st ) WN *WN_CreateIntconst( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, INT64 const_val)
void IPA_WN_Delete( WN_MAP_TAB *maptab, WN *wn ) void WN_Delete( WN *wn )
Delete the given 'wn' and make the node storage available for reallocation. Also add the map_id to the free list in the map table.
void IPA_WN_DELETE_Tree( WN_MAP_TAB *maptab, WN *tree )
Recursively delete the given whirl 'tree' and make the node storage available for reallocation. Also adds each node's map_id to the free list in the appropriate map table. Note that this is the PU context-specific version of WN_DELETE_Tree in wn_util. However; wn_util has no knowledge of WN_MAP_TAB's so the routine is placed here.
void WN_Register_Delete_Cleanup_Function(void (*cleanup_fn)(WN *wn)) Register <cleanup_fn> so that it is called just before a node is deleted. The node being deleted is passed to the cleanup function. If <cleanup_fn> was already registered, this call has no effect. Registered cleanup functions are invoked in an arbitrary order.
void WN_Remove_Delete_Cleanup_Function(void (*cleanup_fn)(WN *wn)) Stop calling the given <cleanup_fn> each time a node is deleted.
void WN_Mem_Push(void) Saves the WN memory state for later restoration by WN_Mem_Pop.
void WN_Mem_Pop(void) Deallocates all WN nodes created since the last call to WN_Mem_Push.
WN *WN_CopyNode ( const WN* src_wn )
Return a copy of a given src_wn. It does a shallow copy, i.e. only the current node, no children. Pointers to next/prev or to kids are NOT copied. Furthermore, no annotations are copied.
BOOL WN_Equiv(WN *wn1, WN *wn2)
Ignoring children and next-previous pointers, are wn1 and wn2 equivalent
void IPA_WN_Move_Maps ( WN_MAP_TAB *maptab, WN *dst, WN *src ) void WN_Move_Maps ( WN *dst, WN *src )
Move the information stored in the map table for one WN to another WN.
void IPA_WN_Move_Maps_PU( WN_MAP_TAB *src, WN_MAP_TAB *dst, WN *wn)
Move wn's mapping information from the source to the destination table. This is used when a WN is moved from one PU to another This assumes the destination table will contain the same WN_MAPs as the source.
These are much needed higher level routines built on the WN_Create to build WN. Most of them determine the opcode based on type information supplied.
WN *WN_Intconst ( TYPE_ID rtype, INT64 value ) Return an integer constant node of value
WN *WN_RotateIntconst( WN *tree INT32 rotate ) Rotate intconst bits right (rotate>0) or left (rotate<0)
WN *WN_Inverse ( TYPE_ID type, WN *tree ) Return a recip or divide base on type and flags
WN *WN_Floatconst ( TYPE_ID rtype, double value ) Return an floating point constant node of value
WN *WN_UVConst( TYPE_ID rtype, ) Return the correct bit pattern for an uninitialized variable
WN * WN_Zerocon ( TYPE_ID ty ) Return a zero of type ty
WN *WN_Ldid ( TYPE_ID desc, WN_OFFSET offset, ST *sym, TY_IDX align, UINT field_id ) Return a LDID (with offset) of type desc. The rtype is computed from ST. Alignment must be specified
WN *WN_RLdid ( TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, ST *sym, TY_IDX align ) Return a LDID (with offset) of type rtype, desc. Alignment must be specified
WN *WN_LdidPreg ( TYPE_ID desc, WN_OFFSET pregno ) Return a LDID of a given preg.
WN *WN_Stid ( TYPE_ID desc, WN_OFFSET offset, ST *sym, TY_IDX align, WN *value, UINT field_id ) STID (with offset) value into sym of type desc. Alignment must be specified
WN *WN_StidIntoPreg( TYPE_ID desc, WN_OFFSET offset, ST *sym, WN *value ) STID (with offset) value into sym of type desc. Alignment is inferred from sym
WN *WN_StidPreg( TYPE_ID desc, WN_OFFSET offset, WN *value ) STID (with offset) value into sym of type desc. Alignment is inferred from sym This is a simplified interface to StidIntoPreg, where the preg sym Is inferred from the type.
WN *WN_Iload ( TYPE_ID desc, WN_OFFSET offset, TY_IDX align, WN *addr, UINT field_id ) Return a ILOAD (with offset) of type desc. The rtype is computed from desc Alignment must be specified
WN *WN_RIload ( TYPE_ID rtype, TYPE_ID desc, WN_OFFSET offset, TY_IDX align, WN *addr ) Return a ILOAD (with offset) of type rtype, desc. Alignment must be specified
WN *WN_Istore ( TYPE_ID desc, WN_OFFSET offset, TY_IDX align, WN *addr, WN *value, UINT field_id ) Return a ISTORE (with offset) of type desc. Alignment must be specified
WN *WN_Pstore ( TYPE_ID desc, WN_OFFSET offset, TY_IDX align, WN *addr, WN *value, UINT field_id ) Return a PSTORE (with offset) of type desc. Alignment must be specified
WN *WN_Unary( OPERATOR opr, TYPE_ID rtype, WN *l ) Return a unary operator opr with opcode of type rtype. The following macros use this as a common base WN_LNOT(WN *l) WN_Bnot(TYPE_ID type, WN *l) WN_Realpart(TYPE_ID rtype, WN *l) WN_Imagpart(TYPE_ID rtype, WN *l) WN_Paren(TYPE_ID rtype, WN *l)
WN *WN_Binary ( OPERATOR opr, TYPE_ID rtype, WN *l, WN *r ) Return a binary operator opr with opcode of type rtype. The following macros use this as a common base WN_Add(TYPE_ID rtype, WN *l, WN *r) WN_Sub(TYPE_ID rtype, WN *l, WN *r) WN_Mpy(TYPE_ID rtype, WN *l, WN *r) WN_Div(TYPE_ID rtype, WN *l, WN *r)
WN_LAND(WN *l, WN *r) WN_LIOR(WN *l, WN *r)
WN_Band(TYPE_ID rtype, WN *l, WN *r) WN_Bior(TYPE_ID rtype, WN *l, WN *r) WN_Bxor(TYPE_ID rtype, WN *l, WN *r)
WN_Lshr(TYPE_ID rtype, WN *l, WN *r) WN_Ashr(TYPE_ID rtype, WN *l, WN *r) WN_Shl(TYPE_ID rtype, WN *l, WN *r)
WN_Complex(TYPE_ID rtype, WN *l, WN *r)
WN *WN_Ternary( OPERATOR opr, TYPE_ID rtype, WN *kid0, WN *kid1, WN *kid2 ) Return a ternary operator opr with opcode of type rtype. The following macros use this as a common base WN_Select(TYPE_ID rtype, WN *rel, WN *true, WN *false)
WN *WN_IloadLdid ( TYPE_ID desc, WN_OFFSET offset, TY_IDX align, ST *sym, WN_OFFSET symOffset ) Return a ILOAD (with offset) of type desc with and address of LDID (with symOffset) of Pointer_type. Alignment must be specified
WN *WN_Cvt( TYPE_ID desc, TYPE_ID rtype, WN *l, WN *r ) Return a cvt operator with opcode of type desc -> rtype,
WN *WN_Trunc( TYPE_ID desc, TYPE_ID rtype, WN *l, WN *r ) round to zero Return a trunc operator with opcode of type desc -> rtype,
WN *WN_Rnd( TYPE_ID desc, TYPE_ID rtype, WN *l, WN *r ) round to nearest int Return a rnd operator with opcode of type desc -> rtype
WN *WN_Ceil( TYPE_ID desc, TYPE_ID rtype, WN *l, WN *r ) round to +infinity Return a ceil operator with opcode of type desc -> rtype,
WN *WN_Floor( TYPE_ID desc, TYPE_ID rtype, WN *l, WN *r ) round to -infinity Return a floor operator with opcode of type desc -> rtype,
WN * WN_Int_Type_Conversion( WN *wn, TYPE_ID to_type )
Return the integer-typed wn converted to the given integer to_type. (handles only int->int conversions)
WN * WN_Float_Type_Conversion( WN *wn, TYPE_ID to_type )
Return the float-typed wn converted to the given float to_type. (handles only float->float conversions)
WN * WN_Type_Conversion( WN *wn, TYPE_ID to_type )
Return the int/float-typed wn converted to the given int/float to_type. (handles int->float, float->int, int->int, and float->float conversions)
WN *WN_Relational( OPERATOR opr, TYPE_ID rtype, WN *l, WN *r ) Return a relational operator opr with opcode of type rtype. The following macros use this as a common base WN_EQ(TYPE_ID rtype, WN *l, WN *r) WN_NE(TYPE_ID rtype, WN *l, WN *r) WN_LT(TYPE_ID rtype, WN *l, WN *r) WN_LE(TYPE_ID rtype, WN *l, WN *r) WN_GT(TYPE_ID rtype, WN *l, WN *r) WN_GE(TYPE_ID rtype, WN *l, WN *r)
WN *WN_ConstPowerOf2( TYPE_ID rtype, INT32 n ) Return a constant of type rtype that is 2**n (1<<(n-1))
WN *WN_Lda( TYPE_ID rtype, WN_OFFSET ldaOffset, ST *sym, UINT field_id ) Return lda of type rtype of sym
WN *WN_LdaString(char *str, WN_OFFSET ldaOffset, INT32 len ) Create an LDA of type string
WN *WN_Icall( TYPE_ID rtype, TYPE_ID desc, INT32 n, TY_IDX ty ) Return an icall node with n children and a TY
WN *WN_Call( TYPE_ID rtype, TYPE_ID desc, INT32 n, ST *sym ) Return an call node with n children and ST sym Uses generic WN_generic_call()
WN *WN_Piccall( TYPE_ID rtype, TYPE_ID desc, INT32 n, ST *sym ) Return an piccall node with n children and ST sym Uses generic WN_generic_call()
WN *WN_Create_Intrinsic( OPERATOR opr, TYPE_ID rtype, TYPE_ID desc, INTRINSIC intrinsic, INT32 n, WN *kids[] ) Return an intrinsic node with n children
WN *WN_CreateParm(TYPE_ID rtype, WN *kid0, TY_IDX ty, UINT32 flag) Return a parameter node
void WN_CopyMap( WN *dst, WN_MAP map, WN *src ) Copy the contents of map for src to dst. Uses Current_Map_Tab. Does nothing if map is WN_MAP_UNDEFINED.
WN *WN_Tas( TYPE_ID rtype, TY_IDX ty, WN *l ) Return an tas node with TY
Definition at line 187 of file wn.cxx.
References WN_rtype(), WTYPE_base_type, and WTYPE_comp_type.
Referenced by WN_CreateIstore(), WN_CreateParm(), WN_CreatePStid(), WN_CreatePstore(), and WN_CreateStid().
Definition at line 2452 of file wn.cxx.
References MTYPE_V, and WN_CreateExp2().
Referenced by Combine_Offset_Terms().
Definition at line 2486 of file wn.cxx.
References OPR_CEIL, and WN_CreateExp1().
WN* WN_ConstPowerOf2 | ( | TYPE_ID | rtype, |
INT32 | n | ||
) |
Definition at line 2501 of file wn.cxx.
References Host_To_Targ_Float(), Is_True, Make_Const(), MTYPE_C4, MTYPE_C8, MTYPE_CQ, MTYPE_F16, MTYPE_F4, MTYPE_F8, MTYPE_FQ, one, val, and WN_Intconst().
void WN_CopyMap | ( | WN * | dst, |
WN_MAP | map, | ||
const WN * | src | ||
) |
Definition at line 2703 of file wn.cxx.
References wn_map_tab::_kind, Current_Map_Tab, FALSE, Is_True, WN_MAP32_Get, WN_MAP32_Set, WN_MAP64_Get, WN_MAP64_Set, WN_MAP_Get, WN_MAP_KIND_INT32, WN_MAP_KIND_INT64, WN_MAP_KIND_VOIDP, WN_MAP_Set, and WN_MAP_UNDEFINED.
Referenced by WN_COPY_All_Maps().
WN* WN_CopyNode | ( | const WN * | src_wn | ) |
Definition at line 2067 of file wn.cxx.
References Copy_ST(), INITO_st(), Inito_Table, New_INITO(), NULL, OPC_REGION, OPCODE_has_next_prev(), INITO::val, wn, WN_Copy_u1u2(), WN_Copy_u3(), WN_Create(), WN_ereg_supp(), WN_field_id(), WN_kid_count(), WN_linenum(), WN_opcode(), and WN_set_field_id().
Referenced by Insert_Alloca(), WN_COPY_Tree(), and WN_COPY_Tree_With_Map().
Definition at line 500 of file wn.cxx.
References Is_True, max, MEM_POOL_Alloc, MEM_POOL_Initialize, MEM_POOL_Push, New_Map_Id, OPCODE_has_next_prev(), OPCODE_nkids(), size, TRUE, Which_WN_FREE_LIST(), wn, WN_FREE_LIST_Empty, WN_FREE_LIST_Pop(), WN_map_id(), WN_mem_pool_initialized, WN_real_fields(), WN_set_desc(), WN_set_kid_count(), WN_set_operator(), and WN_set_rtype().
Referenced by cwh_addr_array(), cwh_addr_array1(), cwh_addr_nonc_recast(), cwh_addr_src_triplet(), cwh_addr_triplet(), cwh_inline_allocate(), cwh_io_conv_array_to_dope(), cwh_io_conv_arrsection_to_dope(), cwh_stmt_call_helper(), DRA_EC_Array_Portion_Parms(), F90_Wrap_ARREXP(), fei_allocate(), fei_array_construct(), fei_entry_pt(), fei_field_dot(), fei_gen_func_entry(), fei_interface(), fei_namelist(), fei_noio_implied_do(), fei_nullify(), fei_stop(), fei_use(), fei_where(), Gen_Call_Array(), Gen_Free_Cart(), Gen_Malloc_Cart(), Insert_Alloca(), MemCtr_Add_Common(), MemCtr_Add_Global(), MemCtr_Add_Local(), WN_Convert_Shared_To_Local(), WN_CopyNode(), WN_Create(), WN_Create_Generic(), WN_Create_Intrinsic(), WN_Create_PtrEq_Test(), WN_Create_Shared_Load(), WN_Create_Shared_Ptr_Arithmetic(), WN_Create_Shared_Ptr_Diff(), WN_Create_Shared_Store(), WN_Create_StoP_Cvt(), WN_CreateAffirm(), WN_CreateAgoto(), WN_CreateAlloca(), WN_CreateAltentry(), WN_CreateAsm_Input(), WN_CreateAsm_Stmt(), WN_CreateAssert(), WN_CreateBarrier(), WN_CreateBlock(), WN_CreateCasegoto(), WN_CreateComma(), WN_CreateComment(), WN_CreateCompgoto(), WN_CreateConst(), WN_CreateDealloca(), WN_CreateDO(), WN_CreateDoWhile(), WN_CreateEntry(), WN_CreateEval(), WN_CreateExcScopeBegin(), WN_CreateExcScopeEnd(), WN_CreateExp0(), WN_CreateExp1(), WN_CreateExp2(), WN_CreateExp3(), WN_CreateFalsebr(), WN_CreateGoto(), WN_CreateGotoOuterBlock(), WN_CreateIdname(), WN_CreateIf(), WN_CreateIlda(), WN_CreateIntconst(), WN_CreateIo(), WN_CreateIoItem0(), WN_CreateIoItem1(), WN_CreateIoItem2(), WN_CreateIoItem3(), WN_CreateIoItemN(), WN_CreateIstore(), WN_CreateIstorex(), WN_CreateLabel(), WN_CreateLda(), WN_CreateLdid(), WN_CreateLdma(), WN_CreateLoopInfo(), WN_CreateMstore(), WN_CreatePragma(), WN_CreatePrefetch(), WN_CreatePrefetchx(), WN_CreatePStid(), WN_CreatePstore(), WN_CreateRcomma(), WN_CreateRegion(), WN_CreateRegionExit(), WN_CreateReturn(), WN_CreateReturn_Val(), WN_CreateStid(), WN_CreateSwitch(), WN_CreateTrap(), WN_CreateTruebr(), WN_CreateWhileDo(), WN_CreateXgoto(), WN_CreateXpragma(), WN_generic_call(), WN_Icall(), WN_LdaLabel(), WN_SetNull_Sptr(), WN_SimpCreateCvtl(), WN_SimpCreateDeposit(), WN_SimpCreateExp1(), WN_SimpCreateExp2(), WN_SimpCreateExp3(), and WN_SimpCreateExtract().
Definition at line 687 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_Create().
WN* WN_Create_Generic | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
mINT16 | kid_count, | ||
WN * | next, | ||
WN * | prev, | ||
ST_IDX | st, | ||
INT32 | label_number, | ||
INT32 | num_entries, | ||
TY_IDX | ty, | ||
TY_IDX | load_addr_ty, | ||
WN_OFFSET | offset, | ||
INT16 | cvtl_bits, | ||
INT32 | num_dim, | ||
WN_ESIZE | element_size, | ||
INT64 | const_value, | ||
UINT32 | flag, | ||
INTRINSIC | intrinsic | ||
) |
Definition at line 559 of file wn.cxx.
References next, OPCODE_has_1ty(), OPCODE_has_2ty(), OPCODE_has_bits(), OPCODE_has_esize(), OPCODE_has_flags(), OPCODE_has_inumber(), OPCODE_has_label(), OPCODE_has_ndim(), OPCODE_has_next_prev(), OPCODE_has_num_entries(), OPCODE_has_offset(), OPCODE_has_sym(), OPCODE_has_value(), wn, WN_const_val(), WN_Create(), WN_cvtl_bits(), WN_element_size(), WN_intrinsic(), WN_label_number(), WN_next(), WN_num_dim, WN_num_entries(), WN_offset(), WN_prev(), WN_set_flag(), WN_set_load_addr_ty(), WN_set_ty(), and WN_st_idx().
Referenced by WN_Create_Generic().
WN* WN_Create_Generic | ( | OPCODE | opcode, |
mINT16 | kid_count, | ||
WN * | next, | ||
WN * | prev, | ||
ST_IDX | st, | ||
INT32 | label_number, | ||
INT32 | num_entries, | ||
TY_IDX | ty, | ||
TY_IDX | load_addr_ty, | ||
WN_OFFSET | offset, | ||
INT16 | cvtl_bits, | ||
INT32 | num_dim, | ||
WN_ESIZE | element_size, | ||
INT64 | const_value, | ||
UINT32 | flag, | ||
INTRINSIC | intrinsic | ||
) | [inline] |
Definition at line 700 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_Create_Generic().
WN* WN_Create_Generic | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
mINT16 | kid_count, | ||
WN * | next, | ||
WN * | prev, | ||
ST * | st, | ||
INT32 | label_number, | ||
INT32 | num_entries, | ||
TY_IDX | ty, | ||
TY_IDX | load_addr_ty, | ||
WN_OFFSET | offset, | ||
INT16 | cvtl_bits, | ||
INT32 | num_dim, | ||
WN_ESIZE | element_size, | ||
INT64 | const_value, | ||
UINT32 | flag, | ||
INTRINSIC | intrinsic | ||
) | [inline] |
Definition at line 1379 of file wn.h.
References ST_st_idx(), and WN_Create_Generic().
WN* WN_Create_Generic | ( | OPCODE | opcode, |
mINT16 | kid_count, | ||
WN * | next, | ||
WN * | prev, | ||
ST * | st, | ||
INT32 | label_number, | ||
INT32 | num_entries, | ||
TY_IDX | ty, | ||
TY_IDX | load_addr_ty, | ||
WN_OFFSET | offset, | ||
INT16 | cvtl_bits, | ||
INT32 | num_dim, | ||
WN_ESIZE | element_size, | ||
INT64 | const_value, | ||
UINT32 | flag, | ||
INTRINSIC | intrinsic | ||
) | [inline] |
Definition at line 1394 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_Create_Generic().
WN* WN_Create_Intrinsic | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
INTRINSIC | intrinsic, | ||
INT32 | n, | ||
WN * | kids[] | ||
) |
Definition at line 2302 of file wn.cxx.
References NULL, WN_Create(), WN_intrinsic(), WN_kid(), WN_MAP_Set, WN_MAP_UNDEFINED, WN_SimplifyIntrinsic(), and WN_SimpParentMap.
Referenced by cwh_char_intrin(), cwh_do_tranformational(), cwh_funny_fp_intrinsic(), cwh_intrin_build(), cwh_intrin_call(), cwh_intrin_op(), cwh_intrin_popcnt_leadz_helper(), cwh_stmt_insert_conformance_check(), fei_count(), fei_dot_product(), fei_dot_product_logical(), fei_flush(), fei_matmul(), fei_ranf(), fei_round(), and WN_Create_Intrinsic().
WN* WN_Create_Intrinsic | ( | OPCODE | opc, |
INTRINSIC | intrinsic, | ||
INT32 | n, | ||
WN * | kids[] | ||
) | [inline] |
Definition at line 1046 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_Create_Intrinsic().
WN* WN_CreateAffirm | ( | WN * | condition | ) |
Definition at line 3019 of file wn.cxx.
References MTYPE_V, OPR_AFFIRM, wn, WN_Create(), and WN_kid0().
WN* WN_CreateAgoto | ( | WN * | addr | ) |
Definition at line 903 of file wn.cxx.
References Is_True, OPC_AGOTO, Pointer_type, wn, WN_Create(), WN_kid0(), and WN_rtype().
WN* WN_CreateAlloca | ( | WN * | size | ) |
Definition at line 3028 of file wn.cxx.
References MTYPE_V, OPR_ALLOCA, Pointer_Mtype, size, wn, WN_Create(), and WN_kid0().
WN* WN_CreateAltentry | ( | ST_IDX | entry | ) |
Definition at line 915 of file wn.cxx.
References OPC_ALTENTRY, wn, WN_Create(), and WN_st_idx().
Referenced by WN_CreateAltentry().
WN* WN_CreateAltentry | ( | ST * | entry | ) | [inline] |
Definition at line 1447 of file wn.h.
References ST_st_idx(), and WN_CreateAltentry().
WN* WN_CreateAsm_Input | ( | char * | constraint, |
UINT32 | opnd_num, | ||
WN * | opnd_expr | ||
) |
Definition at line 2024 of file wn.cxx.
References CLASS_NAME, CURRENT_SYMTAB, EXPORT_LOCAL, New_ST(), OPC_ASM_INPUT, Save_Str(), SCLASS_UNKNOWN, ST_Init(), ST_st_idx(), Str_To_Index, wn, WN_asm_opnd_num(), WN_Create(), WN_kid0(), and WN_st_idx().
WN* WN_CreateAsm_Stmt | ( | INT16 | kid_count, |
char * | asm_string | ||
) |
Definition at line 2008 of file wn.cxx.
References CLASS_NAME, CURRENT_SYMTAB, EXPORT_LOCAL, New_ST(), OPC_ASM_STMT, Save_Str(), SCLASS_UNKNOWN, ST_Init(), ST_st_idx(), Str_To_Index, wn, WN_Create(), and WN_st_idx().
WN* WN_CreateAssert | ( | INT32 | value, |
WN * | condition | ||
) |
Definition at line 2263 of file wn.cxx.
References OPC_ASSERT, wn, WN_Create(), WN_kid(), and WN_offset().
WN* WN_CreateBarrier | ( | BOOL | forward, |
INT16 | nkids | ||
) |
Definition at line 2245 of file wn.cxx.
References OPC_BACKWARD_BARRIER, OPC_FORWARD_BARRIER, wn, and WN_Create().
Referenced by cwh_directive_barrier_insert(), cwh_intrin_sync_intrin(), cwh_stmt_call_helper(), fei_critical_open_mp(), fei_criticalsection(), fei_endcritical_open_mp(), fei_endcriticalsection(), fei_endguard(), fei_endordered_open_mp(), fei_guard(), fei_omp_set_lock(), fei_omp_test_lock(), fei_omp_unset_lock(), and fei_ordered_open_mp().
WN* WN_CreateBlock | ( | void | ) |
Definition at line 678 of file wn.cxx.
References NULL, OPC_BLOCK, wn, WN_Create(), WN_first(), and WN_last().
Referenced by cwh_addr_insert_bounds_check(), cwh_block_append_given_id(), cwh_block_new_and_current(), cwh_block_new_and_decl(), cwh_directive_add_do_loop_directive(), cwh_mp_region(), cwh_region(), cwh_stmt_insert_conformance_check(), DRA_EC_Array_Portion_Parms(), fei_addr(), fei_descriptor(), fei_doloop(), fei_dowhile(), fei_flush_open_mp(), fei_if(), fei_redistribute(), Spill_And_Take_Address(), Spill_Shared_Load(), WN_block_element(), WN_Convert_Shared_To_Local(), WN_Create_PtrEq_Test(), WN_Create_Shared_Load(), WN_Create_Shared_Ptr_Arithmetic(), WN_Create_Shared_Ptr_Diff(), WN_Create_Shared_Store(), and WN_Create_StoP_Cvt().
WN* WN_CreateCasegoto | ( | INT64 | case_value, |
INT32 | case_label_number | ||
) |
Definition at line 1044 of file wn.cxx.
References OPC_CASEGOTO, wn, WN_const_val(), WN_Create(), and WN_label_number().
Referenced by fei_new_select_case().
Definition at line 1966 of file wn.cxx.
References block, Get_Current_PU(), Is_True, OPC_BLOCK, OPCODE_is_expression(), Set_PU_has_very_high_whirl(), wn, WN_Create(), WN_kid0(), WN_kid1(), and WN_opcode().
Referenced by cwh_intrin_ieee_intrin_helper(), cwh_stmt_call_helper(), fei_addr(), Spill_And_Take_Address(), Spill_Shared_Load(), WN_Convert_Shared_To_Local(), WN_Create_PtrEq_Test(), WN_Create_Shared_Load(), WN_Create_Shared_Ptr_Arithmetic(), WN_Create_Shared_Ptr_Diff(), WN_Create_Shared_Store(), WN_Create_StoP_Cvt(), and WN_CreateComma().
WN* WN_CreateComma | ( | OPCODE | opc, |
WN * | block, | ||
WN * | value | ||
) | [inline] |
Definition at line 1058 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateComma().
WN* WN_CreateComment | ( | char * | s | ) |
Definition at line 2044 of file wn.cxx.
References CLASS_NAME, CURRENT_SYMTAB, EXPORT_LOCAL, New_ST(), OPC_COMMENT, Save_Str(), SCLASS_UNKNOWN, ST_Init(), ST_st_idx(), Str_To_Index, wn, WN_Create(), and WN_st_idx().
Referenced by fei_end_ioblock(), fei_enddo(), and fei_start_ioblock().
Definition at line 990 of file wn.cxx.
References block, Is_True, OPC_BLOCK, OPC_COMPGOTO, OPC_GOTO, OPCODE_is_expression(), wn, WN_Create(), WN_kid(), WN_kid0(), WN_last_label(), WN_num_entries(), and WN_opcode().
Referenced by cwh_stmt_assigned_goto(), and cwh_stmt_computed_goto().
Definition at line 1933 of file wn.cxx.
References Is_True, OPCODE_operator(), OPR_CONST, wn, WN_Create(), and WN_st_idx().
Referenced by cwh_stab_const(), Make_Const(), and WN_CreateConst().
WN* WN_CreateConst | ( | OPCODE | opc, |
ST_IDX | st | ||
) | [inline] |
Definition at line 1013 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateConst().
Definition at line 1551 of file wn.h.
References ST_st_idx(), and WN_CreateConst().
WN* WN_CreateConst | ( | OPCODE | opc, |
ST * | st | ||
) | [inline] |
Definition at line 1557 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateConst().
Definition at line 1740 of file wn.cxx.
References Is_True, NULL, OPCODE_operator(), OPR_CVTL, wn, WN_CreateExp1(), WN_cvtl_bits(), WN_MAP_Set, WN_MAP_UNDEFINED, WN_SimplifyCvtl(), and WN_SimpParentMap.
Referenced by F90_wrap_cvtl(), WN_CreateCvtl(), and WN_Int_Type_Conversion().
WN* WN_CreateCvtl | ( | OPCODE | opc, |
INT16 | cvtl_bits, | ||
WN * | kid0 | ||
) | [inline] |
Definition at line 1034 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateCvtl().
WN* WN_CreateDealloca | ( | INT32 | n | ) |
Definition at line 3037 of file wn.cxx.
References MTYPE_V, OPR_DEALLOCA, wn, and WN_Create().
Definition at line 687 of file wn.cxx.
References Is_True, NULL, OPC_BLOCK, OPC_DO_LOOP, OPC_LOOP_INFO, OPCODE_is_stmt(), start, wn, WN_Create(), WN_do_body, WN_end, WN_index, WN_opcode(), WN_set_do_loop_info, WN_start, and WN_step.
Referenced by fei_doloop().
WN* WN_CreateDoWhile | ( | WN * | test, |
WN * | body | ||
) |
Definition at line 714 of file wn.cxx.
References Is_True, OPC_BLOCK, OPC_DO_WHILE, wn, WN_Create(), WN_opcode(), WN_while_body, and WN_while_test.
Definition at line 866 of file wn.cxx.
References name, OPC_FUNC_ENTRY, wn, WN_block_element(), WN_Create(), WN_entry_name, WN_func_body, WN_func_pragmas, and WN_func_varrefs.
Referenced by cwh_stmt_init_pu(), and WN_CreateEntry().
Definition at line 1408 of file wn.h.
References ST_st_idx(), and WN_CreateEntry().
WN* WN_CreateEval | ( | WN * | exp | ) |
Definition at line 1583 of file wn.cxx.
References Is_True, OPC_EVAL, OPCODE_is_expression(), wn, WN_Create(), WN_kid0(), and WN_opcode().
WN* WN_CreateExcScopeBegin | ( | INT32 | id, |
INT16 | nkids, | ||
struct inito * | ereg_supp | ||
) |
WN* WN_CreateExcScopeEnd | ( | INT32 | id | ) |
Definition at line 2237 of file wn.cxx.
References OPC_EXC_SCOPE_END, wn, WN_Create(), and WN_offset().
WN* WN_CreateExp0 | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc | ||
) |
Definition at line 1653 of file wn.cxx.
References wn, and WN_Create().
Referenced by WN_CreateExp0(), and WN_CreateParm().
WN* WN_CreateExp0 | ( | OPCODE | opc | ) | [inline] |
Definition at line 897 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateExp0().
Definition at line 1662 of file wn.cxx.
References Is_True, NULL, OPCODE_is_expression(), wn, WN_Create(), WN_kid0(), WN_MAP_Set, WN_MAP_UNDEFINED, WN_opcode(), WN_SimplifyExp1(), and WN_SimpParentMap.
Referenced by cwh_ceiling_floor(), cwh_convert_to_ty(), cwh_expr_unop(), fei_bneg(), fei_imag(), fei_lneg(), fei_mvbits(), simple_intrinsic(), simple_intrinsic_nt(), WN_Ceil(), WN_CreateCvtl(), WN_CreateExp1(), WN_CreateIload(), WN_CreateParm(), WN_Cvt(), WN_Floor(), WN_Rnd(), WN_Solve_For(), WN_Tas(), WN_Trunc(), and WN_Unary().
WN* WN_CreateExp1 | ( | OPCODE | opc, |
WN * | kid0 | ||
) | [inline] |
Definition at line 907 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateExp1().
Definition at line 1685 of file wn.cxx.
References Is_True, NULL, OPCODE_is_expression(), wn, WN_Create(), WN_kid0(), WN_kid1(), WN_MAP_Set, WN_MAP_UNDEFINED, WN_opcode(), WN_SimplifyExp2(), and WN_SimpParentMap.
Referenced by cwh_addr_do_bounds_check(), cwh_convert_to_ty(), cwh_expr_bincalc(), cwh_expr_binop(), cwh_expr_binop_shift(), cwh_expr_compare(), cwh_expr_compare_bitwise(), cwh_expr_compare_logical(), cwh_inline_allocate(), cwh_io_split_io_items(), cwh_stmt_falsebr(), cwh_stmt_truebr(), do_simple(), fei_count(), fei_doloop(), fei_dot_product(), fei_dot_product_logical(), fei_leqv(), fei_logb(), fei_lxor(), fei_multiply_high(), fei_present(), Fill_Align_Symbol(), simple_intrinsic(), simple_intrinsic_nt(), WN_Binary(), WN_CreateExp2(), WN_CreateIloadx(), WN_CreateMload(), WN_LOOP_TripCount(), WN_Relational(), WN_Rrotate(), WN_Solve_For(), and WN_Upper_Bound_Standardize().
WN* WN_CreateExp2 | ( | OPCODE | opc, |
WN * | kid0, | ||
WN * | kid1 | ||
) | [inline] |
Definition at line 918 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateExp2().
Definition at line 1710 of file wn.cxx.
References Is_True, NULL, OPCODE_is_expression(), wn, WN_Create(), WN_kid(), WN_kid0(), WN_kid1(), WN_MAP_Set, WN_MAP_UNDEFINED, WN_opcode(), WN_SimplifyExp3(), and WN_SimpParentMap.
Referenced by simple_intrinsic(), simple_intrinsic_nt(), WN_CreateExp3(), and WN_Ternary().
Definition at line 930 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateExp3().
WN* WN_CreateFalsebr | ( | INT32 | label_number, |
WN * | exp | ||
) |
Definition at line 938 of file wn.cxx.
References Is_True, OPC_FALSEBR, OPCODE_is_expression(), wn, WN_Create(), WN_kid0(), WN_label_number(), and WN_opcode().
Referenced by cwh_stmt_falsebr(), and cwh_stmt_str_falsebr_util().
WN* WN_CreateGoto | ( | INT32 | label_number | ) |
Definition at line 883 of file wn.cxx.
References OPC_GOTO, wn, WN_Create(), and WN_label_number().
Referenced by cwh_io_cvt_tos_label_to_wn(), cwh_io_split_io_items(), cwh_stmt_assigned_goto(), cwh_stmt_computed_goto(), cwh_stmt_goto(), cwh_stmt_select_case_char(), cwh_stmt_select_char(), fei_new_select(), and WN_CreateGoto().
WN* WN_CreateGoto | ( | ST * | st, |
INT32 | label_number | ||
) | [inline] |
Definition at line 1428 of file wn.h.
References WN_CreateGoto().
WN* WN_CreateGoto | ( | ST_IDX | st, |
INT32 | label_number | ||
) | [inline] |
Definition at line 1434 of file wn.h.
References WN_CreateGoto().
WN* WN_CreateGotoOuterBlock | ( | INT32 | label_number, |
SYMTAB_IDX | label_level | ||
) |
Definition at line 893 of file wn.cxx.
References OPC_GOTO_OUTER_BLOCK, wn, WN_Create(), WN_label_level(), and WN_label_number().
WN* WN_CreateIdname | ( | WN_OFFSET | offset, |
ST_IDX | st | ||
) |
Definition at line 1921 of file wn.cxx.
References OPC_IDNAME, wn, WN_Create(), WN_idname_offset(), and WN_st_idx().
Referenced by cwh_directive_barrier_insert(), cwh_stmt_init_pu(), fei_doloop(), fei_entry_pt(), fei_gen_func_entry(), fei_implied_do(), fei_nullify(), fei_use(), and WN_CreateIdname().
WN* WN_CreateIdname | ( | WN_OFFSET | offset, |
ST * | st | ||
) | [inline] |
Definition at line 1545 of file wn.h.
References ST_st_idx(), and WN_CreateIdname().
WN* WN_CreateIf | ( | WN * | test, |
WN * | if_then, | ||
WN * | if_else | ||
) |
Definition at line 746 of file wn.cxx.
References Is_True, OPC_BLOCK, OPC_IF, wn, WN_Create(), WN_else, WN_if_test, WN_opcode(), WN_Reset_If_Guard, and WN_then.
Referenced by cwh_addr_insert_bounds_check(), cwh_stmt_insert_conformance_check(), DRA_EC_Array_Portion_Parms(), and fei_if().
Definition at line 1903 of file wn.cxx.
References Is_True, MTYPE_is_pointer, OPCODE_operator(), OPCODE_rtype(), OPR_ILDA, wn, WN_Create(), WN_load_offset(), and WN_set_ty().
WN* WN_CreateIload | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
WN_OFFSET | offset, | ||
TY_IDX | ty, | ||
TY_IDX | load_addr_ty, | ||
WN * | addr, | ||
UINT | field_id = 0 |
||
) |
Definition at line 1764 of file wn.cxx.
References Is_True, MTYPE_I4, MTYPE_I8, MTYPE_is_pointer, MTYPE_U4, MTYPE_U8, NULL, OPR_ILDBITS, OPR_ILOAD, wn, WN_CreateExp1(), WN_load_offset(), WN_MAP_Set, WN_MAP_UNDEFINED, WN_rtype(), WN_set_field_id(), WN_set_load_addr_ty(), WN_set_ty(), WN_SimplifyIload(), and WN_SimpParentMap.
Referenced by addr_gen_iload_for_strctfld(), cwh_addr_iload(), fei_dv_deref(), fei_field_dot(), Rewrite_Pragmas_On_Structs(), WN_CreateIload(), WN_Iload(), and WN_RIload().
WN* WN_CreateIload | ( | OPCODE | opc, |
WN_OFFSET | offset, | ||
TY_IDX | ty, | ||
TY_IDX | load_addr_ty, | ||
WN * | addr, | ||
UINT | field_id = 0 |
||
) | [inline] |
Definition at line 944 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateIload().
WN* WN_CreateIloadx | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
TY_IDX | ty, | ||
TY_IDX | load_addr_ty, | ||
WN * | addr1, | ||
WN * | addr2 | ||
) |
Definition at line 1806 of file wn.cxx.
References Is_True, OPCODE_operator(), OPR_ILOADX, OPR_LDID, wn, WN_CreateExp2(), WN_load_offset(), WN_operator(), WN_set_load_addr_ty(), and WN_set_ty().
Referenced by WN_CreateIloadx(), and WN_Iloadx().
Definition at line 959 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateIloadx().
Definition at line 1946 of file wn.cxx.
References Is_True, OPC_U4INTCONST, OPCODE_operator(), OPR_INTCONST, wn, WN_const_val(), and WN_Create().
Referenced by cwh_addr_mload(), cwh_addr_mstore(), cwh_addr_nonc_recast(), cwh_directive_work_dist(), cwh_io_conv_array_to_dope(), cwh_io_conv_arrsection_to_dope(), cwh_io_split_io_items(), cwh_io_split_io_statement(), cwh_stmt_append_truebr(), cwh_stmt_call_helper(), cwh_stmt_select_case_char(), cwh_stmt_select_char(), fei_arith_con(), fei_arith_goto(), fei_constant(), fei_control_list(), fei_label_addr(), fei_new_select(), fei_new_select_case(), fei_nseq_subscr(), fei_push_pattern_con(), fei_seq_subscr(), fei_substr(), Fill_Align_Symbol(), Make_Reduction_Identity(), MemCtr_Add_Common(), MemCtr_Add_Global(), MemCtr_Add_Local(), Substitute_1_For_Impdo_Index_Val(), WN_CreateIntconst(), WN_Intconst(), and WN_Upper_Bound_Standardize().
WN* WN_CreateIntconst | ( | OPCODE | opc, |
INT64 | const_val | ||
) | [inline] |
Definition at line 1023 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateIntconst().
WN* WN_CreateIo | ( | IOSTATEMENT | iostatement, |
mINT16 | kid_count | ||
) |
Definition at line 1510 of file wn.cxx.
References Is_True, OPC_IO, target_io_library, wn, WN_Create(), WN_io_statement(), and WN_Set_IO_Library.
Referenced by cwh_io_no_desc(), cwh_io_split_io_items(), cwh_io_split_io_statement(), cwh_stk_pop_iostmt(), fei_close(), fei_inquire(), fei_iolength(), and fei_open().
WN* WN_CreateIoItem0 | ( | IOITEM | ioitem, |
TY_IDX | ty | ||
) |
Definition at line 1522 of file wn.cxx.
References OPC_IO_ITEM, wn, WN_Create(), WN_io_item(), and WN_set_ty().
Referenced by cwh_io_no_desc(), fei_close(), fei_control_list(), fei_inquire(), fei_iolength(), and fei_open().
WN* WN_CreateIoItem1 | ( | IOITEM | ioitem, |
WN * | kid0, | ||
TY_IDX | ty | ||
) |
Definition at line 1533 of file wn.cxx.
References OPC_IO_ITEM, wn, WN_Create(), WN_io_item(), WN_kid0(), and WN_set_ty().
Referenced by cwh_io_ioitem(), cwh_io_no_desc(), cwh_io_split_io_items(), cwh_io_split_io_statement(), fei_close(), fei_control_list(), fei_inquire(), fei_iolength(), and fei_open().
WN* WN_CreateIoItem2 | ( | IOITEM | ioitem, |
WN * | kid0, | ||
WN * | kid1, | ||
TY_IDX | ty | ||
) |
Definition at line 1545 of file wn.cxx.
References OPC_IO_ITEM, wn, WN_Create(), WN_io_item(), WN_kid0(), WN_kid1(), and WN_set_ty().
Referenced by cwh_io_conv_arrsection_to_dope(), cwh_io_ioitem(), cwh_io_split_io_items(), fei_close(), fei_control_list(), fei_inquire(), and fei_open().
Definition at line 1558 of file wn.cxx.
References OPC_IO_ITEM, wn, WN_Create(), WN_io_item(), WN_kid(), WN_kid0(), WN_kid1(), and WN_set_ty().
Referenced by cwh_io_char_ioitem().
WN* WN_CreateIoItemN | ( | IOITEM | ioitem, |
mINT16 | kid_count, | ||
TY_IDX | ty | ||
) |
Definition at line 1572 of file wn.cxx.
References OPC_IO_ITEM, wn, WN_Create(), WN_io_item(), and WN_set_ty().
Referenced by cwh_io_conv_array_to_dope(), cwh_io_conv_arrsection_to_dope(), fei_control_list(), and fei_implied_do().
WN* WN_CreateIstore | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
WN_OFFSET | offset, | ||
TY_IDX | ty, | ||
WN * | value, | ||
WN * | addr, | ||
UINT | field_id = 0 |
||
) |
Definition at line 1071 of file wn.cxx.
References FLD_get_to_field(), FLD_type(), Is_True, MTYPE_I4, MTYPE_I8, MTYPE_is_pointer, MTYPE_U4, MTYPE_U8, NULL, OPC_I4I8CVT, OPC_I4U8CVT, OPC_U4I8CVT, OPC_U4U8CVT, OPCODE_desc(), OPCODE_is_expression(), OPR_BAND, OPR_CVT, OPR_CVTL, OPR_INTCONST, OPR_ISTBITS, OPR_ISTORE, TY_pointed(), TY_size(), Types_Are_Compatible(), wn, WN_const_val(), WN_Create(), WN_cvtl_bits(), WN_kid0(), WN_kid1(), WN_MAP_Set, WN_MAP_UNDEFINED, WN_opcode(), WN_operator(), WN_rtype(), WN_set_field_id(), WN_set_ty(), WN_SimplifyIstore(), WN_SimpParentMap, and WN_store_offset().
Referenced by cwh_addr_istore(), DRA_EC_Array_Portion_Parms(), Rewrite_Pragmas_On_Structs(), WN_CreateIstore(), and WN_Istore().
WN* WN_CreateIstore | ( | OPCODE | opc, |
WN_OFFSET | offset, | ||
TY_IDX | ty, | ||
WN * | value, | ||
WN * | addr, | ||
UINT | field_id = 0 |
||
) | [inline] |
Definition at line 812 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateIstore().
WN* WN_CreateIstorex | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
TY_IDX | ty, | ||
WN * | value, | ||
WN * | addr1, | ||
WN * | addr2 | ||
) |
Definition at line 1255 of file wn.cxx.
References Is_True, OPCODE_is_expression(), OPCODE_operator(), OPR_ISTOREX, OPR_LDID, wn, WN_Create(), WN_kid(), WN_kid0(), WN_kid1(), WN_opcode(), WN_operator_is, WN_set_ty(), and WN_store_offset().
Referenced by WN_CreateIstorex(), and WN_Istorex().
Definition at line 833 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateIstorex().
WN* WN_CreateLabel | ( | INT32 | label_number, |
UINT32 | label_flag, | ||
WN * | loop_info | ||
) |
Definition at line 972 of file wn.cxx.
References Is_True, NULL, OPC_LABEL, OPC_LOOP_INFO, wn, WN_Create(), WN_label_flag(), WN_label_number(), WN_opcode(), and WN_set_label_loop_info.
Referenced by cwh_io_create_new_label(), cwh_stmt_assigned_goto(), cwh_stmt_computed_goto(), cwh_stmt_select_case_char(), fei_label_def_named(), fei_new_select_case(), and WN_CreateLabel().
Definition at line 1441 of file wn.h.
References WN_CreateLabel().
WN* WN_CreateLda | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
WN_OFFSET | offset, | ||
TY_IDX | ty, | ||
ST_IDX | st, | ||
UINT | field_id = 0 |
||
) |
Definition at line 1883 of file wn.cxx.
References Is_True, MTYPE_is_pointer, OPCODE_operator(), OPCODE_rtype(), OPR_LDA, wn, WN_Create(), WN_load_offset(), WN_set_field_id(), WN_set_ty(), and WN_st_idx().
Referenced by cwh_addr_lda(), cwh_io_conv_array_to_dope(), cwh_io_conv_arrsection_to_dope(), DRA_EC_Array_Portion_Parms(), MemCtr_Add_Common(), MemCtr_Add_Global(), MemCtr_Add_Local(), Rewrite_Structs_In_MPRegion(), WN_CreateLda(), and WN_Lda().
Definition at line 991 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateLda().
WN* WN_CreateLda | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
WN_OFFSET | offset, | ||
TY_IDX | ty, | ||
ST * | st, | ||
UINT | field_id = 0 |
||
) | [inline] |
Definition at line 1531 of file wn.h.
References ST_st_idx(), and WN_CreateLda().
Definition at line 1538 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateLda().
WN* WN_CreateLdid | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
WN_OFFSET | offset, | ||
ST_IDX | st, | ||
TY_IDX | ty, | ||
UINT | field_id = 0 |
||
) |
Definition at line 1855 of file wn.cxx.
References Float32_Preg, Float64_Preg, Int32_Preg, Int64_Preg, Is_True, OPR_LDBITS, OPR_LDID, St_Table, wn, WN_Create(), WN_load_offset(), WN_set_field_id(), WN_set_ty(), and WN_st_idx().
Referenced by cwh_addr_mk_ldid(), cwh_load_distribute_temp(), cwh_mp_region(), DRA_Insert_Pragmas(), Gen_Call_Array(), Gen_Malloc_Cart(), Get_Array_Dim_Size(), Insert_Alloca(), MemCtr_Add_Local(), Rewrite_Pragmas_On_Structs(), Rewrite_Structs_In_MPRegion(), WN_Create_Shared_Load(), WN_Create_Shared_Ptr_Arithmetic(), WN_Create_Shared_Ptr_Diff(), WN_Create_Shared_Store(), WN_Create_StoP_Cvt(), WN_CreateLdid(), WN_Ldid(), and WN_RLdid().
WN* WN_CreateLdid | ( | OPCODE | opc, |
WN_OFFSET | offset, | ||
ST_IDX | st, | ||
TY_IDX | ty, | ||
UINT | field_id = 0 |
||
) | [inline] |
Definition at line 978 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateLdid().
WN* WN_CreateLdid | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
WN_OFFSET | offset, | ||
ST * | st, | ||
TY_IDX | ty, | ||
UINT | field_id = 0 |
||
) | [inline] |
Definition at line 1517 of file wn.h.
References ST_st_idx(), and WN_CreateLdid().
Definition at line 1524 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateLdid().
Definition at line 3045 of file wn.cxx.
References MTYPE_V, OPR_LDMA, wn, WN_Create(), WN_load_offset(), WN_set_field_id(), WN_set_ty(), and WN_st_idx().
Referenced by WN_CreateLdma().
WN* WN_CreateLdma | ( | OPCODE | opc, |
WN_OFFSET | offset, | ||
TY_IDX | ty, | ||
ST_IDX | st, | ||
UINT | field_id = 0 |
||
) | [inline] |
Definition at line 1589 of file wn.h.
References OPCODE_rtype(), and WN_CreateLdma().
Definition at line 2210 of file wn.cxx.
References Is_True, NULL, OPC_LOOP_INFO, wn, WN_Create(), WN_loop_depth(), WN_loop_flag(), WN_loop_trip_est(), WN_set_loop_induction, and WN_set_loop_trip.
Definition at line 1827 of file wn.cxx.
References Is_True, MTYPE_I4, MTYPE_I8, MTYPE_is_pointer, MTYPE_U4, MTYPE_U8, OPC_MLOAD, wn, WN_CreateExp2(), WN_load_offset(), WN_rtype(), and WN_set_ty().
Referenced by cwh_addr_mload(), and cwh_do_tranformational().
Definition at line 1293 of file wn.cxx.
References Get_Current_PU(), Is_True, MTYPE_I4, MTYPE_I8, MTYPE_is_pointer, MTYPE_U4, MTYPE_U8, OPC_MSTORE, OPCODE_is_expression(), Set_PU_has_very_high_whirl(), wn, WN_Create(), WN_kid(), WN_kid0(), WN_kid1(), WN_opcode(), WN_rtype(), WN_set_ty(), and WN_store_offset().
Referenced by cwh_addr_mstore().
Definition at line 2327 of file wn.cxx.
References Is_True, MTYPE_V, NULL, OPC_VPARM, OPCODE_is_expression(), OPR_PARM, Types_Are_Compatible(), wn, WN_CreateExp0(), WN_CreateExp1(), WN_opcode(), WN_set_flag(), and WN_set_ty().
Referenced by cwh_do_tranformational(), cwh_intrin_null_parm(), cwh_intrin_wrap_ref_parm(), cwh_intrin_wrap_value_parm(), DRA_EC_Array_Portion_Parms(), Gen_Call_Array(), Gen_Free_Cart(), Gen_Malloc_Cart(), Insert_Alloca(), MemCtr_Add_Common(), MemCtr_Add_Global(), MemCtr_Add_Local(), simple_intrinsic(), WN_Convert_Shared_To_Local(), WN_Create_PtrEq_Test(), WN_Create_Shared_Load(), WN_Create_Shared_Ptr_Arithmetic(), WN_Create_Shared_Ptr_Diff(), WN_Create_Shared_Store(), WN_Create_StoP_Cvt(), and WN_SetNull_Sptr().
WN* WN_CreatePragma | ( | WN_PRAGMA_ID | pragma_name, |
ST_IDX | st, | ||
INT32 | arg1, | ||
INT32 | arg2 | ||
) |
Definition at line 1596 of file wn.cxx.
References OPC_PRAGMA, wn, WN_Create(), WN_pragma(), WN_pragma_arg1(), WN_pragma_arg2(), WN_pragma_flags(), and WN_st_idx().
Referenced by Add_Pragma_To_MP_Regions(), cwh_directive_pop_and_nowait(), cwh_directive_pop_and_nowait_or_copyprivate(), cwh_stab_add_pragma(), cwh_stmt_add_parallel_pragmas(), cwh_stmt_add_pragma(), DRA_Insert_Pragmas(), fei_barrier(), fei_barrier_open_mp(), fei_descriptor(), fei_end_ioblock(), fei_flush_open_mp(), fei_pdo(), fei_redistribute(), fei_start_ioblock(), fei_task_endloop(), fei_task_var(), Rewrite_Pragmas_On_Structs(), and WN_CreatePragma().
WN* WN_CreatePragma | ( | WN_PRAGMA_ID | pragma_name, |
ST_IDX | st, | ||
INT32 | arg1, | ||
PREG_NUM | asm_copyout_preg, | ||
UINT32 | asm_opnd_num | ||
) |
Definition at line 1611 of file wn.cxx.
References Is_True, OPC_PRAGMA, wn, WN_Create(), WN_pragma(), WN_pragma_arg1(), WN_PRAGMA_ASM_CONSTRAINT, WN_pragma_flags(), WN_set_pragma_asm_copyout_preg(), WN_set_pragma_asm_opnd_num(), and WN_st_idx().
WN* WN_CreatePragma | ( | WN_PRAGMA_ID | pragma_name, |
ST * | st, | ||
INT32 | arg1, | ||
INT32 | arg2 | ||
) | [inline] |
Definition at line 1494 of file wn.h.
References ST_st_idx(), and WN_CreatePragma().
WN* WN_CreatePragma | ( | WN_PRAGMA_ID | pragma_name, |
ST * | st, | ||
INT32 | arg1, | ||
PREG_NUM | asm_copyout_preg, | ||
UINT32 | asm_opnd_num | ||
) | [inline] |
Definition at line 1500 of file wn.h.
References ST_st_idx(), and WN_CreatePragma().
WN* WN_CreatePrefetch | ( | WN_OFFSET | offset, |
UINT32 | flag, | ||
WN * | addr | ||
) |
Definition at line 1498 of file wn.cxx.
References Is_True, MTYPE_is_pointer, OPC_PREFETCH, wn, WN_Create(), WN_kid0(), WN_offset(), WN_rtype(), and WN_set_flag().
Referenced by fei_prefetch_ref().
WN* WN_CreatePrefetchx | ( | UINT32 | flag, |
WN * | addr1, | ||
WN * | addr2 | ||
) |
Definition at line 1278 of file wn.cxx.
References Is_True, OPC_PREFETCHX, OPR_LDID, wn, WN_Create(), WN_kid0(), WN_kid1(), WN_operator_is, and WN_set_flag().
WN* WN_CreatePStid | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
WN_OFFSET | offset, | ||
ST * | st, | ||
TY_IDX | ty, | ||
WN * | value, | ||
UINT | field_id = 0 |
||
) |
Definition at line 1414 of file wn.cxx.
References CLASS_PREG, FLD_get_to_field(), FLD_type(), Float32_Preg, Float64_Preg, Int32_Preg, Int64_Preg, Is_True, OPC_I4I8CVT, OPC_I4U8CVT, OPC_U4I8CVT, OPC_U4U8CVT, OPCODE_desc(), OPCODE_is_expression(), OPR_BAND, OPR_CVT, OPR_CVTL, OPR_INTCONST, OPR_STBITS, OPR_STID, ST_class(), ST_st_idx(), TY_size(), Types_Are_Compatible(), wn, WN_const_val(), WN_Create(), WN_cvtl_bits(), WN_kid0(), WN_kid1(), WN_opcode(), WN_operator(), WN_set_field_id(), WN_set_ty(), WN_st_idx(), and WN_store_offset().
Referenced by cwh_addr_pstid(), WN_CreatePStid(), and WN_PStid().
WN* WN_CreatePStid | ( | OPCODE | opc, |
WN_OFFSET | offset, | ||
ST * | st, | ||
TY_IDX | ty, | ||
WN * | value, | ||
UINT | field_id = 0 |
||
) | [inline] |
Definition at line 868 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreatePStid().
WN* WN_CreatePStid | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
WN_OFFSET | offset, | ||
ST_IDX | st, | ||
TY_IDX | ty, | ||
WN * | value, | ||
UINT | field_id = 0 |
||
) | [inline] |
Definition at line 1467 of file wn.h.
References St_Table, and WN_CreatePStid().
WN* WN_CreatePStid | ( | OPCODE | opc, |
WN_OFFSET | offset, | ||
ST_IDX | st, | ||
TY_IDX | ty, | ||
WN * | value, | ||
UINT | field_id = 0 |
||
) | [inline] |
Definition at line 1485 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreatePStid().
WN* WN_CreatePstore | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
WN_OFFSET | offset, | ||
TY_IDX | ty, | ||
WN * | value, | ||
WN * | addr, | ||
UINT | field_id = 0 |
||
) |
Definition at line 1164 of file wn.cxx.
References FLD_get_to_field(), FLD_type(), Is_True, MTYPE_I4, MTYPE_I8, MTYPE_is_pointer, MTYPE_U4, MTYPE_U8, NULL, OPC_I4I8CVT, OPC_I4U8CVT, OPC_U4I8CVT, OPC_U4U8CVT, OPCODE_desc(), OPCODE_is_expression(), OPR_BAND, OPR_CVT, OPR_CVTL, OPR_INTCONST, OPR_ISTBITS, OPR_ISTORE, OPR_PSTORE, TY_pointed(), TY_size(), Types_Are_Compatible(), wn, WN_const_val(), WN_Create(), WN_cvtl_bits(), WN_kid0(), WN_kid1(), WN_MAP_Set, WN_opcode(), WN_operator(), WN_rtype(), WN_set_field_id(), WN_set_ty(), WN_SimplifyPstore(), WN_SimpParentMap, and WN_store_offset().
Referenced by cwh_addr_pstore(), WN_CreatePstore(), and WN_Pstore().
WN* WN_CreatePstore | ( | OPCODE | opc, |
WN_OFFSET | offset, | ||
TY_IDX | ty, | ||
WN * | value, | ||
WN * | addr, | ||
UINT | field_id = 0 |
||
) | [inline] |
Definition at line 818 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreatePstore().
Definition at line 1987 of file wn.cxx.
References block, Get_Current_PU(), Is_True, OPC_BLOCK, OPCODE_is_expression(), Set_PU_has_very_high_whirl(), wn, WN_Create(), WN_kid0(), WN_kid1(), and WN_opcode().
Referenced by WN_CreateRcomma().
WN* WN_CreateRcomma | ( | OPCODE | opc, |
WN * | value, | ||
WN * | block | ||
) | [inline] |
Definition at line 1065 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateRcomma().
WN* WN_CreateRegion | ( | REGION_KIND | kind, |
WN * | body, | ||
WN * | pragmas, | ||
WN * | exits, | ||
INT | region_id, | ||
INITO_IDX | ereg_supp | ||
) |
Definition at line 833 of file wn.cxx.
References Get_Current_PU(), Is_True, New_Region_Id(), OPC_REGION, OPCODE_is_scf(), Set_PU_has_region(), wn, WN_block_element(), WN_Create(), WN_ereg_supp(), WN_Get_Linenum(), WN_opcode(), WN_region_body, WN_region_exits, WN_region_pragmas, WN_Set_Linenum(), WN_set_region_id(), and WN_set_region_kind().
Referenced by cwh_region().
WN* WN_CreateRegionExit | ( | INT32 | label_number | ) |
Definition at line 854 of file wn.cxx.
References OPC_REGION_EXIT, wn, WN_Create(), and WN_label_number().
Referenced by WN_CreateRegionExit().
WN* WN_CreateRegionExit | ( | ST * | st, |
INT32 | label_number | ||
) | [inline] |
Definition at line 1415 of file wn.h.
References WN_CreateRegionExit().
WN* WN_CreateRegionExit | ( | ST_IDX | st, |
INT32 | label_number | ||
) | [inline] |
Definition at line 1421 of file wn.h.
References WN_CreateRegionExit().
WN* WN_CreateReturn | ( | void | ) |
Definition at line 952 of file wn.cxx.
References OPC_RETURN, wn, and WN_Create().
Referenced by fei_return().
Definition at line 961 of file wn.cxx.
References val, wn, WN_Create(), and WN_kid0().
Referenced by cwh_stmt_return_altentry(), cwh_stmt_return_scalar(), and WN_CreateReturn_Val().
WN* WN_CreateReturn_Val | ( | OPCODE | opc, |
WN * | val | ||
) | [inline] |
Definition at line 774 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateReturn_Val().
WN* WN_CreateStid | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
WN_OFFSET | offset, | ||
ST * | st, | ||
TY_IDX | ty, | ||
WN * | value, | ||
UINT | field_id = 0 |
||
) |
Definition at line 1331 of file wn.cxx.
References CLASS_PREG, FLD_get_to_field(), FLD_type(), Float32_Preg, Float64_Preg, Int32_Preg, Int64_Preg, Is_True, OPC_I4I8CVT, OPC_I4U8CVT, OPC_U4I8CVT, OPC_U4U8CVT, OPCODE_desc(), OPCODE_is_expression(), OPR_BAND, OPR_CVT, OPR_CVTL, OPR_INTCONST, OPR_STBITS, OPR_STID, ST_class(), ST_st_idx(), TY_size(), Types_Are_Compatible(), wn, WN_const_val(), WN_Create(), WN_cvtl_bits(), WN_kid0(), WN_kid1(), WN_opcode(), WN_operator(), WN_set_field_id(), WN_set_ty(), WN_st_idx(), and WN_store_offset().
Referenced by cwh_addr_stid(), cwh_stab_distrib_pragmas(), cwh_stmt_return_altentry(), fei_redistribute(), Fill_Align_Symbol(), Gen_Call_Array(), Gen_Malloc_Cart(), Insert_Alloca(), Rewrite_Pragmas_On_Structs(), Rewrite_Structs_In_MPRegion(), WN_Convert_Shared_To_Local(), WN_Create_PtrEq_Test(), WN_CreateStid(), WN_Stid(), and WN_StidIntoPreg().
WN* WN_CreateStid | ( | OPCODE | opc, |
WN_OFFSET | offset, | ||
ST * | st, | ||
TY_IDX | ty, | ||
WN * | value, | ||
UINT | field_id = 0 |
||
) | [inline] |
Definition at line 862 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateStid().
WN* WN_CreateStid | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
WN_OFFSET | offset, | ||
ST_IDX | st, | ||
TY_IDX | ty, | ||
WN * | value, | ||
UINT | field_id = 0 |
||
) | [inline] |
Definition at line 1459 of file wn.h.
References St_Table, and WN_CreateStid().
WN* WN_CreateStid | ( | OPCODE | opc, |
WN_OFFSET | offset, | ||
ST_IDX | st, | ||
TY_IDX | ty, | ||
WN * | value, | ||
UINT | field_id = 0 |
||
) | [inline] |
Definition at line 1477 of file wn.h.
References OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), and WN_CreateStid().
Definition at line 1015 of file wn.cxx.
References block, Get_Current_PU(), Is_True, OPC_BLOCK, OPC_GOTO, OPC_SWITCH, OPCODE_is_expression(), Set_PU_has_very_high_whirl(), wn, WN_Create(), WN_last_label(), WN_num_entries(), WN_opcode(), WN_switch_default, WN_switch_table, and WN_switch_test.
Referenced by fei_new_select().
WN* WN_CreateTrap | ( | INT32 | value | ) |
Definition at line 2255 of file wn.cxx.
References OPC_TRAP, wn, WN_Create(), and WN_offset().
WN* WN_CreateTruebr | ( | INT32 | label_number, |
WN * | exp | ||
) |
Definition at line 925 of file wn.cxx.
References Is_True, OPC_TRUEBR, OPCODE_is_expression(), wn, WN_Create(), WN_kid0(), WN_label_number(), and WN_opcode().
Referenced by cwh_io_split_io_items(), cwh_stmt_truebr(), and fei_brtrue().
WN* WN_CreateWhileDo | ( | WN * | test, |
WN * | body | ||
) |
Definition at line 730 of file wn.cxx.
References Is_True, OPC_BLOCK, OPC_WHILE_DO, wn, WN_Create(), WN_opcode(), WN_while_body, and WN_while_test.
Referenced by fei_dowhile().
Definition at line 1053 of file wn.cxx.
References block, Is_True, OPC_BLOCK, OPC_XGOTO, OPCODE_is_expression(), wn, WN_Create(), WN_kid(), WN_kid0(), WN_num_entries(), WN_opcode(), and WN_st_idx().
Referenced by WN_CreateXgoto().
Definition at line 1453 of file wn.h.
References ST_st_idx(), and WN_CreateXgoto().
WN* WN_CreateXpragma | ( | WN_PRAGMA_ID | pragma_name, |
ST_IDX | st, | ||
INT16 | kid_count | ||
) |
Definition at line 1633 of file wn.cxx.
References OPC_XPRAGMA, wn, WN_Create(), WN_pragma(), WN_pragma_arg64(), WN_pragma_flags(), and WN_st_idx().
Referenced by cwh_mp_region(), cwh_stmt_add_parallel_pragmas(), cwh_stmt_add_xpragma(), cwh_types_copyin_pragma(), DRA_Insert_Pragmas(), fei_copyin_bound(), fei_descriptor(), fei_redistribute(), fei_task_var(), and WN_CreateXpragma().
WN* WN_CreateXpragma | ( | WN_PRAGMA_ID | pragma_name, |
ST * | st, | ||
INT16 | kid_count | ||
) | [inline] |
Definition at line 1511 of file wn.h.
References ST_st_idx(), and WN_CreateXpragma().
Definition at line 2471 of file wn.cxx.
References OPR_CVT, and WN_CreateExp1().
Referenced by WN_Float_Type_Conversion(), WN_Int_Type_Conversion(), and WN_Type_Conversion().
Definition at line 622 of file wn.cxx.
References FALSE, OPC_BLOCK, OPCODE_has_1ty(), OPCODE_has_2ty(), OPCODE_has_bits(), OPCODE_has_esize(), OPCODE_has_flags(), OPCODE_has_inumber(), OPCODE_has_label(), OPCODE_has_ndim(), OPCODE_has_num_entries(), OPCODE_has_offset(), OPCODE_has_sym(), OPCODE_has_value(), TRUE, WN_const_val(), WN_cvtl_bits(), WN_element_size(), WN_flag(), WN_intrinsic(), WN_kid_count(), WN_label_number(), WN_load_addr_ty(), WN_num_dim, WN_num_entries(), WN_offset(), WN_opcode(), WN_st_idx(), and WN_ty().
Referenced by Tree_Equiv().
WN* WN_Float_Type_Conversion | ( | WN * | wn, |
TYPE_ID | to_type | ||
) |
WN* WN_Floatconst | ( | TYPE_ID | type, |
double | value | ||
) |
Definition at line 2529 of file wn.cxx.
References FALSE, Host_To_Targ_Float(), Is_True, Make_Const(), MTYPE_C4, MTYPE_C8, MTYPE_CQ, MTYPE_F16, MTYPE_F4, MTYPE_F8, MTYPE_FQ, and NULL.
Referenced by WN_Inverse().
Definition at line 2491 of file wn.cxx.
References OPR_FLOOR, and WN_CreateExp1().
Definition at line 2686 of file wn.cxx.
References Mtype_complex_to_real(), MTYPE_is_complex, WN_Create(), and WN_st_idx().
Referenced by WN_generic_call().
Definition at line 1576 of file wn.h.
References ST_st_idx(), and WN_generic_call().
WN* WN_generic_intrinsic | ( | OPERATOR | opr, |
TYPE_ID | rtype, | ||
TYPE_ID | desc, | ||
INT32 | n, | ||
INTRINSIC | intrinsic | ||
) |
STR_IDX WN_GetComment | ( | const WN * | wn | ) |
Definition at line 2061 of file wn.cxx.
References Is_True, OPC_COMMENT, ST_name_idx(), WN_opcode(), and WN_st().
Referenced by ANL_LOOP_CONSTRUCT::Is_End_Of_Loop_Comment(), WN2C_comment(), WN2C_Skip_Stmt(), and WN2F_comment().
BOOL WN_has_side_effects | ( | const WN * | ) |
Definition at line 3187 of file wn.cxx.
References Fail_FmtAssertion(), FALSE, OPERATOR_name(), OPR_ABS, OPR_ADD, OPR_ALLOCA, OPR_ARRAY, OPR_ASHR, OPR_BAND, OPR_BIOR, OPR_BNOR, OPR_BNOT, OPR_BXOR, OPR_CAND, OPR_CEIL, OPR_CIOR, OPR_COMMA, OPR_COMPOSE_BITS, OPR_CONST, OPR_CSELECT, OPR_CVT, OPR_CVTL, OPR_DIV, OPR_DIVREM, OPR_EQ, OPR_EXTRACT_BITS, OPR_FIRSTPART, OPR_FLOOR, OPR_GE, OPR_GT, OPR_HIGHMPY, OPR_HIGHPART, OPR_IDNAME, OPR_ILDBITS, OPR_ILOAD, OPR_ILOADX, OPR_INTCONST, OPR_INTRINSIC_OP, OPR_LAND, OPR_LDA, OPR_LDID, OPR_LDMA, OPR_LE, OPR_LIOR, OPR_LNOT, OPR_LOWPART, OPR_LSHR, OPR_LT, OPR_MADD, OPR_MAX, OPR_MAXPART, OPR_MIN, OPR_MINMAX, OPR_MINPART, OPR_MLOAD, OPR_MOD, OPR_MPY, OPR_MSUB, OPR_NE, OPR_NEG, OPR_NMADD, OPR_NMSUB, OPR_OPTPARM, OPR_PAIR, OPR_PAREN, OPR_PARM, OPR_RCOMMA, OPR_RECIP, OPR_REM, OPR_RND, OPR_RSQRT, OPR_SECONDPART, OPR_SELECT, OPR_SHL, OPR_SQRT, OPR_SUB, OPR_TAS, OPR_TRUNC, OPR_XMPY, TRUE, TY_is_volatile(), WN_has_side_effects(), WN_kid(), WN_kid0(), WN_kid1(), WN_kid2(), WN_kid_count(), WN_load_addr_ty(), WN_operator(), and WN_ty().
Referenced by WN_has_side_effects().
Definition at line 2665 of file wn.cxx.
References OPR_ICALL, WN_Create(), and WN_set_ty().
Definition at line 2409 of file wn.cxx.
References Make_Pointer_Type(), Mtype_comparison(), OPR_ILOAD, and WN_CreateIload().
Referenced by cwh_io_split_io_items(), and WN_IloadLdid().
Definition at line 2463 of file wn.cxx.
References Pointer_type, ST_type(), WN_Iload(), and WN_Ldid().
Definition at line 2996 of file wn.cxx.
References MTYPE_V, OPR_ILOADX, and WN_CreateIloadx().
WN* WN_Int_Type_Conversion | ( | WN * | wn, |
TYPE_ID | to_type | ||
) |
Definition at line 2733 of file wn.cxx.
References FALSE, FmtAssert, Is_True, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_U8, OPC_I4CVTL, OPC_I8CVTL, OPC_U4CVTL, OPC_U8CVTL, wn, WN_CreateCvtl(), WN_Cvt(), and WN_rtype().
Referenced by cwh_inline_allocate(), and WN_Type_Conversion().
WN* WN_Intconst | ( | TYPE_ID | rtype, |
INT64 | value | ||
) |
Definition at line 2351 of file wn.cxx.
References MTYPE_V, OPR_INTCONST, and WN_CreateIntconst().
Referenced by cwh_addr_address_ST(), cwh_addr_iload(), cwh_addr_insert_bounds_check(), cwh_addr_istore(), cwh_addr_lda(), cwh_addr_mload(), cwh_addr_mstore(), cwh_addr_nonc_recast(), cwh_addr_pstore(), cwh_addr_substr_util(), cwh_addr_temp_section(), cwh_addr_ubound_from_triplet(), cwh_dope_from_expression(), cwh_dope_initialize(), cwh_expr_address(), cwh_expr_binop_shift(), cwh_inline_allocate(), cwh_intrin_popcnt_leadz_helper(), cwh_io_conv_array_to_dope(), cwh_io_conv_arrsection_to_dope(), cwh_stmt_add_parallel_pragmas(), cwh_stmt_insert_conformance_check(), cwh_types_array_temp_TY(), cwh_types_bound_WN(), cwh_types_mk_namelist_item_TY(), cwh_types_mk_namelist_TY(), cwh_types_size_WN(), DRA_EC_Array_Portion_Parms(), DRA_Insert_Pragmas(), F90_Size_Walk(), fei_allocate(), fei_as_ref(), fei_cot(), fei_count(), fei_descriptor(), fei_doloop(), fei_fcd(), fei_get_dv_hdr_fld(), fei_ieee_sign_xfer(), fei_logb(), fei_nullify(), fei_poppar(), fei_pos_diff(), fei_present(), fei_pstore(), fei_redistribute(), fei_set_dv_hdr_fld(), fei_store(), Gen_Malloc_Cart(), Get_Array_Dim_Size(), Insert_Alloca(), WN_ConstPowerOf2(), WN_Create_Shared_Load(), WN_Create_Shared_Ptr_Arithmetic(), WN_Create_Shared_Ptr_Diff(), WN_Create_Shared_Store(), WN_Inverse(), WN_UVConst(), and WN_Zerocon().
WN* WN_Inverse | ( | TYPE_ID | type, |
WN * | tree | ||
) |
Definition at line 2617 of file wn.cxx.
References FALSE, MTYPE_float, MTYPE_is_quad, Recip_Allowed, TRUE, WN_Div, WN_Floatconst(), WN_Intconst(), and WN_Recip.
WN* WN_Istore | ( | TYPE_ID | desc, |
WN_OFFSET | offset, | ||
TY_IDX | align, | ||
WN * | addr, | ||
WN * | value, | ||
UINT | field_id = 0 |
||
) |
Definition at line 2440 of file wn.cxx.
References MTYPE_V, OPR_ISTORE, and WN_CreateIstore().
Referenced by cwh_io_split_io_items().
Definition at line 3002 of file wn.cxx.
References MTYPE_V, OPR_ISTOREX, and WN_CreateIstorex().
Definition at line 2635 of file wn.cxx.
References CLASS_BLOCK, CLASS_FUNC, Is_True, Make_Align_Type(), Make_Pointer_Type(), MTYPE_To_TY, MTYPE_V, OPR_LDA, ST_class(), ST_pu_type(), ST_type(), STB_align(), and WN_CreateLda().
Referenced by Spill_And_Take_Address(), WN_Create_Shared_Load(), WN_Create_Shared_Store(), WN_LdaString(), and WN_SetNull_Sptr().
WN* WN_LdaLabel | ( | TYPE_ID | rtype, |
INT32 | label_number | ||
) |
Definition at line 2654 of file wn.cxx.
References Be_Type_Tbl, Make_Pointer_Type(), MTYPE_V, OPR_LDA_LABEL, wn, WN_Create(), WN_label_number(), and WN_set_ty().
WN* WN_LdaString | ( | char * | str, |
WN_OFFSET | ldaOffset, | ||
INT32 | len | ||
) |
Definition at line 3007 of file wn.cxx.
References FALSE, Gen_String_Sym(), Host_To_Targ_String(), MTYPE_STRING, MTYPE_To_TY, Pointer_type, and WN_Lda().
Referenced by cwh_addr_insert_bounds_check(), and cwh_stmt_insert_conformance_check().
Definition at line 2356 of file wn.cxx.
References Mtype_comparison(), OPR_LDID, and WN_CreateLdid().
Referenced by cwh_io_split_io_items(), DRA_EC_Array_Portion_Parms(), fei_doloop(), Gen_Free_Cart(), Spill_Shared_Load(), WN_Convert_Shared_To_Local(), WN_Create_PtrEq_Test(), WN_Create_Shared_Load(), WN_Create_Shared_Ptr_Arithmetic(), WN_Create_Shared_Ptr_Diff(), WN_Create_Shared_Store(), WN_Create_StoP_Cvt(), WN_IloadLdid(), WN_Ldid(), and WN_LdidPreg().
Definition at line 1564 of file wn.h.
References ST_st_idx(), and WN_Ldid().
WN* WN_LdidPreg | ( | TYPE_ID | desc, |
WN_OFFSET | pregno | ||
) |
Definition at line 2371 of file wn.cxx.
References MTYPE_To_PREG, ST_type(), and WN_Ldid().
Referenced by cwh_addr_do_bounds_check(), cwh_inline_allocate(), cwh_intrin_get_return_value(), cwh_io_split_io_items(), cwh_preg_temp_save(), cwh_stmt_insert_conformance_check(), and fei_doloop().
void WN_Mem_Pop | ( | void | ) |
Definition at line 355 of file wn.cxx.
References MEM_POOL_Initialize, MEM_POOL_Pop, NULL, TRUE, and WN_mem_pool_initialized.
Referenced by PDGCS_do_proc(), and Postprocess_PU().
void WN_Mem_Push | ( | void | ) |
Definition at line 336 of file wn.cxx.
References MEM_POOL_Initialize, MEM_POOL_Push, TRUE, and WN_mem_pool_initialized.
Referenced by cwh_pdgcs_pu_mem(), and Preprocess_PU().
WN* WN_PStid | ( | TYPE_ID | desc, |
WN_OFFSET | offset, | ||
ST * | sym, | ||
TY_IDX | align, | ||
WN * | value, | ||
UINT | field_id = 0 |
||
) |
Definition at line 2386 of file wn.cxx.
References MTYPE_V, OPR_STID, and WN_CreatePStid().
WN* WN_Pstore | ( | TYPE_ID | desc, |
WN_OFFSET | offset, | ||
TY_IDX | align, | ||
WN * | addr, | ||
WN * | value, | ||
UINT | field_id = 0 |
||
) |
Definition at line 2431 of file wn.cxx.
References MTYPE_V, OPR_ISTORE, and WN_CreatePstore().
void WN_Register_Delete_Cleanup_Function | ( | void(*)(WN *wn) | cleanup_fn | ) |
Definition at line 449 of file wn.cxx.
References delete_cleanup_fns, FmtAssert, MAX_CLEANUP_FNS, and num_delete_cleanup_fns.
Definition at line 2496 of file wn.cxx.
References Boolean_type, and WN_CreateExp2().
void WN_Remove_Delete_Cleanup_Function | ( | void(*)(WN *wn) | cleanup_fn | ) |
Definition at line 468 of file wn.cxx.
References delete_cleanup_fns, and num_delete_cleanup_fns.
Definition at line 1094 of file wn_verifier.cxx.
References Cur_PU_Name, Current_PU_Info, CURRENT_SYMTAB, Fail_FmtAssertion(), Is_True, LABEL_Init(), LABEL_kind(), New_LABEL(), OPR_LABEL, OPR_REGION, PU_Info_proc_sym, References_Some_Label(), Rename_INITV_Labels(), Save_Str(), Scope_tab, ST_name(), TRUE, User_Label_Number_Format, wn, wn_iter::wn, WN_ereg_supp(), WN_HAS_LABEL, WN_Has_Label(), WN_HAS_LAST_LABEL, WN_HAS_NO_LABELS, WN_label_number(), WN_last_label(), WN_operator(), WN_WALK_TreeIter(), and WN_WALK_TreeNext().
Definition at line 2421 of file wn.cxx.
References Make_Pointer_Type(), OPR_ILOAD, and WN_CreateIload().
Definition at line 2365 of file wn.cxx.
References OPR_LDID, and WN_CreateLdid().
Referenced by Fill_Align_Symbol(), and WN_RLdid().
Definition at line 1570 of file wn.h.
References ST_st_idx(), and WN_RLdid().
Definition at line 2481 of file wn.cxx.
References OPR_RND, and WN_CreateExp1().
WN* WN_RotateIntconst | ( | WN * | tree, |
INT32 | rotate | ||
) |
Definition at line 2583 of file wn.cxx.
References Is_True, MTYPE_size_reg, NBITMASK, OPR_INTCONST, size, WN_const_val(), WN_operator_is, and WN_rtype().
WN* WN_Rrotate | ( | TYPE_ID | desc, |
WN * | src, | ||
WN * | cnt | ||
) |
Definition at line 3360 of file wn.cxx.
References Get_Current_PU(), Mtype_comparison(), OPR_RROTATE, Set_PU_has_very_high_whirl(), and WN_CreateExp2().
void WN_set_st_addr_saved | ( | WN * | ) |
Definition at line 3063 of file wn.cxx.
References CLASS_FUNC, CLASS_VAR, Fail_FmtAssertion(), OPERATOR_name(), OPR_ABS, OPR_ADD, OPR_ALLOCA, OPR_ARRAY, OPR_ASHR, OPR_BAND, OPR_BIOR, OPR_BNOR, OPR_BNOT, OPR_BXOR, OPR_CALL, OPR_CAND, OPR_CEIL, OPR_CIOR, OPR_COMMA, OPR_COMPLEX, OPR_CONST, OPR_CSELECT, OPR_CVT, OPR_CVTL, OPR_DIV, OPR_DIVREM, OPR_EQ, OPR_EVAL, OPR_FLOOR, OPR_GE, OPR_GT, OPR_HIGHMPY, OPR_HIGHPART, OPR_ILOAD, OPR_IMAGPART, OPR_INTCONST, OPR_INTRINSIC_OP, OPR_LAND, OPR_LDA, OPR_LDID, OPR_LDMA, OPR_LE, OPR_LIOR, OPR_LNOT, OPR_LOWPART, OPR_LSHR, OPR_LT, OPR_MAX, OPR_MAXPART, OPR_MIN, OPR_MINMAX, OPR_MINPART, OPR_MLOAD, OPR_MOD, OPR_MPY, OPR_NE, OPR_NEG, OPR_OPTPARM, OPR_PAREN, OPR_PARM, OPR_RCOMMA, OPR_REALPART, OPR_RECIP, OPR_REM, OPR_RND, OPR_RSQRT, OPR_SELECT, OPR_SHL, OPR_SQRT, OPR_SUB, OPR_TAS, OPR_TRUNC, Set_ST_addr_saved(), ST_class(), WN_kid0(), WN_kid1(), WN_kid2(), WN_operator(), WN_set_st_addr_saved(), and WN_st().
Referenced by WN_set_st_addr_saved().
INT32 WN_Size_and_StartAddress | ( | WN * | wn, |
void ** | StartAddress | ||
) |
Definition at line 2196 of file wn.cxx.
References max, OPCODE_has_next_prev(), WN_kid_count(), WN_opcode(), and WN_prev().
Referenced by ir_b_write_tree().
WN* WN_Stid | ( | TYPE_ID | desc, |
WN_OFFSET | offset, | ||
ST * | sym, | ||
TY_IDX | align, | ||
WN * | value, | ||
UINT | field_id = 0 |
||
) |
Definition at line 2379 of file wn.cxx.
References MTYPE_V, OPR_STID, and WN_CreateStid().
Referenced by cwh_io_split_io_items(), fei_doloop(), Spill_And_Take_Address(), Spill_Shared_Load(), WN_Create_Shared_Load(), WN_Create_Shared_Ptr_Arithmetic(), WN_Create_Shared_Ptr_Diff(), WN_Create_Shared_Store(), and WN_Create_StoP_Cvt().
Definition at line 2394 of file wn.cxx.
References MTYPE_V, OPR_STID, ST_type(), and WN_CreateStid().
Referenced by cwh_io_split_io_items().
Definition at line 2281 of file wn.cxx.
References MTYPE_V, OPR_TAS, WN_CreateExp1(), WN_operator_is, and WN_set_ty().
Referenced by cwh_expr_binop_shift(), cwh_expr_compare_bitwise(), cwh_intrin_popcnt_leadz_helper(), fei_bneg(), and fei_ieee_sign_xfer().
Definition at line 2457 of file wn.cxx.
References MTYPE_V, and WN_CreateExp3().
BOOL WN_Tree_Has_Duplicate_Labels | ( | WN * | pu_wn, |
MEM_POOL * | tmp_pool | ||
) |
Definition at line 1024 of file wn_verifier.cxx.
References CURRENT_SYMTAB, FALSE, Is_True, LABEL_Table_Size(), OPR_LABEL, TRUE, wn, wn_iter::wn, WN_label_number(), WN_operator(), WN_WALK_TreeIter(), and WN_WALK_TreeNext().
Referenced by WN_Verifier::WN_traverse_tree().
Definition at line 2476 of file wn.cxx.
References OPR_TRUNC, and WN_CreateExp1().
WN* WN_Type_Conversion | ( | WN * | wn, |
TYPE_ID | to_type | ||
) |
Definition at line 2913 of file wn.cxx.
References Is_True, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_is_float, MTYPE_size_min, Mtype_TransferSign(), MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_U8, wn, WN_Cvt(), WN_Int_Type_Conversion(), and WN_rtype().
Definition at line 2447 of file wn.cxx.
References MTYPE_V, and WN_CreateExp1().
WN* WN_UVConst | ( | TYPE_ID | type | ) |
Definition at line 2547 of file wn.cxx.
References FALSE, Host_To_Targ_UV(), Is_True, Make_Const(), MTYPE_B, MTYPE_C4, MTYPE_C8, MTYPE_CQ, MTYPE_F16, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_M, MTYPE_STR, Mtype_TransferSign(), MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_U8, MTYPE_V, NULL, and WN_Intconst().
BOOL WN_verifier | ( | WN * | ) |
Definition at line 1329 of file wn_verifier.cxx.
References DevWarn(), getenv(), NULL, TRUE, Verifier_DEBUG, and WN_Verifier::WN_traverse_tree().
Referenced by Preorder_Process_PUs().
WN* WN_Zerocon | ( | TYPE_ID | ty | ) |
Definition at line 2272 of file wn.cxx.
References Host_To_Targ(), Make_Const(), MTYPE_CLASS_INTEGER, MTYPE_I4, MTYPE_type_class, Targ_Conv(), and WN_Intconst().
Referenced by cwh_dope_from_expression(), cwh_inline_allocate(), cwh_intrin_null_parm(), cwh_io_split_io_items(), cwh_stmt_insert_conformance_check(), fei_concat(), fei_count(), fei_ieee_sign_xfer(), fei_logb(), and fei_sign_xfer().
Definition at line 89 of file wn.cxx.
Referenced by IPO_CLONE::Copy_Node(), and DRA_Add_Clone().