|
OpenADFortTk (basic)
|
00001 // ########################################################## 00002 // # This file is part of OpenADFortTk. # 00003 // # The full COPYRIGHT notice can be found in the top # 00004 // # level directory of the OpenADFortTk source tree. # 00005 // # For more information visit # 00006 // # http://www.mcs.anl.gov/openad # 00007 // ########################################################## 00008 00009 #ifndef wn2xaif_expr_INCLUDED 00010 #define wn2xaif_expr_INCLUDED 00011 00012 #include "Open64IRInterface/Open64BasicTypes.h" 00013 00014 #include "whirl2xaif.h" 00015 #include "PUXlationContext.h" 00016 00017 //*************************************************************************** 00018 // Type conversion 00019 //*************************************************************************** 00020 00021 namespace whirl2xaif { 00022 00023 extern void 00024 WN2F_cvt(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00025 00026 extern void 00027 WN2F_cvtl(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00028 00029 extern void 00030 WN2F_tas(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00031 00032 }; /* namespace whirl2xaif */ 00033 00034 //*************************************************************************** 00035 // Leaf (Other) 00036 //*************************************************************************** 00037 00038 namespace whirl2xaif { 00039 00040 extern void 00041 xlate_CONST(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00042 00043 extern void 00044 xlate_INTCONST(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00045 00046 }; /* namespace whirl2xaif */ 00047 00048 //*************************************************************************** 00049 // Expression Operators: Unary Operations 00050 //*************************************************************************** 00051 00052 namespace whirl2xaif { 00053 00054 extern void 00055 xlate_UnaryOp(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00056 00057 extern void 00058 WN2F_rsqrt(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00059 00060 extern void 00061 WN2F_realpart(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00062 00063 extern void 00064 WN2F_imagpart(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00065 00066 extern void 00067 xlate_PAREN(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00068 00069 extern void 00070 xlate_RECIP(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00071 00072 extern void 00073 WN2F_parm(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00074 00075 extern void 00076 WN2F_alloca(xml::ostream& xos, WN *wn, PUXlationContext& ctxt) ; 00077 00078 }; /* namespace whirl2xaif */ 00079 00080 //*************************************************************************** 00081 // Expression Operators: Binary Operations 00082 //*************************************************************************** 00083 00084 namespace whirl2xaif { 00085 00086 extern void 00087 xlate_BinaryOp(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00088 00089 extern void 00090 WN2F_complex(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00091 00092 extern void 00093 WN2F_bnor(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00094 00095 extern void 00096 WN2F_lshr(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00097 00098 }; /* namespace whirl2xaif */ 00099 00100 //*************************************************************************** 00101 // Expression Operators: Ternary Operations 00102 //*************************************************************************** 00103 00104 namespace whirl2xaif { 00105 00106 extern void 00107 WN2F_select(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00108 00109 extern void 00110 WN2F_madd(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00111 00112 extern void 00113 WN2F_msub(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00114 00115 extern void 00116 WN2F_nmadd(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00117 00118 extern void 00119 WN2F_nmsub(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00120 00121 }; /* namespace whirl2xaif */ 00122 00123 //*************************************************************************** 00124 // Expression Operators: N-ary Operations 00125 //*************************************************************************** 00126 00127 namespace whirl2xaif { 00128 00129 extern void 00130 xlate_INTRINSIC_OP(xml::ostream& xos, WN *wn, PUXlationContext& ctxt); 00131 00132 // Array expressions included in memory operations 00133 00134 }; /* namespace whirl2xaif */ 00135 00136 //*************************************************************************** 00137 00138 #endif 00139