diff options
-rw-r--r-- | llvm/lib/Transforms/Utils/LoopSimplify.cpp | 3 | ||||
-rw-r--r-- | llvm/test/Analysis/MemorySSA/pr41853.ll | 16 |
2 files changed, 18 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopSimplify.cpp b/llvm/lib/Transforms/Utils/LoopSimplify.cpp index 4fa04d473e1..5ec12aafff0 100644 --- a/llvm/lib/Transforms/Utils/LoopSimplify.cpp +++ b/llvm/lib/Transforms/Utils/LoopSimplify.cpp @@ -768,7 +768,8 @@ namespace { AU.addPreserved<DependenceAnalysisWrapperPass>(); AU.addPreservedID(BreakCriticalEdgesID); // No critical edges added. AU.addPreserved<BranchProbabilityInfoWrapperPass>(); - AU.addPreserved<MemorySSAWrapperPass>(); + if (EnableMSSALoopDependency) + AU.addPreserved<MemorySSAWrapperPass>(); } /// verifyAnalysis() - Verify LoopSimplifyForm's guarantees. diff --git a/llvm/test/Analysis/MemorySSA/pr41853.ll b/llvm/test/Analysis/MemorySSA/pr41853.ll new file mode 100644 index 00000000000..6dbc9d78262 --- /dev/null +++ b/llvm/test/Analysis/MemorySSA/pr41853.ll @@ -0,0 +1,16 @@ +; RUN: opt -S -memoryssa -loop-simplify -early-cse-memssa -verify-memoryssa %s | FileCheck %s +; RUN: opt -S -memoryssa -loop-simplify -early-cse-memssa -enable-mssa-loop-dependency -verify-memoryssa %s | FileCheck %s +; REQUIRES: asserts +target triple = "x86_64-unknown-linux-gnu" + +; CHECK-LABEL: @func() +define void @func() { + br i1 undef, label %bb5, label %bb3 + +bb5: ; preds = %bb5, %0 + store i16 undef, i16* undef + br i1 undef, label %bb5, label %bb3 + +bb3: ; preds = %bb5, %0 + ret void +} |