[llvm] [AMDGPU] Add DSE pass during CodeGenPrepare (PR #172069)
Gang Chen via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 12 11:03:00 PST 2025
https://github.com/cmc-rep created https://github.com/llvm/llvm-project/pull/172069
None
>From 3edff2ac91e4033ec4388f16ed1c11be619d3604 Mon Sep 17 00:00:00 2001
From: Gang Chen <Gang.Chen at amd.com>
Date: Fri, 12 Dec 2025 11:00:52 -0800
Subject: [PATCH] [AMDGPU] Add DSE pass during CodeGenPrepare
---
llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
index 8a831f7915882..b8b6d2427d7d0 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
@@ -104,6 +104,7 @@
#include "llvm/Transforms/IPO/GlobalDCE.h"
#include "llvm/Transforms/IPO/Internalize.h"
#include "llvm/Transforms/Scalar.h"
+#include "llvm/Transforms/Scalar/DeadStoreElimination.h"
#include "llvm/Transforms/Scalar/EarlyCSE.h"
#include "llvm/Transforms/Scalar/FlattenCFG.h"
#include "llvm/Transforms/Scalar/GVN.h"
@@ -1413,6 +1414,9 @@ void AMDGPUPassConfig::addCodeGenPrepare() {
addPass(createAMDGPULowerKernelArgumentsPass());
TargetPassConfig::addCodeGenPrepare();
+ // TODO: Remove DSE when LoadStoreVectorizer is enhanced to handle
+ // partially overlapping vector-stores.
+ addPass(createDeadStoreEliminationPass());
if (isPassEnabled(EnableLoadStoreVectorizer))
addPass(createLoadStoreVectorizerPass());
@@ -2183,6 +2187,9 @@ void AMDGPUCodeGenPassBuilder::addCodeGenPrepare(AddIRPass &addPass) const {
addPass(AMDGPULowerKernelArgumentsPass(TM));
Base::addCodeGenPrepare(addPass);
+ // TODO: Remove DSE when LoadStoreVectorizer is enhanced to handle
+ // partially overlapping vector-stores.
+ addPass(DSEPass());
if (isPassEnabled(EnableLoadStoreVectorizer))
addPass(LoadStoreVectorizerPass());
More information about the llvm-commits
mailing list