[PATCH] D153349: [AMDGPU] Preserve dom-tree analysis in atomic optimizer.
Pravin Jagtap via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 20 07:19:51 PDT 2023
pravinjagtap created this revision.
pravinjagtap added reviewers: arsenm, yassingh, foad.
Herald added subscribers: StephenFan, kerbowa, hiraditya, tpr, dstuttard, yaxunl, jvesely, kzhuravl.
Herald added a project: All.
pravinjagtap requested review of this revision.
Herald added subscribers: llvm-commits, wdng.
Herald added a project: LLVM.
AMDGPUAtomicOptimizer updates the dominator tree whenever
it modified the control flow. Therefore preserving the
analysis similar to legacy PM.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D153349
Files:
llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
llvm/test/CodeGen/AMDGPU/global-atomic-scan.ll
Index: llvm/test/CodeGen/AMDGPU/global-atomic-scan.ll
===================================================================
--- llvm/test/CodeGen/AMDGPU/global-atomic-scan.ll
+++ 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(
Index: llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
+++ llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
@@ -145,10 +145,13 @@
bool IsPixelShader = F.getCallingConv() == CallingConv::AMDGPU_PS;
- return AMDGPUAtomicOptimizerImpl(UA, DL, DTU, ST, IsPixelShader, ScanImpl)
- .run(F)
- ? PreservedAnalyses::none()
- : PreservedAnalyses::all();
+ if (AMDGPUAtomicOptimizerImpl(UA, DL, DTU, ST, IsPixelShader, ScanImpl)
+ .run(F)) {
+ PreservedAnalyses PA;
+ PA.preserve<DominatorTreeAnalysis>();
+ return PA;
+ }
+ return PreservedAnalyses::all();
}
bool AMDGPUAtomicOptimizerImpl::run(Function &F) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D153349.532916.patch
Type: text/x-patch
Size: 1453 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230620/b44941eb/attachment.bin>
More information about the llvm-commits
mailing list