From 0655668b113950521c06b85ae81f0c592d755dbd Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Mon, 12 Nov 2012 21:42:53 +0000 Subject: Cache size of PassVector to speed up getNumContainedPasses(). getNumContainedPasses() used to compute the size of the vector on demand. It is called repeated in loops (such as runOnFunction()) and it can be updated while inside the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167759 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/PassManager.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lib/VMCore') diff --git a/lib/VMCore/PassManager.cpp b/lib/VMCore/PassManager.cpp index 53f11499e4..5c209e24d8 100644 --- a/lib/VMCore/PassManager.cpp +++ b/lib/VMCore/PassManager.cpp @@ -195,7 +195,7 @@ public: } BasicBlockPass *getContainedPass(unsigned N) { - assert(N < PassVector.size() && "Pass number out of range!"); + assert(N < PassVectorSize && "Pass number out of range!"); BasicBlockPass *BP = static_cast(PassVector[N]); return BP; } @@ -346,7 +346,7 @@ public: } ModulePass *getContainedPass(unsigned N) { - assert(N < PassVector.size() && "Pass number out of range!"); + assert(N < PassVectorSize && "Pass number out of range!"); return static_cast(PassVector[N]); } @@ -963,6 +963,7 @@ void PMDataManager::add(Pass *P, bool ProcessAnalysis) { if (!ProcessAnalysis) { // Add pass PassVector.push_back(P); + ++PassVectorSize; return; } @@ -1024,6 +1025,7 @@ void PMDataManager::add(Pass *P, bool ProcessAnalysis) { // Add pass PassVector.push_back(P); + ++PassVectorSize; } -- cgit v1.2.3