summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorMark Searles <m.c.searles@gmail.com>2018-06-12 00:41:26 +0000
committerMark Searles <m.c.searles@gmail.com>2018-06-12 00:41:26 +0000
commit987f292c56069bc879482f4a864bb3f149ec9a54 (patch)
tree04766e8b90c398a545f98b26975d518e56225302 /llvm/lib
parenta4374ab222fea039922e7df7223606498b25fb97 (diff)
downloadbcm5719-llvm-987f292c56069bc879482f4a864bb3f149ec9a54.tar.gz
bcm5719-llvm-987f292c56069bc879482f4a864bb3f149ec9a54.zip
[AMDGPU] prevent hitting Assertion `isReg() && "Wrong MachineOperand accessor"'
The use iterator, used within findMaskOperands(), can return anything which is not a def. isUse() requires a register, so check isReg() before calling isUse(). Differential Revision: https://reviews.llvm.org/D48047 llvm-svn: 334459
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp b/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
index a8426c3039f..3c0c5f93ce9 100644
--- a/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
+++ b/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
@@ -453,8 +453,8 @@ void SILowerControlFlow::findMaskOperands(MachineInstr &MI, unsigned OpNo,
return;
for (const auto &SrcOp : Def->explicit_operands())
- if (SrcOp.isUse() && (!SrcOp.isReg() ||
- TargetRegisterInfo::isVirtualRegister(SrcOp.getReg()) ||
+ if (SrcOp.isReg() && SrcOp.isUse() &&
+ (TargetRegisterInfo::isVirtualRegister(SrcOp.getReg()) ||
SrcOp.getReg() == AMDGPU::EXEC))
Src.push_back(SrcOp);
}
OpenPOWER on IntegriCloud