From: Chris Lattner Date: Fri, 12 Mar 2004 05:50:39 +0000 (+0000) Subject: Add support for select constant exprs X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=46a57d8f144af82be46ac925f1c53a3405bcfb3a;p=oota-llvm.git Add support for select constant exprs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12309 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Constants.h b/include/llvm/Constants.h index 6a02c5df215..1d4892f118e 100644 --- a/include/llvm/Constants.h +++ b/include/llvm/Constants.h @@ -518,6 +518,8 @@ protected: ConstantExpr(unsigned Opcode, Constant *C, const Type *Ty); // Binary/Shift instruction creation ctor ConstantExpr(unsigned Opcode, Constant *C1, Constant *C2); + // Select instruction creation ctor + ConstantExpr(Constant *C, Constant *V1, Constant *V2); // GEP instruction creation ctor ConstantExpr(Constant *C, const std::vector &IdxList, const Type *DestTy); @@ -528,6 +530,8 @@ protected: Constant *C1, Constant *C2); static Constant *getShiftTy(const Type *Ty, unsigned Opcode, Constant *C1, Constant *C2); + static Constant *getSelectTy(const Type *Ty, + Constant *C1, Constant *C2, Constant *C3); static Constant *getGetElementPtrTy(const Type *Ty, Constant *C, const std::vector &IdxList); @@ -541,6 +545,13 @@ public: /// static Constant *getCast(Constant *C, const Type *Ty); + /// Select constant expr + /// + static Constant *getSelect(Constant *C, Constant *V1, Constant *V2) { + return getSelectTy(V1->getType(), C, V1, V2); + } + + /// ConstantExpr::get - Return a binary or shift operator constant expression, /// folding if possible. ///