diff options
Diffstat (limited to 'contrib/llvm/include/llvm/PassSupport.h')
-rw-r--r-- | contrib/llvm/include/llvm/PassSupport.h | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/contrib/llvm/include/llvm/PassSupport.h b/contrib/llvm/include/llvm/PassSupport.h index e77a0b9..602f45a 100644 --- a/contrib/llvm/include/llvm/PassSupport.h +++ b/contrib/llvm/include/llvm/PassSupport.h @@ -31,8 +31,6 @@ namespace llvm { -class TargetMachine; - #define INITIALIZE_PASS(passName, arg, name, cfg, analysis) \ static void *initialize##passName##PassOnce(PassRegistry &Registry) { \ PassInfo *PI = new PassInfo( \ @@ -41,7 +39,7 @@ class TargetMachine; Registry.registerPass(*PI, true); \ return PI; \ } \ - LLVM_DEFINE_ONCE_FLAG(Initialize##passName##PassFlag); \ + static llvm::once_flag Initialize##passName##PassFlag; \ void llvm::initialize##passName##Pass(PassRegistry &Registry) { \ llvm::call_once(Initialize##passName##PassFlag, \ initialize##passName##PassOnce, std::ref(Registry)); \ @@ -61,7 +59,7 @@ class TargetMachine; Registry.registerPass(*PI, true); \ return PI; \ } \ - LLVM_DEFINE_ONCE_FLAG(Initialize##passName##PassFlag); \ + static llvm::once_flag Initialize##passName##PassFlag; \ void llvm::initialize##passName##Pass(PassRegistry &Registry) { \ llvm::call_once(Initialize##passName##PassFlag, \ initialize##passName##PassOnce, std::ref(Registry)); \ @@ -78,10 +76,6 @@ class TargetMachine; template <typename PassName> Pass *callDefaultCtor() { return new PassName(); } -template <typename PassName> Pass *callTargetMachineCtor(TargetMachine *TM) { - return new PassName(TM); -} - //===--------------------------------------------------------------------------- /// RegisterPass<t> template - This template class is used to notify the system /// that a Pass is available for use, and registers it into the internal @@ -93,11 +87,7 @@ template <typename PassName> Pass *callTargetMachineCtor(TargetMachine *TM) { /// static RegisterPass<YourPassClassName> tmp("passopt", "My Pass Name"); /// /// This statement will cause your pass to be created by calling the default -/// constructor exposed by the pass. If you have a different constructor that -/// must be called, create a global constructor function (which takes the -/// arguments you need and returns a Pass*) and register your pass like this: -/// -/// static RegisterPass<PassClassName> tmp("passopt", "My Name"); +/// constructor exposed by the pass. /// template <typename passName> struct RegisterPass : public PassInfo { // Register Pass using default constructor... @@ -152,7 +142,7 @@ struct RegisterAnalysisGroup : public RegisterAGBase { Registry.registerAnalysisGroup(&agName::ID, 0, *AI, false, true); \ return AI; \ } \ - LLVM_DEFINE_ONCE_FLAG(Initialize##agName##AnalysisGroupFlag); \ + static llvm::once_flag Initialize##agName##AnalysisGroupFlag; \ void llvm::initialize##agName##AnalysisGroup(PassRegistry &Registry) { \ llvm::call_once(Initialize##agName##AnalysisGroupFlag, \ initialize##agName##AnalysisGroupOnce, \ @@ -173,7 +163,7 @@ struct RegisterAnalysisGroup : public RegisterAGBase { true); \ return AI; \ } \ - LLVM_DEFINE_ONCE_FLAG(Initialize##passName##PassFlag); \ + static llvm::once_flag Initialize##passName##PassFlag; \ void llvm::initialize##passName##Pass(PassRegistry &Registry) { \ llvm::call_once(Initialize##passName##PassFlag, \ initialize##passName##PassOnce, std::ref(Registry)); \ @@ -194,7 +184,7 @@ struct RegisterAnalysisGroup : public RegisterAGBase { Registry.registerAnalysisGroup(&agName::ID, &passName::ID, *AI, def, true); \ return AI; \ } \ - LLVM_DEFINE_ONCE_FLAG(Initialize##passName##PassFlag); \ + static llvm::once_flag Initialize##passName##PassFlag; \ void llvm::initialize##passName##Pass(PassRegistry &Registry) { \ llvm::call_once(Initialize##passName##PassFlag, \ initialize##passName##PassOnce, std::ref(Registry)); \ |