X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FPassRegistry.h;h=5d89c492218d8e7dab03ab2e62bd6c59baa9cd52;hb=d7ace3f8d1b7216d7381c408b26259e1201f7c29;hp=1fb11ed64c1821a68e2cb387906bfec0f75f27ce;hpb=a4b06f7c55a9620ca104f0e056da1ac423e16f78;p=oota-llvm.git diff --git a/include/llvm/PassRegistry.h b/include/llvm/PassRegistry.h index 1fb11ed64c1..5d89c492218 100644 --- a/include/llvm/PassRegistry.h +++ b/include/llvm/PassRegistry.h @@ -17,8 +17,7 @@ #ifndef LLVM_PASSREGISTRY_H #define LLVM_PASSREGISTRY_H -#include "llvm/ADT/StringMap.h" -#include "llvm/System/DataTypes.h" +#include "llvm/ADT/StringRef.h" namespace llvm { @@ -36,6 +35,9 @@ class PassRegistry { void *getImpl() const; public: + PassRegistry() : pImpl(0) { } + ~PassRegistry(); + /// getPassRegistry - Access the global registry object, which is /// automatically initialized at application launch and destroyed by /// llvm_shutdown. @@ -51,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. @@ -61,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.