summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/VirtRegMap.cpp
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2015-11-17 00:50:55 +0000
committerMatthias Braun <matze@braunis.de>2015-11-17 00:50:55 +0000
commitfe9d6f211f0b0b4beed7abd97c9e59057477234c (patch)
treefd51e83ab8831b882e22f053732d2d837521feed /llvm/lib/CodeGen/VirtRegMap.cpp
parentcdec7ee565e5bcf399537c0dc218a4fdaba5fdac (diff)
downloadbcm5719-llvm-fe9d6f211f0b0b4beed7abd97c9e59057477234c.tar.gz
bcm5719-llvm-fe9d6f211f0b0b4beed7abd97c9e59057477234c.zip
Assume lane masks are always precise
Allowing imprecise lane masks in case of more than 32 sub register lanes lead to some tricky corner cases, and I need another bugfix for another one. Instead I rather declare lane masks as precise and let tablegen abort if we do not have enough bits. This does not affect any in-tree target, even AMDGPU only needs 16 lanes at the moment. If the 32 lanes turn out to be a problem in the future, then we can easily change the LaneBitmask typedef to uint64_t. Differential Revision: http://reviews.llvm.org/D14557 llvm-svn: 253279
Diffstat (limited to 'llvm/lib/CodeGen/VirtRegMap.cpp')
-rw-r--r--llvm/lib/CodeGen/VirtRegMap.cpp8
1 files changed, 0 insertions, 8 deletions
diff --git a/llvm/lib/CodeGen/VirtRegMap.cpp b/llvm/lib/CodeGen/VirtRegMap.cpp
index bf992a12d28..bf1c0dce9e5 100644
--- a/llvm/lib/CodeGen/VirtRegMap.cpp
+++ b/llvm/lib/CodeGen/VirtRegMap.cpp
@@ -400,14 +400,6 @@ void VirtRegRewriter::rewrite() {
MO.setIsUndef(true);
} else if (!MO.isDead()) {
assert(MO.isDef());
- // Things get tricky when we ran out of lane mask bits and
- // merged multiple lanes into the overflow bit: In this case
- // our subregister liveness tracking isn't precise and we can't
- // know what subregister parts are undefined, fall back to the
- // implicit super-register def then.
- LaneBitmask LaneMask = TRI->getSubRegIndexLaneMask(SubReg);
- if (TargetRegisterInfo::isImpreciseLaneMask(LaneMask))
- SuperDefs.push_back(PhysReg);
}
}
OpenPOWER on IntegriCloud