summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2006-11-15 01:48:14 +0000
committerDevang Patel <dpatel@apple.com>2006-11-15 01:48:14 +0000
commit4a3fa4ff26fa4de8a14e5134180c71e51f96d804 (patch)
tree5d6a081ddaf5da470eae7a45b7fd3ee29c866f2d /llvm/lib
parentff631ae6009e1d3b755afa7eee3d3fbb2b29692d (diff)
downloadbcm5719-llvm-4a3fa4ff26fa4de8a14e5134180c71e51f96d804.tar.gz
bcm5719-llvm-4a3fa4ff26fa4de8a14e5134180c71e51f96d804.zip
Tidy up marking of last analysis user pass.
llvm-svn: 31746
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/VMCore/PassManager.cpp26
1 files changed, 11 insertions, 15 deletions
diff --git a/llvm/lib/VMCore/PassManager.cpp b/llvm/lib/VMCore/PassManager.cpp
index 379162be36d..d0d54d4c4f7 100644
--- a/llvm/lib/VMCore/PassManager.cpp
+++ b/llvm/lib/VMCore/PassManager.cpp
@@ -83,22 +83,9 @@ public:
return PassVector.end();
}
- inline void setLastUser(Pass *P, Pass *LU) {
+ inline void setLastUser(Pass *P, Pass *LU) {
LastUser[P] = LU;
// TODO : Check if pass P is available.
-
- // Prolong live range of analyses that are needed after an analysis pass
- // is destroyed, for querying by subsequent passes
- AnalysisUsage AnUsage;
- P->getAnalysisUsage(AnUsage);
- const std::vector<AnalysisID> &IDs = AnUsage.getRequiredTransitiveSet();
- for (std::vector<AnalysisID>::const_iterator I = IDs.begin(),
- E = IDs.end(); I != E; ++I) {
- Pass *AnalysisPass = getAnalysisPass(*I); // getAnalysisPassFromManager(*I);
- assert (AnalysisPass && "Analysis pass is not available");
- setLastUser(AnalysisPass, LU);
- }
-
}
private:
@@ -671,8 +658,17 @@ void PassManagerImpl_New::schedulePass(Pass *P) {
schedulePass(AnalysisPass);
}
setLastUser (AnalysisPass, P);
+
+ // Prolong live range of analyses that are needed after an analysis pass
+ // is destroyed, for querying by subsequent passes
+ const std::vector<AnalysisID> &IDs = AnUsage.getRequiredTransitiveSet();
+ for (std::vector<AnalysisID>::const_iterator I = IDs.begin(),
+ E = IDs.end(); I != E; ++I) {
+ Pass *AP = getAnalysisPassFromManager(*I);
+ assert (AP && "Analysis pass is not available");
+ setLastUser(AP, P);
+ }
}
-
addPass(P);
}
OpenPOWER on IntegriCloud