summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-02-05 00:53:22 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-02-05 00:53:22 +0000
commit2bf74ec8c507dcb5cc71b21284cda98f6ba0e13e (patch)
tree7daecfd68a0ef56dce145651fea84b551ea7ae9a /llvm/lib
parentd99af23765a99ef2461d06b74448d6e54dd7e573 (diff)
downloadbcm5719-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')
-rw-r--r--llvm/lib/CodeGen/MachineVerifier.cpp7
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;
}
OpenPOWER on IntegriCloud