From 544a6336561c087f862a042e3e318a9150cf31a5 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 19 Feb 2007 07:23:24 +0000 Subject: [PATCH] add alternate version of constant ctors that don't take a vector. For now this offers no performance advantage. llvm-svn: 34415 --- llvm/include/llvm/Constants.h | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/llvm/include/llvm/Constants.h b/llvm/include/llvm/Constants.h index e01e2a2823c7..58def86fc84c 100644 --- a/llvm/include/llvm/Constants.h +++ b/llvm/include/llvm/Constants.h @@ -248,6 +248,11 @@ protected: public: /// get() - Static factory methods - Return objects of the specified value static Constant *get(const ArrayType *T, const std::vector &); + static Constant *get(const ArrayType *T, + Constant*const*Vals, unsigned NumVals) { + // FIXME: make this the primary ctor method. + return get(T, std::vector(Vals, Vals+NumVals)); + } /// This method constructs a ConstantArray and initializes it with a text /// string. The default behavior (AddNull==true) causes a null terminator to @@ -308,8 +313,13 @@ public: /// get() - Static factory methods - Return objects of the specified value /// static Constant *get(const StructType *T, const std::vector &V); - static Constant *get(const std::vector &V, bool packed = false); - + static Constant *get(const std::vector &V, bool Packed = false); + static Constant *get(Constant*const* Vals, unsigned NumVals, + bool Packed = false) { + // FIXME: make this the primary ctor method. + return get(std::vector(Vals, Vals+NumVals), Packed); + } + /// getType() specialization - Reduce amount of casting... /// inline const StructType *getType() const { @@ -347,7 +357,11 @@ public: /// get() - Static factory methods - Return objects of the specified value static Constant *get(const VectorType *T, const std::vector &); static Constant *get(const std::vector &V); - + static Constant *get(Constant*const* Vals, unsigned NumVals) { + // FIXME: make this the primary ctor method. + return get(std::vector(Vals, Vals+NumVals)); + } + /// getType - Specialize the getType() method to always return an VectorType, /// which reduces the amount of casting needed in parts of the compiler. /// @@ -578,6 +592,8 @@ public: Constant* const *IdxList, unsigned NumIdx); static Constant *getGetElementPtr(Constant *C, Value* const *IdxList, unsigned NumIdx); + + // FIXME: Remove these. static Constant *getGetElementPtr(Constant *C, const std::vector &IdxList) { return getGetElementPtr(C, &IdxList[0], IdxList.size()); -- GitLab