diff options
author | Mark Searles <m.c.searles@gmail.com> | 2018-06-12 00:41:26 +0000 |
---|---|---|
committer | Mark Searles <m.c.searles@gmail.com> | 2018-06-12 00:41:26 +0000 |
commit | 987f292c56069bc879482f4a864bb3f149ec9a54 (patch) | |
tree | 04766e8b90c398a545f98b26975d518e56225302 /llvm/lib | |
parent | a4374ab222fea039922e7df7223606498b25fb97 (diff) | |
download | bcm5719-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.cpp | 4 |
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); } |