summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-06-18 12:48:36 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-06-18 12:48:36 +0000
commitf39f3bd056fa99fb8bc437d7fa5932c85eea8d8e (patch)
treee7ae5744f702ff6b3402d0d3e05996a5fbbfab71 /llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
parentc99d9aee00753dc878e403c4088227a25b45e4b2 (diff)
downloadbcm5719-llvm-f39f3bd056fa99fb8bc437d7fa5932c85eea8d8e.tar.gz
bcm5719-llvm-f39f3bd056fa99fb8bc437d7fa5932c85eea8d8e.zip
AMDGPU: Change API for checking for exec modification
Invert the name and return value to better reflect the imprecise nature. Force passing in the DefMI, since it's known in the 2 users and could possibly fail for an arbitrary vreg. Allow specifying a specific user instruction. Scan through use instructions, instead of use operands. Add scan thresholds instead of searching infinitely. Stop using a set to track seen uses. I didn't understand this usage, or why it would not check the last use. I don't think the use list has any particular order. llvm-svn: 363675
Diffstat (limited to 'llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp b/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
index 430cf480eb1..fb1d71779cb 100644
--- a/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
+++ b/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
@@ -331,7 +331,7 @@ bool GCNDPPCombine::combineDPPMov(MachineInstr &MovMI) const {
auto *DstOpnd = TII->getNamedOperand(MovMI, AMDGPU::OpName::vdst);
assert(DstOpnd && DstOpnd->isReg());
auto DPPMovReg = DstOpnd->getReg();
- if (!isEXECMaskConstantBetweenDefAndUses(DPPMovReg, *MRI)) {
+ if (execMayBeModifiedBeforeUse(*MRI, DPPMovReg, MovMI)) {
LLVM_DEBUG(dbgs() << " failed: EXEC mask should remain the same"
" for all uses\n");
return false;
OpenPOWER on IntegriCloud