Use StringMap instead of std::map<std::string, SDNode*>.
[oota-llvm.git] / include / llvm / Pass.h
index 07355da2d1877b851a2384165f0a4ad78d99a053..bc6b39bbb3145c07a69f3f6480d0344ba9313aad 100644 (file)
@@ -32,7 +32,7 @@
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/Streams.h"
 #include <vector>
-#include <map>
+#include <utility>
 #include <iosfwd>
 #include <cassert>
 
@@ -73,7 +73,6 @@ enum PassManagerType {
 class Pass {
   AnalysisResolver *Resolver;  // Used to resolve analysis
   intptr_t PassID;
-  bool isAnalysisPass; // True if this pass is an analysis pass.
   // AnalysisImpls - This keeps track of which passes implement the interfaces
   // that are required by the current pass (to implement getAnalysis()).
   //
@@ -82,14 +81,10 @@ class Pass {
   void operator=(const Pass&);  // DO NOT IMPLEMENT
   Pass(const Pass &);           // DO NOT IMPLEMENT
 public:
-  explicit Pass(intptr_t pid, bool AP = false) : Resolver(0), PassID(pid), 
-                                                 isAnalysisPass(AP) {}
-  explicit Pass(const void *pid, bool AP = false) : Resolver(0), 
-                                                    PassID((intptr_t)pid),
-                                                    isAnalysisPass(AP) {}
+  explicit Pass(intptr_t pid) : Resolver(0), PassID(pid) {}
+  explicit Pass(const void *pid) : Resolver(0), PassID((intptr_t)pid) {}
   virtual ~Pass();
 
-  bool isAnalysis() const { return isAnalysisPass; }
   /// getPassName - Return a nice clean name for a pass.  This usually
   /// implemented in terms of the name that is registered by one of the
   /// Registration templates, but can be overloaded directly.
@@ -114,10 +109,10 @@ public:
 
   /// Each pass is responsible for assigning a pass manager to itself.
   /// PMS is the stack of available pass manager. 
-  virtual void assignPassManager(PMStack &PMS
-                                 PassManagerType = PMT_Unknown) {}
+  virtual void assignPassManager(PMStack &, 
+                                 PassManagerType = PMT_Unknown) {}
   /// Check if available pass managers are suitable for this pass or not.
-  virtual void preparePassManager(PMStack &PMS) {}
+  virtual void preparePassManager(PMStack &) {}
   
   ///  Return what kind of Pass Manager can manage this pass.
   virtual PassManagerType getPotentialPassManagerType() const {
@@ -139,7 +134,7 @@ public:
   /// particular analysis result to this function, it can then use the
   /// getAnalysis<AnalysisType>() function, below.
   ///
-  virtual void getAnalysisUsage(AnalysisUsage &Info) const {
+  virtual void getAnalysisUsage(AnalysisUsage &) const {
     // By default, no analysis results are used, all are invalidated.
   }
 
@@ -231,8 +226,8 @@ public:
     return PMT_ModulePassManager;
   }
 
-  explicit ModulePass(intptr_t pid, bool AP = false) : Pass(pid, AP) {}
-  explicit ModulePass(const void *pid, bool AP = false) : Pass(pid, AP) {}
+  explicit ModulePass(intptr_t pid) : Pass(pid) {}
+  explicit ModulePass(const void *pid) : Pass(pid) {}
   // Force out-of-line virtual method.
   virtual ~ModulePass();
 };
@@ -255,11 +250,11 @@ public:
 
   /// ImmutablePasses are never run.
   ///
-  bool runOnModule(Module &M) { return false; }
+  bool runOnModule(Module &) { return false; }
 
-  explicit ImmutablePass(intptr_t pid, bool AP = false) : ModulePass(pid, AP) {}
-  explicit ImmutablePass(const void *pid, bool AP = false
-  : ModulePass(pid, AP) {}
+  explicit ImmutablePass(intptr_t pid) : ModulePass(pid) {}
+  explicit ImmutablePass(const void *pid) 
+  : ModulePass(pid) {}
   
   // Force out-of-line virtual method.
   virtual ~ImmutablePass();
@@ -276,13 +271,13 @@ public:
 ///
 class FunctionPass : public Pass {
 public:
-  explicit FunctionPass(intptr_t pid, bool AP = false) : Pass(pid, AP) {}
-  explicit FunctionPass(const void *pid, bool AP = false) : Pass(pid, AP) {}
+  explicit FunctionPass(intptr_t pid) : Pass(pid) {}
+  explicit FunctionPass(const void *pid) : Pass(pid) {}
 
   /// doInitialization - Virtual method overridden by subclasses to do
   /// any necessary per-module initialization.
   ///
-  virtual bool doInitialization(Module &M) { return false; }
+  virtual bool doInitialization(Module &) { return false; }
 
   /// runOnFunction - Virtual method overriden by subclasses to do the
   /// per-function processing of the pass.
@@ -292,7 +287,7 @@ public:
   /// doFinalization - Virtual method overriden by subclasses to do any post
   /// processing needed after all passes have run.
   ///
-  virtual bool doFinalization(Module &M) { return false; }
+  virtual bool doFinalization(Module &) { return false; }
 
   /// runOnModule - On a module, we run this pass by initializing,
   /// ronOnFunction'ing once for every function in the module, then by
@@ -328,18 +323,18 @@ public:
 ///
 class BasicBlockPass : public Pass {
 public:
-  explicit BasicBlockPass(intptr_t pid, bool AP = false) : Pass(pid, AP) {}
-  explicit BasicBlockPass(const void *pid, bool AP = false) : Pass(pid, AP) {}
+  explicit BasicBlockPass(intptr_t pid) : Pass(pid) {}
+  explicit BasicBlockPass(const void *pid) : Pass(pid) {}
 
   /// doInitialization - Virtual method overridden by subclasses to do
   /// any necessary per-module initialization.
   ///
-  virtual bool doInitialization(Module &M) { return false; }
+  virtual bool doInitialization(Module &) { return false; }
 
   /// doInitialization - Virtual method overridden by BasicBlockPass subclasses
   /// to do any necessary per-function initialization.
   ///
-  virtual bool doInitialization(Function &F) { return false; }
+  virtual bool doInitialization(Function &) { return false; }
 
   /// runOnBasicBlock - Virtual method overriden by subclasses to do the
   /// per-basicblock processing of the pass.
@@ -349,12 +344,12 @@ public:
   /// doFinalization - Virtual method overriden by BasicBlockPass subclasses to
   /// do any post processing needed after all passes have run.
   ///
-  virtual bool doFinalization(Function &F) { return false; }
+  virtual bool doFinalization(Function &) { return false; }
 
   /// doFinalization - Virtual method overriden by subclasses to do any post
   /// processing needed after all passes have run.
   ///
-  virtual bool doFinalization(Module &M) { return false; }
+  virtual bool doFinalization(Module &) { return false; }
 
 
   // To run this pass on a function, we simply call runOnBasicBlock once for