aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/ARM/fast-isel.ll
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-01-07 01:47:05 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-01-07 01:47:05 +0000
commit45ca7c6336f174fae3a9521d5161a498ca27fd13 (patch)
tree7885c9d2cea7f10d4f0eff077b8d19543159cbfe /test/CodeGen/ARM/fast-isel.ll
parentf231a6dc7f251859af61677991b9c70ade6e1bfa (diff)
downloadexternal_llvm-45ca7c6336f174fae3a9521d5161a498ca27fd13.zip
external_llvm-45ca7c6336f174fae3a9521d5161a498ca27fd13.tar.gz
external_llvm-45ca7c6336f174fae3a9521d5161a498ca27fd13.tar.bz2
Use movw+movt in ARMFastISel::ARMMaterializeGV.
This eliminates a lot of constant pool entries for -O0 builds of code with many global variable accesses. This speeds up -O0 codegen of consumer-typeset by 2x because the constant island pass no longer has to look at thousands of constant pool entries. <rdar://problem/10629774> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147712 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM/fast-isel.ll')
-rw-r--r--test/CodeGen/ARM/fast-isel.ll12
1 files changed, 8 insertions, 4 deletions
diff --git a/test/CodeGen/ARM/fast-isel.ll b/test/CodeGen/ARM/fast-isel.ll
index 9f33aea..c8e0211 100644
--- a/test/CodeGen/ARM/fast-isel.ll
+++ b/test/CodeGen/ARM/fast-isel.ll
@@ -142,19 +142,23 @@ define void @test4() {
store i32 %b, i32* @test4g
ret void
-; THUMB: ldr.n r0, LCPI4_1
+; THUMB: movw r0, :lower16:L_test4g$non_lazy_ptr
+; THUMB: movt r0, :upper16:L_test4g$non_lazy_ptr
; THUMB: ldr r0, [r0]
; THUMB: ldr r0, [r0]
; THUMB: adds r0, #1
-; THUMB: ldr.n r1, LCPI4_0
+; THUMB: movw r1, :lower16:L_test4g$non_lazy_ptr
+; THUMB: movt r1, :upper16:L_test4g$non_lazy_ptr
; THUMB: ldr r1, [r1]
; THUMB: str r0, [r1]
-; ARM: ldr r0, LCPI4_1
+; ARM: movw r0, :lower16:L_test4g$non_lazy_ptr
+; ARM: movt r0, :upper16:L_test4g$non_lazy_ptr
; ARM: ldr r0, [r0]
; ARM: ldr r0, [r0]
; ARM: add r0, r0, #1
-; ARM: ldr r1, LCPI4_0
+; ARM: movw r1, :lower16:L_test4g$non_lazy_ptr
+; ARM: movt r1, :upper16:L_test4g$non_lazy_ptr
; ARM: ldr r1, [r1]
; ARM: str r0, [r1]
}