Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
00001 #ifndef upc_wn_util_INCLUDED 00002 #define upc_wn_util_INCLUDED 00003 00004 #include "wn.h" 00005 #include <stack> 00006 #include "mempool.h" 00007 #include "wn_map.h" 00008 #include "upc_symtab_utils.h" 00009 00010 00011 typedef std::stack<WN*> SPTR_OFFSET_TERM_STACK; 00012 typedef std::stack<SPTR_OFFSET_TERM_STACK*> SPTR_OFFSET_ACCUMULATION_STACK; 00013 extern SPTR_OFFSET_ACCUMULATION_STACK sptr_off_accumulation_stack; 00014 00015 typedef enum { 00016 ACCUMULATION, 00017 ARRAY_ACCUMULATION, 00018 NO_ARRAY_ACCUMULATION, 00019 NO_ACCUMULATION 00020 } SPTR_ACCUMULATION_STATE; 00021 extern SPTR_ACCUMULATION_STATE sptr_accumulation_state; 00022 00023 00024 00025 00026 extern std::stack<CONSISTENCY_class> consistency_stack; 00027 extern MEM_POOL consistency_pool; 00028 extern WN_MAP consistency_map; 00029 00030 extern BOOL Fold_Keep_Shared_Tas; 00031 extern WN* WN_Create_Shared_Load (WN *ld, 00032 WN *dest = 0, 00033 BOOL is_struct = FALSE, 00034 WN_OFFSET xtra_offst = 0, 00035 TY_IDX access_ty = 0, 00036 BOOL has_off = FALSE, WN *off_wn = 0); 00037 extern WN* WN_Create_Shared_Store (WN *st, 00038 BOOL src_is_shared = FALSE, 00039 WN_OFFSET xtra_offst = 0, 00040 BOOL has_offt = FALSE, WN *offt = 0); 00041 extern WN* WN_Create_Shared_Ptr_Arithmetic( WN *base, WN *disp, OPERATOR opr, 00042 int esize = 0, int bsize = 0, int phaseless = 0); 00043 extern WN* WN_Convert_Shared_To_Local ( WN *ptr, TY_IDX ty = 0, ST* st = 0); 00044 extern WN* WN_Create_PtrEq_Test(OPERATOR op, WN *awn0, WN *awn1, TY_IDX idx0, TY_IDX idx1); 00045 extern WN* WN_Create_StoP_Cvt(WN *init_wn, INTRINSIC iop); 00046 00047 //extern WN* WN_Create_Shared_Ptr_Diff( WN *op0, WN *op1, UINT esize, UINT bsize); 00048 extern WN* WN_Create_Shared_Ptr_Diff( WN *op0, WN *op1, TY_IDX t1, TY_IDX t2); 00049 extern WN* WN_SetNull_Sptr(WN *st); 00050 extern WN* Strip_TAS(WN *); 00051 extern WN* Spill_Shared_Load( WN *ld); 00052 extern void LowerUPC_Init_Consistency(); 00053 extern WN *Combine_Offset_Terms(SPTR_OFFSET_TERM_STACK &stack); 00054 extern TY_IDX Get_Type_From_ArrayOp(WN *array_wn); 00055 00056 #endif 00057