73 lines
1.8 KiB
Plaintext
73 lines
1.8 KiB
Plaintext
|
# RUN: llc -mtriple=aarch64--- -run-pass=machine-outliner \
|
||
|
# RUN: -verify-machineinstrs %s -o - | FileCheck %s
|
||
|
|
||
|
# Ensure that we never outline calls into sequences where unsafe stack
|
||
|
# instructions are present.
|
||
|
|
||
|
--- |
|
||
|
define void @foo() #0 { ret void }
|
||
|
define void @bar() #0 { ret void }
|
||
|
define void @baz() #0 { ret void }
|
||
|
define void @f1() #0 { ret void }
|
||
|
define void @f2() #0 { ret void }
|
||
|
attributes #0 = { minsize noinline noredzone "frame-pointer"="all" }
|
||
|
...
|
||
|
---
|
||
|
|
||
|
name: f1
|
||
|
tracksRegLiveness: true
|
||
|
body: |
|
||
|
bb.0:
|
||
|
liveins: $lr
|
||
|
; CHECK-LABEL: name: f1
|
||
|
; CHECK: foo
|
||
|
; CHECK-DAG: bar
|
||
|
; CHECK-DAG: baz
|
||
|
$lr = ORRXri $xzr, 1
|
||
|
BL @foo, implicit-def dead $lr, implicit $sp
|
||
|
$x20, $x19 = LDPXi $sp, 255
|
||
|
$x20, $x19 = LDPXi $sp, 255
|
||
|
$x20, $x19 = LDPXi $sp, 255
|
||
|
$x20, $x19 = LDPXi $sp, 255
|
||
|
bb.1:
|
||
|
BL @bar, implicit-def dead $lr, implicit $sp
|
||
|
$x11 = ADDXri $sp, 48, 0;
|
||
|
$x12 = ADDXri $sp, 48, 0;
|
||
|
$x13 = ADDXri $sp, 48, 0;
|
||
|
$x14 = ADDXri $sp, 48, 0;
|
||
|
bb.2:
|
||
|
BL @baz, implicit-def dead $lr, implicit $sp
|
||
|
$x0 = ADDXri $sp, 48, 0;
|
||
|
$x1 = ADDXri $sp, 48, 0;
|
||
|
RET undef $lr
|
||
|
|
||
|
...
|
||
|
---
|
||
|
|
||
|
name: f2
|
||
|
tracksRegLiveness: true
|
||
|
body: |
|
||
|
bb.0:
|
||
|
liveins: $lr
|
||
|
; CHECK-LABEL: name: f2
|
||
|
; CHECK: foo
|
||
|
; CHECK-DAG: bar
|
||
|
; CHECK-DAG: baz
|
||
|
$lr = ORRXri $xzr, 1
|
||
|
BL @foo, implicit-def dead $lr, implicit $sp
|
||
|
$x20, $x19 = LDPXi $sp, 255
|
||
|
$x20, $x19 = LDPXi $sp, 255
|
||
|
$x20, $x19 = LDPXi $sp, 255
|
||
|
$x20, $x19 = LDPXi $sp, 255
|
||
|
bb.1:
|
||
|
BL @bar, implicit-def dead $lr, implicit $sp
|
||
|
$x11 = ADDXri $sp, 48, 0;
|
||
|
$x12 = ADDXri $sp, 48, 0;
|
||
|
$x13 = ADDXri $sp, 48, 0;
|
||
|
$x14 = ADDXri $sp, 48, 0;
|
||
|
bb.2:
|
||
|
BL @baz, implicit-def dead $lr, implicit $sp
|
||
|
$x0 = ADDXri $sp, 48, 0;
|
||
|
$x1 = ADDXri $sp, 48, 0;
|
||
|
RET undef $lr
|