diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-02-05 00:53:22 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-02-05 00:53:22 +0000 |
| commit | 2bf74ec8c507dcb5cc71b21284cda98f6ba0e13e (patch) | |
| tree | 7daecfd68a0ef56dce145651fea84b551ea7ae9a /llvm/lib/CodeGen | |
| parent | d99af23765a99ef2461d06b74448d6e54dd7e573 (diff) | |
| download | bcm5719-llvm-2bf74ec8c507dcb5cc71b21284cda98f6ba0e13e.tar.gz bcm5719-llvm-2bf74ec8c507dcb5cc71b21284cda98f6ba0e13e.zip | |
GlobalISel: Fix verifier crashing on non-register operands
Also correct the wording of error on subregisters.
llvm-svn: 353128
Diffstat (limited to 'llvm/lib/CodeGen')
| -rw-r--r-- | llvm/lib/CodeGen/MachineVerifier.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/MachineVerifier.cpp b/llvm/lib/CodeGen/MachineVerifier.cpp index cf9cf75d592..6778dce3972 100644 --- a/llvm/lib/CodeGen/MachineVerifier.cpp +++ b/llvm/lib/CodeGen/MachineVerifier.cpp @@ -933,6 +933,11 @@ void MachineVerifier::verifyPreISelGenericInstruction(const MachineInstr *MI) { Types.resize(std::max(TypeIdx + 1, Types.size())); const MachineOperand *MO = &MI->getOperand(I); + if (!MO->isReg()) { + report("generic instruction must use register operands", MI); + continue; + } + LLT OpTy = MRI->getType(MO->getReg()); // Don't report a type mismatch if there is no actual mismatch, only a // type missing, to reduce noise: @@ -1517,7 +1522,7 @@ MachineVerifier::visitMachineOperand(const MachineOperand *MO, unsigned MONum) { return; } if (SubIdx) { - report("Generic virtual register does not subregister index", MO, + report("Generic virtual register does not allow subregister index", MO, MONum); return; } |

