Fix problem where subpasses would invalidate all analyses outstanding

llvm-svn: 2418
diff --git a/llvm/lib/VMCore/PassManagerT.h b/llvm/lib/VMCore/PassManagerT.h
index c72af14..e61d994 100644
--- a/llvm/lib/VMCore/PassManagerT.h
+++ b/llvm/lib/VMCore/PassManagerT.h
@@ -440,6 +440,10 @@
   virtual bool doInitialization(Module *M);
   virtual bool runOnBasicBlock(BasicBlock *BB);
   virtual bool doFinalization(Module *M);
+
+  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+    AU.setPreservesAll();
+  }
 };
 
 
@@ -484,6 +488,10 @@
   virtual bool doInitialization(Module *M);
   virtual bool runOnFunction(Function *F);
   virtual bool doFinalization(Module *M);
+
+  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
+    AU.setPreservesAll();
+  }
 };