diff options
author | Dylan McKay <dylanmckay34@gmail.com> | 2016-09-30 14:05:15 +0000 |
---|---|---|
committer | Dylan McKay <dylanmckay34@gmail.com> | 2016-09-30 14:05:15 +0000 |
commit | 309eba75b1f43a8fb0d1cee3b90e9cf2023b40a3 (patch) | |
tree | e7993dde57676099fbdc99b043dcbf6c27c432b9 /llvm/lib | |
parent | 1a7bd84a92ff266981dfd28bc26ab19bc1c60b51 (diff) | |
download | bcm5719-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.cpp | 14 |
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 |