[llvm] 8e1e871 - [AMDGPU] Preserve dom-tree analysis in atomic optimizer.
Pravin Jagtap via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 21 05:04:04 PDT 2023
Author: Pravin Jagtap
Date: 2023-06-21T08:02:43-04:00
New Revision: 8e1e871e2ff1d08e96e2238c8efe881a7e8b4824
URL: https://github.com/llvm/llvm-project/commit/8e1e871e2ff1d08e96e2238c8efe881a7e8b4824
DIFF: https://github.com/llvm/llvm-project/commit/8e1e871e2ff1d08e96e2238c8efe881a7e8b4824.diff
LOG: [AMDGPU] Preserve dom-tree analysis in atomic optimizer.
AMDGPUAtomicOptimizer updates the dominator tree whenever
it modified the control flow. Therefore preserving the
analysis similar to legacy PM.
Reviewed By: arsenm, yassingh, #amdgpu
Differential Revision: https://reviews.llvm.org/D153349
Added:
Modified:
llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
llvm/test/CodeGen/AMDGPU/global-atomic-scan.ll
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
index 21696ace0aab7..a9200c4245c6b 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
@@ -145,10 +145,17 @@ PreservedAnalyses AMDGPUAtomicOptimizerPass::run(Function &F,
bool IsPixelShader = F.getCallingConv() == CallingConv::AMDGPU_PS;
- return AMDGPUAtomicOptimizerImpl(UA, DL, DTU, ST, IsPixelShader, ScanImpl)
- .run(F)
- ? PreservedAnalyses::none()
- : PreservedAnalyses::all();
+ bool IsChanged =
+ AMDGPUAtomicOptimizerImpl(UA, DL, DTU, ST, IsPixelShader, ScanImpl)
+ .run(F);
+
+ if (!IsChanged) {
+ return PreservedAnalyses::all();
+ }
+
+ PreservedAnalyses PA;
+ PA.preserve<DominatorTreeAnalysis>();
+ return PA;
}
bool AMDGPUAtomicOptimizerImpl::run(Function &F) {
diff --git a/llvm/test/CodeGen/AMDGPU/global-atomic-scan.ll b/llvm/test/CodeGen/AMDGPU/global-atomic-scan.ll
index 3a63629bc7705..45f6d183398b9 100644
--- a/llvm/test/CodeGen/AMDGPU/global-atomic-scan.ll
+++ b/llvm/test/CodeGen/AMDGPU/global-atomic-scan.ll
@@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt -S -mtriple=amdgcn-- -passes=amdgpu-atomic-optimizer %s | FileCheck -check-prefix=IR %s
+; RUN: opt -S -mtriple=amdgcn-- -passes='amdgpu-atomic-optimizer,verify<domtree>' %s | FileCheck -check-prefix=IR %s
define amdgpu_kernel void @atomic_add_i32_offset(ptr addrspace(1) %out, i32 %in) {
; IR-LABEL: @atomic_add_i32_offset(
More information about the llvm-commits
mailing list