X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=utils%2FTableGen%2FCodeGenIntrinsics.h;h=ababfa4e7e77af10e30b4fb6ba2e6f6fad5aba3a;hb=d92ff21d6f526cadea7d6db21f493ba5c85e1411;hp=685e141f99bfdec805c9063c2b7d6160a1671c69;hpb=e50ed30282bb5b4a9ed952580523f2dda16215ac;p=oota-llvm.git diff --git a/utils/TableGen/CodeGenIntrinsics.h b/utils/TableGen/CodeGenIntrinsics.h index 685e141f99b..ababfa4e7e7 100644 --- a/utils/TableGen/CodeGenIntrinsics.h +++ b/utils/TableGen/CodeGenIntrinsics.h @@ -14,9 +14,9 @@ #ifndef CODEGEN_INTRINSIC_H #define CODEGEN_INTRINSIC_H +#include "llvm/CodeGen/ValueTypes.h" #include #include -#include "llvm/CodeGen/ValueTypes.h" namespace llvm { class Record; @@ -37,20 +37,20 @@ namespace llvm { /// continues from there through the parameter list. This is useful for /// "matching" types. struct IntrinsicSignature { - /// RetVTs - The EVT::SimpleValueType for each return type. Note that this + /// RetVTs - The MVT::SimpleValueType for each return type. Note that this /// list is only populated when in the context of a target .td file. When /// building Intrinsics.td, this isn't available, because we don't know /// the target pointer size. - std::vector RetVTs; + std::vector RetVTs; /// RetTypeDefs - The records for each return type. std::vector RetTypeDefs; - /// ParamVTs - The EVT::SimpleValueType for each parameter type. Note that + /// ParamVTs - The MVT::SimpleValueType for each parameter type. Note that /// this list is only populated when in the context of a target .td file. /// When building Intrinsics.td, this isn't available, because we don't /// know the target pointer size. - std::vector ParamVTs; + std::vector ParamVTs; /// ParamTypeDefs - The records for each parameter type. std::vector ParamTypeDefs; @@ -60,7 +60,7 @@ namespace llvm { // Memory mod/ref behavior of this intrinsic. enum { - NoMem, ReadArgMem, ReadMem, WriteArgMem, WriteMem + NoMem, ReadArgMem, ReadMem, ReadWriteArgMem, ReadWriteMem } ModRef; /// This is set to true if the intrinsic is overloaded by its argument @@ -69,9 +69,17 @@ namespace llvm { /// isCommutative - True if the intrinsic is commutative. bool isCommutative; - + + /// canThrow - True if the intrinsic can throw. + bool canThrow; + + /// isNoReturn - True if the intrinsic is no-return. + bool isNoReturn; + enum ArgAttribute { - NoCapture + NoCapture, + ReadOnly, + ReadNone }; std::vector > ArgumentAttributes;