summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2013-05-29 19:32:06 +0000
committerTim Northover <tnorthover@apple.com>2013-05-29 19:32:06 +0000
commitaae0fa998af0f65221d7b98630162be6d88f05dc (patch)
tree32f70d885b5b98aac7a135eb1d8dd0b00d32f5e0 /test
parent88c744083d6cf5f4810c1e9fe457a212bb24d432 (diff)
downloadllvm-aae0fa998af0f65221d7b98630162be6d88f05dc.tar.gz
llvm-aae0fa998af0f65221d7b98630162be6d88f05dc.tar.bz2
llvm-aae0fa998af0f65221d7b98630162be6d88f05dc.tar.xz
Teach ReMaterialization to be more cunning about subregisters
This allows rematerialization during register coalescing to handle more cases involving operations like SUBREG_TO_REG which might need to be rematerialized using sub-register indices. For example, code like: v1(GPR64):sub_32 = MOVZ something v2(GPR64) = COPY v1(GPR64) should be convertable to: v2(GPR64):sub_32 = MOVZ something but previously we just gave up in places like this git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182872 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/AArch64/sibling-call.ll4
-rw-r--r--test/DebugInfo/AArch64/variable-loc.ll14
2 files changed, 9 insertions, 9 deletions
diff --git a/test/CodeGen/AArch64/sibling-call.ll b/test/CodeGen/AArch64/sibling-call.ll
index a1ec618b03..6df4e7e3e5 100644
--- a/test/CodeGen/AArch64/sibling-call.ll
+++ b/test/CodeGen/AArch64/sibling-call.ll
@@ -91,7 +91,7 @@ define void @indirect_tail() {
%fptr = load void(i32)** @func
tail call void %fptr(i32 42)
ret void
-; CHECK: movz w0, #42
; CHECK: ldr [[FPTR:x[1-9]+]], [{{x[0-9]+}}, #:lo12:func]
+; CHECK: movz w0, #42
; CHECK: br [[FPTR]]
-} \ No newline at end of file
+}
diff --git a/test/DebugInfo/AArch64/variable-loc.ll b/test/DebugInfo/AArch64/variable-loc.ll
index ba9e13aa25..05a5bd08dd 100644
--- a/test/DebugInfo/AArch64/variable-loc.ll
+++ b/test/DebugInfo/AArch64/variable-loc.ll
@@ -16,21 +16,21 @@
; return 0;
; }
- ; First make sure main_arr is where we expect it: sp + 12 == x29 - 420:
+ ; First make sure main_arr is where we expect it: sp + 4 == x29 - 412:
; CHECK: main:
-; CHECK: sub sp, sp, #448
-; CHECK: stp x29, x30, [sp, #432]
-; CHECK: add x29, sp, #432
-; CHECK: add {{x[0-9]+}}, sp, #12
+; CHECK: sub sp, sp, #432
+; CHECK: stp x29, x30, [sp, #416]
+; CHECK: add x29, sp, #416
+; CHECK: add {{x[0-9]+}}, sp, #4
; Now check the debugging information reflects this:
; CHECK: DW_TAG_variable
; CHECK-NEXT: .word .Linfo_string7
- ; Rather hard-coded, but 145 => DW_OP_fbreg and the .ascii is LEB128 encoded -420.
+ ; Rather hard-coded, but 145 => DW_OP_fbreg and the .ascii is LEB128 encoded -412.
; CHECK: DW_AT_location
; CHECK-NEXT: .byte 145
-; CHECK-NEXT: .ascii "\334|"
+; CHECK-NEXT: .ascii "\344|"
; CHECK: .Linfo_string7:
; CHECK-NEXT: main_arr