aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-02-10 08:30:29 +0000
committerChris Lattner <sabre@nondot.org>2007-02-10 08:30:29 +0000
commit8552faeb7ebab98cd0a9f3de1a9c1671661a6850 (patch)
treec5a3f36e6d9717a8c65f6abb0cff40e74987bef0
parent78287b400a4a1dc258cb18520e36e29ea1389848 (diff)
speed up the verifier 8.5% by using a smallvector instead of vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34144 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/VMCore/Verifier.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp
index 3d80c6c2db..c0675b43d5 100644
--- a/lib/VMCore/Verifier.cpp
+++ b/lib/VMCore/Verifier.cpp
@@ -57,6 +57,7 @@
#include "llvm/Support/InstVisitor.h"
#include "llvm/Support/Streams.h"
#include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/Compiler.h"
@@ -809,11 +810,13 @@ void Verifier::visitShuffleVectorInst(ShuffleVectorInst &SV) {
}
void Verifier::visitGetElementPtrInst(GetElementPtrInst &GEP) {
+ SmallVector<Value*, 16> Idxs(GEP.idx_begin(), GEP.idx_end());
const Type *ElTy =
GetElementPtrInst::getIndexedType(GEP.getOperand(0)->getType(),
- std::vector<Value*>(GEP.idx_begin(), GEP.idx_end()), true);
+ &Idxs[0], Idxs.size(), true);
Assert1(ElTy, "Invalid indices for GEP pointer type!", &GEP);
- Assert2(PointerType::get(ElTy) == GEP.getType(),
+ Assert2(isa<PointerType>(GEP.getType()) &&
+ cast<PointerType>(GEP.getType())->getElementType() == ElTy,
"GEP is not of right type for indices!", &GEP, ElTy);
visitInstruction(GEP);
}