Implementation of path profiling.
[oota-llvm.git] / include / llvm / PassRegistry.h
index 8b7f036e20c181b0ca37321b95242121dfbc7476..5d89c492218d8e7dab03ab2e62bd6c59baa9cd52 100644 (file)
@@ -18,7 +18,6 @@
 #define LLVM_PASSREGISTRY_H
 
 #include "llvm/ADT/StringRef.h"
-#include "llvm/System/Mutex.h"
 
 namespace llvm {
 
@@ -33,7 +32,6 @@ struct PassRegistrationListener;
 /// each thread.
 class PassRegistry {
   mutable void *pImpl;
-  mutable sys::SmartMutex<true> Lock;
   void *getImpl() const;
    
 public:
@@ -55,7 +53,7 @@ public:
   
   /// registerPass - Register a pass (by means of its PassInfo) with the 
   /// registry.  Required in order to use the pass with a PassManager.
-  void registerPass(const PassInfo &PI);
+  void registerPass(const PassInfo &PI, bool ShouldFree = false);
   
   /// registerPass - Unregister a pass (by means of its PassInfo) with the 
   /// registry.
@@ -65,7 +63,8 @@ public:
   // an analysis group) with the registry.  Like registerPass, this is required 
   // in order for a PassManager to be able to use this group/pass.
   void registerAnalysisGroup(const void *InterfaceID, const void *PassID,
-                             PassInfo& Registeree, bool isDefault);
+                             PassInfo& Registeree, bool isDefault,
+                             bool ShouldFree = false);
   
   /// enumerateWith - Enumerate the registered passes, calling the provided
   /// PassRegistrationListener's passEnumerate() callback on each of them.