[PATCH] D133537: [pipelines] Require GlobalsAA after sanitizers

2022-09-14 Thread Vitaly Buka via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
vitalybuka marked an inline comment as done.
Closed by commit rGc69b26911168: [pipelines] Require GlobalsAA after sanitizers 
(authored by vitalybuka).

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
@@ -668,7 +668,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());
@@ -723,10 +723,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
@@ -668,7 +668,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());
@@ -723,10 +723,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] Require GlobalsAA after sanitizers

2022-09-14 Thread Vitaly Buka via Phabricator via cfe-commits
vitalybuka marked an inline comment as done.
vitalybuka added inline comments.



Comment at: clang/lib/CodeGen/BackendUtil.cpp:443
   Options.EmulatedTLS = CodeGenOpts.EmulatedTLS;
-  Options.ExplicitEmulatedTLS = true;
+  Options.ExplicitEmulatedTLS = CodeGenOpts.ExplicitEmulatedTLS;
   Options.DebuggerTuning = CodeGenOpts.getDebuggerTuning();

aeubanks wrote:
> unrelated?
yes, already fixed.


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