[PATCH] D133537: [pipelines] RecomputeGlobalsAAPass after OptimizerEarlyEPCallbacks
vitalybuka updated this revision to Diff 460199. vitalybuka added a comment. fix capture Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133537/new/ https://reviews.llvm.org/D133537 Files: clang/lib/CodeGen/BackendUtil.cpp Index: clang/lib/CodeGen/BackendUtil.cpp === --- clang/lib/CodeGen/BackendUtil.cpp +++ clang/lib/CodeGen/BackendUtil.cpp @@ -669,7 +669,7 @@ // the logic of the original code, but operates on "shadow" values. It // can benefit from re-running some general purpose optimization // passes. - MPM.addPass(RecomputeGlobalsAAPass()); + MPM.addPass(RequireAnalysisPass()); FunctionPassManager FPM; FPM.addPass(EarlyCSEPass(true /* Enable mem-ssa. */)); FPM.addPass(InstCombinePass()); @@ -724,10 +724,21 @@ MPM.addPass(DataFlowSanitizerPass(LangOpts.NoSanitizeFiles)); } }; - if (ClSanitizeOnOptimizerEarlyEP) -PB.registerOptimizerEarlyEPCallback(SanitizersCallback); - else + if (ClSanitizeOnOptimizerEarlyEP) { +PB.registerOptimizerEarlyEPCallback( +[SanitizersCallback](ModulePassManager , OptimizationLevel Level) { + ModulePassManager NewMPM; + SanitizersCallback(NewMPM, Level); + if (!NewMPM.isEmpty()) { +// Sanitizers can abandon. +NewMPM.addPass(RequireAnalysisPass()); +MPM.addPass(std::move(NewMPM)); + } +}); + } else { +// LastEP does not need GlobalsAA. PB.registerOptimizerLastEPCallback(SanitizersCallback); + } } void EmitAssemblyHelper::RunOptimizationPipeline( Index: clang/lib/CodeGen/BackendUtil.cpp === --- clang/lib/CodeGen/BackendUtil.cpp +++ clang/lib/CodeGen/BackendUtil.cpp @@ -669,7 +669,7 @@ // the logic of the original code, but operates on "shadow" values. It // can benefit from re-running some general purpose optimization // passes. - MPM.addPass(RecomputeGlobalsAAPass()); + MPM.addPass(RequireAnalysisPass()); FunctionPassManager FPM; FPM.addPass(EarlyCSEPass(true /* Enable mem-ssa. */)); FPM.addPass(InstCombinePass()); @@ -724,10 +724,21 @@ MPM.addPass(DataFlowSanitizerPass(LangOpts.NoSanitizeFiles)); } }; - if (ClSanitizeOnOptimizerEarlyEP) -PB.registerOptimizerEarlyEPCallback(SanitizersCallback); - else + if (ClSanitizeOnOptimizerEarlyEP) { +PB.registerOptimizerEarlyEPCallback( +[SanitizersCallback](ModulePassManager , OptimizationLevel Level) { + ModulePassManager NewMPM; + SanitizersCallback(NewMPM, Level); + if (!NewMPM.isEmpty()) { +// Sanitizers can abandon. +NewMPM.addPass(RequireAnalysisPass()); +MPM.addPass(std::move(NewMPM)); + } +}); + } else { +// LastEP does not need GlobalsAA. PB.registerOptimizerLastEPCallback(SanitizersCallback); + } } void EmitAssemblyHelper::RunOptimizationPipeline( ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D133537: [pipelines] RecomputeGlobalsAAPass after OptimizerEarlyEPCallbacks
aeubanks accepted this revision. aeubanks added a comment. This revision is now accepted and ready to land. lg with comments addressed title needs update Comment at: clang/lib/CodeGen/BackendUtil.cpp:443 Options.EmulatedTLS = CodeGenOpts.EmulatedTLS; - Options.ExplicitEmulatedTLS = true; + Options.ExplicitEmulatedTLS = CodeGenOpts.ExplicitEmulatedTLS; Options.DebuggerTuning = CodeGenOpts.getDebuggerTuning(); unrelated? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133537/new/ https://reviews.llvm.org/D133537 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D133537: [pipelines] RecomputeGlobalsAAPass after OptimizerEarlyEPCallbacks
vitalybuka updated this revision to Diff 460197. vitalybuka edited the summary of this revision. vitalybuka added a comment. remove typo Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133537/new/ https://reviews.llvm.org/D133537 Files: clang/lib/CodeGen/BackendUtil.cpp Index: clang/lib/CodeGen/BackendUtil.cpp === --- clang/lib/CodeGen/BackendUtil.cpp +++ clang/lib/CodeGen/BackendUtil.cpp @@ -669,7 +669,7 @@ // the logic of the original code, but operates on "shadow" values. It // can benefit from re-running some general purpose optimization // passes. - MPM.addPass(RecomputeGlobalsAAPass()); + MPM.addPass(RequireAnalysisPass()); FunctionPassManager FPM; FPM.addPass(EarlyCSEPass(true /* Enable mem-ssa. */)); FPM.addPass(InstCombinePass()); @@ -724,10 +724,21 @@ MPM.addPass(DataFlowSanitizerPass(LangOpts.NoSanitizeFiles)); } }; - if (ClSanitizeOnOptimizerEarlyEP) -PB.registerOptimizerEarlyEPCallback(SanitizersCallback); - else + if (ClSanitizeOnOptimizerEarlyEP) { +PB.registerOptimizerEarlyEPCallback( +[&](ModulePassManager , OptimizationLevel Level) { + ModulePassManager NewMPM; + SanitizersCallback(NewMPM, Level); + if (!NewMPM.isEmpty()) { +// Sanitizers can abandon. +NewMPM.addPass(RequireAnalysisPass()); +MPM.addPass(std::move(NewMPM)); + } +}); + } else { +// LastEP does not need GlobalsAA. PB.registerOptimizerLastEPCallback(SanitizersCallback); + } } void EmitAssemblyHelper::RunOptimizationPipeline( Index: clang/lib/CodeGen/BackendUtil.cpp === --- clang/lib/CodeGen/BackendUtil.cpp +++ clang/lib/CodeGen/BackendUtil.cpp @@ -669,7 +669,7 @@ // the logic of the original code, but operates on "shadow" values. It // can benefit from re-running some general purpose optimization // passes. - MPM.addPass(RecomputeGlobalsAAPass()); + MPM.addPass(RequireAnalysisPass()); FunctionPassManager FPM; FPM.addPass(EarlyCSEPass(true /* Enable mem-ssa. */)); FPM.addPass(InstCombinePass()); @@ -724,10 +724,21 @@ MPM.addPass(DataFlowSanitizerPass(LangOpts.NoSanitizeFiles)); } }; - if (ClSanitizeOnOptimizerEarlyEP) -PB.registerOptimizerEarlyEPCallback(SanitizersCallback); - else + if (ClSanitizeOnOptimizerEarlyEP) { +PB.registerOptimizerEarlyEPCallback( +[&](ModulePassManager , OptimizationLevel Level) { + ModulePassManager NewMPM; + SanitizersCallback(NewMPM, Level); + if (!NewMPM.isEmpty()) { +// Sanitizers can abandon. +NewMPM.addPass(RequireAnalysisPass()); +MPM.addPass(std::move(NewMPM)); + } +}); + } else { +// LastEP does not need GlobalsAA. PB.registerOptimizerLastEPCallback(SanitizersCallback); + } } void EmitAssemblyHelper::RunOptimizationPipeline( ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D133537: [pipelines] RecomputeGlobalsAAPass after OptimizerEarlyEPCallbacks
vitalybuka updated this revision to Diff 460194. vitalybuka added a comment. Herald added a project: clang. Herald added a subscriber: cfe-commits. update Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D133537/new/ https://reviews.llvm.org/D133537 Files: clang/lib/CodeGen/BackendUtil.cpp Index: clang/lib/CodeGen/BackendUtil.cpp === --- clang/lib/CodeGen/BackendUtil.cpp +++ clang/lib/CodeGen/BackendUtil.cpp @@ -440,7 +440,7 @@ CodeGenOpts.UniqueBasicBlockSectionNames; Options.TLSSize = CodeGenOpts.TLSSize; Options.EmulatedTLS = CodeGenOpts.EmulatedTLS; - Options.ExplicitEmulatedTLS = true; + Options.ExplicitEmulatedTLS = CodeGenOpts.ExplicitEmulatedTLS; Options.DebuggerTuning = CodeGenOpts.getDebuggerTuning(); Options.EmitStackSizeSection = CodeGenOpts.StackSizeSection; Options.StackUsageOutput = CodeGenOpts.StackUsageOutput; @@ -669,7 +669,7 @@ // the logic of the original code, but operates on "shadow" values. It // can benefit from re-running some general purpose optimization // passes. - MPM.addPass(RecomputeGlobalsAAPass()); + MPM.addPass(RequireAnalysisPass()); FunctionPassManager FPM; FPM.addPass(EarlyCSEPass(true /* Enable mem-ssa. */)); FPM.addPass(InstCombinePass()); @@ -724,10 +724,21 @@ MPM.addPass(DataFlowSanitizerPass(LangOpts.NoSanitizeFiles)); } }; - if (ClSanitizeOnOptimizerEarlyEP) -PB.registerOptimizerEarlyEPCallback(SanitizersCallback); - else + if (ClSanitizeOnOptimizerEarlyEP) { +PB.registerOptimizerEarlyEPCallback( +[&](ModulePassManager , OptimizationLevel Level) { + ModulePassManager NewMPM; + SanitizersCallback(NewMPM, Level); + if (!NewMPM.isEmpty()) { +// Sanitizers can abandon. +NewMPM.addPass(RequireAnalysisPass()); +MPM.addPass(std::move(NewMPM)); + } +}); + } else { +// LastEP does not need GlobalsAA. PB.registerOptimizerLastEPCallback(SanitizersCallback); + } } void EmitAssemblyHelper::RunOptimizationPipeline( Index: clang/lib/CodeGen/BackendUtil.cpp === --- clang/lib/CodeGen/BackendUtil.cpp +++ clang/lib/CodeGen/BackendUtil.cpp @@ -440,7 +440,7 @@ CodeGenOpts.UniqueBasicBlockSectionNames; Options.TLSSize = CodeGenOpts.TLSSize; Options.EmulatedTLS = CodeGenOpts.EmulatedTLS; - Options.ExplicitEmulatedTLS = true; + Options.ExplicitEmulatedTLS = CodeGenOpts.ExplicitEmulatedTLS; Options.DebuggerTuning = CodeGenOpts.getDebuggerTuning(); Options.EmitStackSizeSection = CodeGenOpts.StackSizeSection; Options.StackUsageOutput = CodeGenOpts.StackUsageOutput; @@ -669,7 +669,7 @@ // the logic of the original code, but operates on "shadow" values. It // can benefit from re-running some general purpose optimization // passes. - MPM.addPass(RecomputeGlobalsAAPass()); + MPM.addPass(RequireAnalysisPass()); FunctionPassManager FPM; FPM.addPass(EarlyCSEPass(true /* Enable mem-ssa. */)); FPM.addPass(InstCombinePass()); @@ -724,10 +724,21 @@ MPM.addPass(DataFlowSanitizerPass(LangOpts.NoSanitizeFiles)); } }; - if (ClSanitizeOnOptimizerEarlyEP) -PB.registerOptimizerEarlyEPCallback(SanitizersCallback); - else + if (ClSanitizeOnOptimizerEarlyEP) { +PB.registerOptimizerEarlyEPCallback( +[&](ModulePassManager , OptimizationLevel Level) { + ModulePassManager NewMPM; + SanitizersCallback(NewMPM, Level); + if (!NewMPM.isEmpty()) { +// Sanitizers can abandon. +NewMPM.addPass(RequireAnalysisPass()); +MPM.addPass(std::move(NewMPM)); + } +}); + } else { +// LastEP does not need GlobalsAA. PB.registerOptimizerLastEPCallback(SanitizersCallback); + } } void EmitAssemblyHelper::RunOptimizationPipeline( ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits