Don't add the same analysis implementation pair twice.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 30 Mar 2011 18:32:53 +0000 (18:32 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 30 Mar 2011 18:32:53 +0000 (18:32 +0000)
Prevent infinite growth of the list.

Patch by José Fonseca!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128568 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/PassAnalysisSupport.h

index a3342d51386be8dd055ac180d045e5ec8b64bae6..fede1216c3c4dd3de7444737c88011a28398633a 100644 (file)
@@ -142,6 +142,8 @@ public:
   Pass *findImplPass(Pass *P, AnalysisID PI, Function &F);
 
   void addAnalysisImplsPair(AnalysisID PI, Pass *P) {
+    if (findImplPass(PI) == P)
+      return;
     std::pair<AnalysisID, Pass*> pir = std::make_pair(PI,P);
     AnalysisImpls.push_back(pir);
   }