summaryrefslogtreecommitdiff
path: root/test/CodeGen/Thumb
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2013-04-30 20:04:37 +0000
committerHal Finkel <hfinkel@anl.gov>2013-04-30 20:04:37 +0000
commitdb31bd31d62b5b85dddd5fbecae1a04a02201adc (patch)
treecbb1778a4622acb5be5f9521d8948cc03d5d3dfd /test/CodeGen/Thumb
parent34f39841d3e7929c5722cee3c27aefbca482d81a (diff)
downloadllvm-db31bd31d62b5b85dddd5fbecae1a04a02201adc.tar.gz
llvm-db31bd31d62b5b85dddd5fbecae1a04a02201adc.tar.bz2
llvm-db31bd31d62b5b85dddd5fbecae1a04a02201adc.tar.xz
LocalStackSlotAllocation improvements
First, taking advantage of the fact that the virtual base registers are allocated in order of the local frame offsets, remove the quadratic register-searching behavior. Because of the ordering, we only need to check the last virtual base register created. Second, store the frame index in the FrameRef structure, and get the frame index and the local offset from this structure at the top of the loop iteration. This allows us to de-nest the loops in insertFrameReferenceRegisters (and I think makes the code cleaner). I also moved the needsFrameBaseReg check into the first loop over instructions so that we don't bother pushing FrameRefs for instructions that don't want a virtual base register anyway. Lastly, and this is the only functionality change, avoid the creation of single-use virtual base registers. These are currently not useful because, in general, they end up replacing what would be one r+r instruction with an add and a r+i instruction. Committing this removes the XFAIL in CodeGen/PowerPC/2007-09-07-LoadStoreIdxForms.ll Jim has okayed this off-list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180799 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/Thumb')
-rw-r--r--test/CodeGen/Thumb/large-stack.ll4
1 files changed, 2 insertions, 2 deletions
diff --git a/test/CodeGen/Thumb/large-stack.ll b/test/CodeGen/Thumb/large-stack.ll
index f8c438c6e0..680976e74f 100644
--- a/test/CodeGen/Thumb/large-stack.ll
+++ b/test/CodeGen/Thumb/large-stack.ll
@@ -20,8 +20,8 @@ define void @test2() {
define i32 @test3() {
; CHECK: test3:
-; CHECK: ldr.n r2, LCPI
-; CHECK: add sp, r2
+; CHECK: ldr.n r1, LCPI
+; CHECK: add sp, r1
; CHECK: ldr.n r1, LCPI
; CHECK: add r1, sp
; CHECK: subs r4, r7, #4