[PATCH] D88128: [NewPM][MSSA] Enable MSSA when -enable-mssa-loop-dependency=true

Arthur Eubanks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 22 18:36:55 PDT 2020


aeubanks created this revision.
aeubanks added reviewers: ychen, asbirlea.
Herald added subscribers: llvm-commits, hiraditya, Prazek.
Herald added a project: LLVM.
aeubanks requested review of this revision.

Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D88128

Files:
  llvm/lib/Passes/PassBuilder.cpp
  llvm/test/Analysis/BasicAA/store-promote.ll


Index: llvm/test/Analysis/BasicAA/store-promote.ll
===================================================================
--- llvm/test/Analysis/BasicAA/store-promote.ll
+++ llvm/test/Analysis/BasicAA/store-promote.ll
@@ -3,7 +3,8 @@
 ; two pointers, then the load should be hoisted, and the store sunk.
 
 ; RUN: opt < %s -basic-aa -licm -enable-mssa-loop-dependency=false -S | FileCheck %s -check-prefixes=CHECK,AST
-; RUN: opt < %s -basic-aa -licm -enable-mssa-loop-dependency=true  -S | FileCheck %s -check-prefixes=CHECK,MSSA
+; RUN: opt < %s -basic-aa -licm -enable-mssa-loop-dependency=true -enable-new-pm=0 -S | FileCheck %s -check-prefixes=CHECK,MSSA
+; RUN: opt < %s -basic-aa -licm -enable-mssa-loop-dependency=true -enable-new-pm=1 -S | FileCheck %s -check-prefixes=CHECK,MSSA
 target datalayout = "E-p:64:64:64-a0:0:8-f32:32:32-f64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-v64:64:64-v128:128:128"
 
 @A = global i32 7               ; <i32*> [#uses=3]
Index: llvm/lib/Passes/PassBuilder.cpp
===================================================================
--- llvm/lib/Passes/PassBuilder.cpp
+++ llvm/lib/Passes/PassBuilder.cpp
@@ -2432,7 +2432,9 @@
                                            DebugLogging))
         return Err;
       // Add the nested pass manager with the appropriate adaptor.
-      bool UseMemorySSA = (Name == "loop-mssa");
+      // Check EnableMSSALoopDependency as well for compatibility with legacy PM
+      // tests.
+      bool UseMemorySSA = (Name == "loop-mssa") || EnableMSSALoopDependency;
       bool UseBFI =
           std::any_of(InnerPipeline.begin(), InnerPipeline.end(),
                       [](auto Pipeline) { return Pipeline.Name == "licm"; });
@@ -2491,8 +2493,8 @@
 //        The risk is that it may become obsolete if we're not careful.
 #define LOOP_PASS(NAME, CREATE_PASS)                                           \
   if (Name == NAME) {                                                          \
-    FPM.addPass(createFunctionToLoopPassAdaptor(CREATE_PASS, false, false,     \
-                                                DebugLogging));                \
+    FPM.addPass(createFunctionToLoopPassAdaptor(                               \
+        CREATE_PASS, EnableMSSALoopDependency, false, DebugLogging));          \
     return Error::success();                                                   \
   }
 #define LOOP_PASS_WITH_PARAMS(NAME, CREATE_PASS, PARSER)                       \


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88128.293616.patch
Type: text/x-patch
Size: 2469 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200923/beb303fc/attachment.bin>


More information about the llvm-commits mailing list