summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorDylan McKay <dylanmckay34@gmail.com>2016-09-30 14:05:15 +0000
committerDylan McKay <dylanmckay34@gmail.com>2016-09-30 14:05:15 +0000
commit309eba75b1f43a8fb0d1cee3b90e9cf2023b40a3 (patch)
treee7993dde57676099fbdc99b043dcbf6c27c432b9 /llvm/lib
parent1a7bd84a92ff266981dfd28bc26ab19bc1c60b51 (diff)
downloadbcm5719-llvm-309eba75b1f43a8fb0d1cee3b90e9cf2023b40a3.tar.gz
bcm5719-llvm-309eba75b1f43a8fb0d1cee3b90e9cf2023b40a3.zip
Revert "[RegAllocGreedy] Attempt to split unspillable live intervals"
It was accidentally committed. llvm-svn: 282855
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/CodeGen/RegAllocGreedy.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/llvm/lib/CodeGen/RegAllocGreedy.cpp b/llvm/lib/CodeGen/RegAllocGreedy.cpp
index c46d6071702..0c93d266004 100644
--- a/llvm/lib/CodeGen/RegAllocGreedy.cpp
+++ b/llvm/lib/CodeGen/RegAllocGreedy.cpp
@@ -2556,20 +2556,18 @@ unsigned RAGreedy::selectOrSplitImpl(LiveInterval &VirtReg,
return 0;
}
- if (Stage == RS_Split || Stage == RS_Split2) {
- // Try splitting VirtReg or interferences.
- unsigned NewVRegSizeBefore = NewVRegs.size();
- unsigned PhysReg = trySplit(VirtReg, Order, NewVRegs);
- if (PhysReg || (NewVRegs.size() - NewVRegSizeBefore))
- return PhysReg;
- }
-
// If we couldn't allocate a register from spilling, there is probably some
// invalid inline assembly. The base class wil report it.
if (Stage >= RS_Done || !VirtReg.isSpillable())
return tryLastChanceRecoloring(VirtReg, Order, NewVRegs, FixedRegisters,
Depth);
+ // Try splitting VirtReg or interferences.
+ unsigned NewVRegSizeBefore = NewVRegs.size();
+ unsigned PhysReg = trySplit(VirtReg, Order, NewVRegs);
+ if (PhysReg || (NewVRegs.size() - NewVRegSizeBefore))
+ return PhysReg;
+
// Finally spill VirtReg itself.
if (EnableDeferredSpilling && getStage(VirtReg) < RS_Memory) {
// TODO: This is experimental and in particular, we do not model
OpenPOWER on IntegriCloud