In review of bbde6b, I had originally proposed that we support the legacy text format. As review evolved, it bacame clear this had been a bad idea (too much complexity), but in order to let that patch finally move forward, I approved the change with the variant. This change undoes the variant, and updates all the tests to just use the array form.
190 lines
7.8 KiB
YAML
190 lines
7.8 KiB
YAML
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
|
|
# RUN: llc -run-pass=prologepilog %s -o - | FileCheck %s
|
|
|
|
--- |
|
|
target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
target triple = "thumbv7m-none-eabi"
|
|
|
|
define i32 @testpos() {
|
|
entry:
|
|
%a = alloca i32, align 4
|
|
call void @other(ptr %a)
|
|
%b = load i32, ptr %a, align 4
|
|
ret i32 %b
|
|
}
|
|
define i32 @testneg4() {
|
|
entry:
|
|
%a = alloca i32, align 4
|
|
call void @other(ptr %a)
|
|
%b = load i32, ptr %a, align 4
|
|
ret i32 %b
|
|
}
|
|
define i32 @testneg8() {
|
|
entry:
|
|
%a = alloca i32, align 4
|
|
call void @other(ptr %a)
|
|
%b = load i32, ptr %a, align 4
|
|
ret i32 %b
|
|
}
|
|
|
|
declare void @other(ptr)
|
|
|
|
...
|
|
---
|
|
name: testpos
|
|
tracksRegLiveness: true
|
|
frameInfo:
|
|
isFrameAddressTaken: false
|
|
isReturnAddressTaken: false
|
|
hasStackMap: false
|
|
hasPatchPoint: false
|
|
stackSize: 0
|
|
offsetAdjustment: 0
|
|
maxAlignment: 4
|
|
adjustsStack: true
|
|
hasCalls: true
|
|
stackProtector: ''
|
|
maxCallFrameSize: 0
|
|
cvBytesOfCalleeSavedRegisters: 0
|
|
hasOpaqueSPAdjustment: false
|
|
hasVAStart: false
|
|
hasMustTailInVarArgFunc: false
|
|
hasTailCall: false
|
|
localFrameSize: 4
|
|
savePoint: []
|
|
restorePoint: []
|
|
stack:
|
|
- { id: 0, name: a, type: default, offset: 0, size: 4, alignment: 4,
|
|
stack-id: default, callee-saved-register: '', callee-saved-restored: true,
|
|
local-offset: -4, debug-info-variable: '', debug-info-expression: '',
|
|
debug-info-location: '' }
|
|
body: |
|
|
bb.0.entry:
|
|
; CHECK-LABEL: name: testpos
|
|
; CHECK: liveins: $r7, $lr
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr
|
|
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8
|
|
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4
|
|
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8
|
|
; CHECK-NEXT: $sp = frame-setup tSUBspi $sp, 2, 14 /* CC::al */, $noreg
|
|
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16
|
|
; CHECK-NEXT: renamable $r0 = t2ADDri $sp, 4, 14 /* CC::al */, $noreg, $noreg
|
|
; CHECK-NEXT: tBL 14 /* CC::al */, $noreg, @other, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp
|
|
; CHECK-NEXT: renamable $r0 = t2LDRi12 $sp, 8, 14 /* CC::al */, $noreg :: (dereferenceable load (s32) from %ir.a)
|
|
; CHECK-NEXT: $sp = frame-destroy tADDspi $sp, 2, 14 /* CC::al */, $noreg
|
|
; CHECK-NEXT: $sp = frame-destroy t2LDMIA_RET $sp, 14 /* CC::al */, $noreg, def $r7, def $pc, implicit $r0
|
|
ADJCALLSTACKDOWN 0, 0, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp
|
|
renamable $r0 = t2ADDri %stack.0.a, 0, 14 /* CC::al */, $noreg, $noreg
|
|
tBL 14 /* CC::al */, $noreg, @other, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp
|
|
ADJCALLSTACKUP 0, -1, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp
|
|
renamable $r0 = t2LDRi12 %stack.0.a, 4, 14 /* CC::al */, $noreg :: (dereferenceable load (s32) from %ir.a)
|
|
tBX_RET 14 /* CC::al */, $noreg, implicit $r0
|
|
|
|
...
|
|
---
|
|
name: testneg4
|
|
tracksRegLiveness: true
|
|
frameInfo:
|
|
isFrameAddressTaken: false
|
|
isReturnAddressTaken: false
|
|
hasStackMap: false
|
|
hasPatchPoint: false
|
|
stackSize: 0
|
|
offsetAdjustment: 0
|
|
maxAlignment: 4
|
|
adjustsStack: true
|
|
hasCalls: true
|
|
stackProtector: ''
|
|
maxCallFrameSize: 0
|
|
cvBytesOfCalleeSavedRegisters: 0
|
|
hasOpaqueSPAdjustment: false
|
|
hasVAStart: false
|
|
hasMustTailInVarArgFunc: false
|
|
hasTailCall: false
|
|
localFrameSize: 4
|
|
savePoint: []
|
|
restorePoint: []
|
|
stack:
|
|
- { id: 0, name: a, type: default, offset: 0, size: 4, alignment: 4,
|
|
stack-id: default, callee-saved-register: '', callee-saved-restored: true,
|
|
local-offset: -4, debug-info-variable: '', debug-info-expression: '',
|
|
debug-info-location: '' }
|
|
body: |
|
|
bb.0.entry:
|
|
; CHECK-LABEL: name: testneg4
|
|
; CHECK: liveins: $r7, $lr
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr
|
|
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8
|
|
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4
|
|
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8
|
|
; CHECK-NEXT: $sp = frame-setup tSUBspi $sp, 2, 14 /* CC::al */, $noreg
|
|
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16
|
|
; CHECK-NEXT: renamable $r0 = t2ADDri $sp, 4, 14 /* CC::al */, $noreg, $noreg
|
|
; CHECK-NEXT: tBL 14 /* CC::al */, $noreg, @other, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp
|
|
; CHECK-NEXT: renamable $r0 = t2LDRi12 $sp, 0, 14 /* CC::al */, $noreg :: (dereferenceable load (s32) from %ir.a)
|
|
; CHECK-NEXT: $sp = frame-destroy tADDspi $sp, 2, 14 /* CC::al */, $noreg
|
|
; CHECK-NEXT: $sp = frame-destroy t2LDMIA_RET $sp, 14 /* CC::al */, $noreg, def $r7, def $pc, implicit $r0
|
|
ADJCALLSTACKDOWN 0, 0, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp
|
|
renamable $r0 = t2ADDri %stack.0.a, 0, 14 /* CC::al */, $noreg, $noreg
|
|
tBL 14 /* CC::al */, $noreg, @other, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp
|
|
ADJCALLSTACKUP 0, -1, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp
|
|
renamable $r0 = t2LDRi8 %stack.0.a, -4, 14 /* CC::al */, $noreg :: (dereferenceable load (s32) from %ir.a)
|
|
tBX_RET 14 /* CC::al */, $noreg, implicit $r0
|
|
|
|
...
|
|
---
|
|
name: testneg8
|
|
tracksRegLiveness: true
|
|
frameInfo:
|
|
isFrameAddressTaken: false
|
|
isReturnAddressTaken: false
|
|
hasStackMap: false
|
|
hasPatchPoint: false
|
|
stackSize: 0
|
|
offsetAdjustment: 0
|
|
maxAlignment: 4
|
|
adjustsStack: true
|
|
hasCalls: true
|
|
stackProtector: ''
|
|
maxCallFrameSize: 0
|
|
cvBytesOfCalleeSavedRegisters: 0
|
|
hasOpaqueSPAdjustment: false
|
|
hasVAStart: false
|
|
hasMustTailInVarArgFunc: false
|
|
hasTailCall: false
|
|
localFrameSize: 4
|
|
savePoint: []
|
|
restorePoint: []
|
|
stack:
|
|
- { id: 0, name: a, type: default, offset: 0, size: 4, alignment: 4,
|
|
stack-id: default, callee-saved-register: '', callee-saved-restored: true,
|
|
local-offset: -4, debug-info-variable: '', debug-info-expression: '',
|
|
debug-info-location: '' }
|
|
body: |
|
|
bb.0.entry:
|
|
; CHECK-LABEL: name: testneg8
|
|
; CHECK: liveins: $r7, $lr
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: $sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr
|
|
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8
|
|
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $lr, -4
|
|
; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $r7, -8
|
|
; CHECK-NEXT: $sp = frame-setup tSUBspi $sp, 2, 14 /* CC::al */, $noreg
|
|
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16
|
|
; CHECK-NEXT: renamable $r0 = t2ADDri $sp, 4, 14 /* CC::al */, $noreg, $noreg
|
|
; CHECK-NEXT: tBL 14 /* CC::al */, $noreg, @other, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp
|
|
; CHECK-NEXT: renamable $r0 = t2LDRi8 $sp, -4, 14 /* CC::al */, $noreg :: (dereferenceable load (s32) from %ir.a)
|
|
; CHECK-NEXT: $sp = frame-destroy tADDspi $sp, 2, 14 /* CC::al */, $noreg
|
|
; CHECK-NEXT: $sp = frame-destroy t2LDMIA_RET $sp, 14 /* CC::al */, $noreg, def $r7, def $pc, implicit $r0
|
|
ADJCALLSTACKDOWN 0, 0, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp
|
|
renamable $r0 = t2ADDri %stack.0.a, 0, 14 /* CC::al */, $noreg, $noreg
|
|
tBL 14 /* CC::al */, $noreg, @other, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit $r0, implicit-def $sp
|
|
ADJCALLSTACKUP 0, -1, 14 /* CC::al */, $noreg, implicit-def dead $sp, implicit $sp
|
|
renamable $r0 = t2LDRi8 %stack.0.a, -8, 14 /* CC::al */, $noreg :: (dereferenceable load (s32) from %ir.a)
|
|
tBX_RET 14 /* CC::al */, $noreg, implicit $r0
|
|
|
|
...
|
|
|