[llvm] Reapply "[GVN] MemorySSA for GVN: add optional AllowMemorySSA" (PR #122482)

Alina Sbirlea via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 10 15:33:27 PST 2025


================
@@ -3293,16 +3303,18 @@ class llvm::gvn::GVNLegacyPass : public FunctionPass {
 public:
   static char ID; // Pass identification, replacement for typeid
 
-  explicit GVNLegacyPass(bool NoMemDepAnalysis = !GVNEnableMemDep)
-      : FunctionPass(ID), Impl(GVNOptions().setMemDep(!NoMemDepAnalysis)) {
+  explicit GVNLegacyPass(bool MemDepAnalysis = GVNEnableMemDep,
+                         bool MemSSAAnalysis = GVNEnableMemorySSA)
+      : FunctionPass(ID), Impl(GVNOptions()
+                                   .setMemDep(MemDepAnalysis)
+                                   .setMemorySSA(MemSSAAnalysis)) {
     initializeGVNLegacyPassPass(*PassRegistry::getPassRegistry());
   }
 
   bool runOnFunction(Function &F) override {
     if (skipFunction(F))
       return false;
 
-    auto *MSSAWP = getAnalysisIfAvailable<MemorySSAWrapperPass>();
----------------
alinas wrote:

(legacy pass, but..) Keep getAnalysisIfAvailable here; if it's not already available and isMemorySSAEnabled(), then getAnalysis.

https://github.com/llvm/llvm-project/pull/122482


More information about the llvm-commits mailing list