[PATCH] D133537: [pipelines] RecomputeGlobalsAAPass after OptimizerEarlyEPCallbacks

2022-09-14 Thread Vitaly Buka via Phabricator via cfe-commits
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

2022-09-14 Thread Arthur Eubanks via Phabricator via cfe-commits
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

2022-09-14 Thread Vitaly Buka via Phabricator via cfe-commits
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

2022-09-14 Thread Vitaly Buka via Phabricator via cfe-commits
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