From: Evgeniy Stepanov Date: Wed, 31 Oct 2012 09:50:01 +0000 (+0000) Subject: Add IRBuilderBase::getIntPtrTy. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ef94169938c94fbe521f783de776390cf9cd17d8;p=platform%2Fupstream%2Fllvm.git Add IRBuilderBase::getIntPtrTy. llvm-svn: 167111 --- diff --git a/llvm/include/llvm/IRBuilder.h b/llvm/include/llvm/IRBuilder.h index 4672098..f63a160 100644 --- a/llvm/include/llvm/IRBuilder.h +++ b/llvm/include/llvm/IRBuilder.h @@ -17,6 +17,7 @@ #include "llvm/Instructions.h" #include "llvm/BasicBlock.h" +#include "llvm/DataLayout.h" #include "llvm/LLVMContext.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/StringRef.h" @@ -266,6 +267,10 @@ public: return Type::getInt8PtrTy(Context, AddrSpace); } + IntegerType* getIntPtrTy(DataLayout *DL, unsigned AddrSpace = 0) { + return DL->getIntPtrType(Context, AddrSpace); + } + //===--------------------------------------------------------------------===// // Intrinsic creation methods //===--------------------------------------------------------------------===// diff --git a/llvm/unittests/VMCore/IRBuilderTest.cpp b/llvm/unittests/VMCore/IRBuilderTest.cpp index b6a3795..9f26936 100644 --- a/llvm/unittests/VMCore/IRBuilderTest.cpp +++ b/llvm/unittests/VMCore/IRBuilderTest.cpp @@ -8,6 +8,7 @@ //===----------------------------------------------------------------------===// #include "llvm/BasicBlock.h" +#include "llvm/DataLayout.h" #include "llvm/Function.h" #include "llvm/IRBuilder.h" #include "llvm/IntrinsicInst.h" @@ -96,4 +97,15 @@ TEST_F(IRBuilderTest, CreateCondBr) { EXPECT_EQ(Weights, TI->getMetadata(LLVMContext::MD_prof)); } +TEST_F(IRBuilderTest, GetIntTy) { + IRBuilder<> Builder(BB); + IntegerType *Ty1 = Builder.getInt1Ty(); + EXPECT_EQ(Ty1, IntegerType::get(getGlobalContext(), 1)); + + DataLayout* DL = new DataLayout(M.get()); + IntegerType *IntPtrTy = Builder.getIntPtrTy(DL); + unsigned IntPtrBitSize = DL->getPointerSizeInBits(0); + EXPECT_EQ(IntPtrTy, IntegerType::get(getGlobalContext(), IntPtrBitSize)); +} + }