llvm-project/llvm/test/CodeGen/ARM/r7-fixed-darwin.ll
Tim Northover a7d90af1be ARM-Darwin: keep the frame register reserved even if not updated.
Darwin platforms need the frame register to always point at a valid record even
if it's not updated in a leaf function. Backtraces are more important than one
extra GPR.

llvm-svn: 373738
2019-10-04 12:29:32 +00:00

16 lines
490 B
LLVM

; RUN: llc -mtriple=thumbv7k-apple-watchos %s -o - | FileCheck %s
; r7 is FP on Darwin, and should be preserved even if we don't create a new
; frame record for this leaf function. So make huge register pressure to try &
; tempt LLVM to use it.
define void @foo([16 x i32]* %ptr) {
; CHECK-LABEL: foo:
; CHECK: push.w
; CHECK: .cfi_offset r7
; CHECK-NOT: r7
; CHECK: pop.w
%val = load volatile [16 x i32], [16 x i32]* %ptr
store volatile [16 x i32] %val, [16 x i32]* %ptr
ret void
}