summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineRegisterInfo.cpp
diff options
context:
space:
mode:
authorAhmed Bougacha <ahmed.bougacha@gmail.com>2016-07-19 19:48:36 +0000
committerAhmed Bougacha <ahmed.bougacha@gmail.com>2016-07-19 19:48:36 +0000
commit5a59b24bdd3b1836884d5792a527b84c6a74b148 (patch)
tree342a18933410bb50ea1a2f86d15f23666666d7a6 /llvm/lib/CodeGen/MachineRegisterInfo.cpp
parent0313a08a1a8634442c9eaa4dca7c619beb7ed3d3 (diff)
downloadbcm5719-llvm-5a59b24bdd3b1836884d5792a527b84c6a74b148.tar.gz
bcm5719-llvm-5a59b24bdd3b1836884d5792a527b84c6a74b148.zip
[GlobalISel] Mark newly-created gvregs as having a bank.
Also verify that we never try to set the size of a vreg associated to a register class. Report an error when we encounter that in MIR. Fix a testcase that hit that error and had a size for no reason. llvm-svn: 276012
Diffstat (limited to 'llvm/lib/CodeGen/MachineRegisterInfo.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineRegisterInfo.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/MachineRegisterInfo.cpp b/llvm/lib/CodeGen/MachineRegisterInfo.cpp
index 613598dbe21..96786552e9b 100644
--- a/llvm/lib/CodeGen/MachineRegisterInfo.cpp
+++ b/llvm/lib/CodeGen/MachineRegisterInfo.cpp
@@ -114,6 +114,9 @@ MachineRegisterInfo::getSize(unsigned VReg) const {
}
void MachineRegisterInfo::setSize(unsigned VReg, unsigned Size) {
+ // Check that VReg doesn't have a class.
+ assert(!getRegClassOrRegBank(VReg).is<const TargetRegisterClass *>() &&
+ "Can't set the size of a non-generic virtual register");
getVRegToSize()[VReg] = Size;
}
@@ -124,8 +127,8 @@ MachineRegisterInfo::createGenericVirtualRegister(unsigned Size) {
// New virtual register number.
unsigned Reg = TargetRegisterInfo::index2VirtReg(getNumVirtRegs());
VRegInfo.grow(Reg);
- // FIXME: Should we use a dummy register class?
- VRegInfo[Reg].first = static_cast<TargetRegisterClass *>(nullptr);
+ // FIXME: Should we use a dummy register bank?
+ VRegInfo[Reg].first = static_cast<RegisterBank *>(nullptr);
getVRegToSize()[Reg] = Size;
RegAllocHints.grow(Reg);
if (TheDelegate)
OpenPOWER on IntegriCloud