From 674ee4d353ede9bbcb233aeb5e641ef4e17c7897 Mon Sep 17 00:00:00 2001 From: Nikita Popov <npopov@redhat.com> Date: Wed, 6 Apr 2022 14:39:20 +0200 Subject: [PATCH] [LoopSink] Use MemorySSA with legacy pass manager LoopSink with the legacy pass manager still uses AST, because we can't compute MemorySSA conditionally. I think now that the legacy pass manager will be removed soon(TM) we don't need to care about compile-time impact here anymore. Additionally, since MemorySSA is no longer eagerly optimized, the impact is actually not that high anymore (~0.2% geomean regression on CTMark). This just makes legacy PM and new PM behavior line up -- as a followup I'll drop these options entirely and make MemorySSA use mandatory. Differential Revision: https://reviews.llvm.org/D123216 --- llvm/lib/Transforms/Scalar/LoopSink.cpp | 2 +- llvm/test/CodeGen/AMDGPU/opt-pipeline.ll | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Transforms/Scalar/LoopSink.cpp b/llvm/lib/Transforms/Scalar/LoopSink.cpp index e3d8dd7deef5..746c40b97de1 100644 --- a/llvm/lib/Transforms/Scalar/LoopSink.cpp +++ b/llvm/lib/Transforms/Scalar/LoopSink.cpp @@ -70,7 +70,7 @@ static cl::opt<bool> EnableMSSAInLoopSink( cl::desc("Enable MemorySSA for LoopSink in new pass manager")); static cl::opt<bool> EnableMSSAInLegacyLoopSink( - "enable-mssa-in-legacy-loop-sink", cl::Hidden, cl::init(false), + "enable-mssa-in-legacy-loop-sink", cl::Hidden, cl::init(true), cl::desc("Enable MemorySSA for LoopSink in legacy pass manager")); /// Return adjusted total frequency of \p BBs. diff --git a/llvm/test/CodeGen/AMDGPU/opt-pipeline.ll b/llvm/test/CodeGen/AMDGPU/opt-pipeline.ll index c42d8642fcab..15d8e8f6ec79 100644 --- a/llvm/test/CodeGen/AMDGPU/opt-pipeline.ll +++ b/llvm/test/CodeGen/AMDGPU/opt-pipeline.ll @@ -297,6 +297,7 @@ ; GCN-O1-NEXT: Basic Alias Analysis (stateless AA impl) ; GCN-O1-NEXT: Function Alias Analysis Results ; GCN-O1-NEXT: Scalar Evolution Analysis +; GCN-O1-NEXT: Memory SSA ; GCN-O1-NEXT: Block Frequency Analysis ; GCN-O1-NEXT: Loop Pass Manager ; GCN-O1-NEXT: Loop Sink @@ -656,6 +657,7 @@ ; GCN-O2-NEXT: Basic Alias Analysis (stateless AA impl) ; GCN-O2-NEXT: Function Alias Analysis Results ; GCN-O2-NEXT: Scalar Evolution Analysis +; GCN-O2-NEXT: Memory SSA ; GCN-O2-NEXT: Block Frequency Analysis ; GCN-O2-NEXT: Loop Pass Manager ; GCN-O2-NEXT: Loop Sink @@ -1020,6 +1022,7 @@ ; GCN-O3-NEXT: Basic Alias Analysis (stateless AA impl) ; GCN-O3-NEXT: Function Alias Analysis Results ; GCN-O3-NEXT: Scalar Evolution Analysis +; GCN-O3-NEXT: Memory SSA ; GCN-O3-NEXT: Block Frequency Analysis ; GCN-O3-NEXT: Loop Pass Manager ; GCN-O3-NEXT: Loop Sink -- GitLab