speed up the verifier 8.5% by using a smallvector instead of vector.
authorChris Lattner <sabre@nondot.org>
Sat, 10 Feb 2007 08:30:29 +0000 (08:30 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 10 Feb 2007 08:30:29 +0000 (08:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34144 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/Verifier.cpp

index 3d80c6c2db600a9ba416cab9dbb5f1d224c5b144..c0675b43d52987072df65204a23f633297d7ec94 100644 (file)
@@ -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);
 }