[llvm] r283850 - MIRParser: generic register operands with types

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 10 21:22:30 PDT 2016


Author: matze
Date: Mon Oct 10 23:22:29 2016
New Revision: 283850

URL: http://llvm.org/viewvc/llvm-project?rev=283850&view=rev
Log:
MIRParser: generic register operands with types

This should fix the fallout of r283848.

Modified:
    llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp
    llvm/trunk/lib/CodeGen/MachineRegisterInfo.cpp

Modified: llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp?rev=283850&r1=283849&r2=283850&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp (original)
+++ llvm/trunk/lib/CodeGen/MIRParser/MIParser.cpp Mon Oct 10 23:22:29 2016
@@ -990,7 +990,7 @@ bool MIParser::parseRegisterOperand(Mach
     // Virtual registers may have a size with GlobalISel.
     if (!TargetRegisterInfo::isVirtualRegister(Reg))
       return error("unexpected size on physical register");
-    if (MRI.getRegClassOrRegBank(Reg).is<const TargetRegisterClass *>())
+    if (RegInfo->Kind != VRegInfo::GENERIC)
       return error("unexpected size on non-generic virtual register");
 
     LLT Ty;

Modified: llvm/trunk/lib/CodeGen/MachineRegisterInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineRegisterInfo.cpp?rev=283850&r1=283849&r2=283850&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MachineRegisterInfo.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineRegisterInfo.cpp Mon Oct 10 23:22:29 2016
@@ -124,7 +124,8 @@ LLT MachineRegisterInfo::getType(unsigne
 
 void MachineRegisterInfo::setType(unsigned VReg, LLT Ty) {
   // Check that VReg doesn't have a class.
-  assert(!getRegClassOrRegBank(VReg).is<const TargetRegisterClass *>() &&
+  assert(getRegClassOrRegBank(VReg).isNull() ||
+         !getRegClassOrRegBank(VReg).is<const TargetRegisterClass *>() &&
          "Can't set the size of a non-generic virtual register");
   getVRegToType()[VReg] = Ty;
 }




More information about the llvm-commits mailing list