It's not legal to output a GV in a coalesced section if it's used in an ARM PIC relat...
[oota-llvm.git] / include / llvm / PassManagers.h
index 1047e70cb7e250b239c9dde40e92ae21e98a490c..c9944b5c87f3082530127f2c6eb1be89a81171d7 100644 (file)
@@ -14,6 +14,7 @@
 #include "llvm/PassManager.h"
 #include "llvm/ADT/SmallVector.h"
 #include <deque>
+#include <map>
 
 //===----------------------------------------------------------------------===//
 // Overview:
@@ -27,8 +28,8 @@
 //
 // Pass Manager Infrastructure uses multiple pass managers.  They are
 // PassManager, FunctionPassManager, MPPassManager, FPPassManager, BBPassManager.
-// This class hierarcy uses multiple inheritance but pass managers do not derive
-// from another pass manager.
+// This class hierarchy uses multiple inheritance but pass managers do not
+// derive from another pass manager.
 //
 // PassManager and FunctionPassManager are two top-level pass manager that
 // represents the external interface of this entire pass manager infrastucture.
@@ -85,6 +86,9 @@
 #ifndef PASSMANAGERS_H
 #define PASSMANAGERS_H
 
+#include "llvm/Pass.h"
+#include <deque>
+
 namespace llvm {
 
 /// FunctionPassManager and PassManager, two top level managers, serve 
@@ -144,8 +148,8 @@ private:
 class PMTopLevelManager {
 public:
 
-  virtual unsigned getNumContainedManagers() {
-    return PassManagers.size();
+  virtual unsigned getNumContainedManagers() const {
+    return (unsigned)PassManagers.size();
   }
 
   /// Schedule pass P for execution. Make sure that passes required by
@@ -241,6 +245,9 @@ public:
   /// verifyPreservedAnalysis -- Verify analysis presreved by pass P.
   void verifyPreservedAnalysis(Pass *P);
 
+  /// verifyDomInfo -- Verify dominator information if it is available.
+  void verifyDomInfo(Pass &P, Function &F);
+
   /// Remove Analysis that is not preserved by the pass
   void removeNotPreservedAnalysis(Pass *P);
   
@@ -302,10 +309,10 @@ public:
   void dumpPassInfo(Pass *P, enum PassDebuggingString S1,
                     enum PassDebuggingString S2, const char *Msg);
   void dumpAnalysisSetInfo(const char *Msg, Pass *P,
-                           const std::vector<AnalysisID> &Set) const;
+                           const AnalysisUsage::VectorType &Set) const;
 
-  virtual unsigned getNumContainedPasses() 
-    return PassVector.size();
+  virtual unsigned getNumContainedPasses() const {
+    return (unsigned)PassVector.size();
   }
 
   virtual PassManagerType getPassManagerType() const {