xref: /llvm-project/llvm/test/CodeGen/ARM/machine-outliner-remove-debug-instr.mir (revision 5b30d9adc0536eee7fe0f164a550084916899acc)
1*5b30d9adSMomchil Velikov# RUN: llc -verify-machineinstrs -run-pass=machine-outliner -mtriple=thumbv7m-none-eabi %s -o - | FileCheck %s
2*5b30d9adSMomchil Velikov
3*5b30d9adSMomchil Velikov# Check the outlined function does not contain debug instructions
4*5b30d9adSMomchil Velikov# CHECK-LABEL: name: f
5*5b30d9adSMomchil Velikov# CHECK:       tBL {{.*}}  @OUTLINED_FUNCTION_0,
6*5b30d9adSMomchil Velikov
7*5b30d9adSMomchil Velikov# CHECK-LABEL: name: g
8*5b30d9adSMomchil Velikov# CHECK:       tBL {{.*}}  @OUTLINED_FUNCTION_0,
9*5b30d9adSMomchil Velikov
10*5b30d9adSMomchil Velikov# CHECK-LABEL: name: OUTLINED_FUNCTION_0
11*5b30d9adSMomchil Velikov# CHECK-NOT:   DBG_VALUE
12*5b30d9adSMomchil Velikov# CHECK:       tTAILJMPdND @h
13*5b30d9adSMomchil Velikov--- |
14*5b30d9adSMomchil Velikov  define void @f() { entry: ret void }
15*5b30d9adSMomchil Velikov
16*5b30d9adSMomchil Velikov  define void @g() { entry: ret void }
17*5b30d9adSMomchil Velikov
18*5b30d9adSMomchil Velikov  declare void @h()
19*5b30d9adSMomchil Velikov...
20*5b30d9adSMomchil Velikov---
21*5b30d9adSMomchil Velikovname:            f
22*5b30d9adSMomchil VelikovtracksRegLiveness: true
23*5b30d9adSMomchil Velikovbody:             |
24*5b30d9adSMomchil Velikov  bb.0.entry:
25*5b30d9adSMomchil Velikov    liveins: $r0, $r1, $r2, $r3, $r4, $lr
26*5b30d9adSMomchil Velikov
27*5b30d9adSMomchil Velikov    frame-setup tPUSH 14, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp
28*5b30d9adSMomchil Velikov
29*5b30d9adSMomchil Velikov    $r4 = tMOVr $r1, 14, $noreg
30*5b30d9adSMomchil Velikov    DBG_VALUE $r4, $noreg
31*5b30d9adSMomchil Velikov    renamable $r0, dead $cpsr = nsw tMUL renamable $r1, killed renamable $r0, 14, $noreg
32*5b30d9adSMomchil Velikov    renamable $r0, dead $cpsr = nsw tSUBrr killed renamable $r0, renamable $r1, 14, $noreg
33*5b30d9adSMomchil Velikov    tBL 14, $noreg, @h, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $r0, implicit killed $r1, implicit-def $sp, implicit-def $r0
34*5b30d9adSMomchil Velikov
35*5b30d9adSMomchil Velikov    frame-destroy tPOP_RET 14, $noreg, def $r4, def $pc, implicit killed $r0
36*5b30d9adSMomchil Velikov...
37*5b30d9adSMomchil Velikov---
38*5b30d9adSMomchil Velikovname:            g
39*5b30d9adSMomchil VelikovtracksRegLiveness: true
40*5b30d9adSMomchil Velikovbody:             |
41*5b30d9adSMomchil Velikov  bb.0.entry:
42*5b30d9adSMomchil Velikov    liveins: $r0, $r1, $r2, $r3, $r4, $lr
43*5b30d9adSMomchil Velikov
44*5b30d9adSMomchil Velikov    frame-setup tPUSH 14, $noreg, killed $r4, killed $lr, implicit-def $sp, implicit $sp
45*5b30d9adSMomchil Velikov
46*5b30d9adSMomchil Velikov    $r4 = tMOVr $r1, 14, $noreg
47*5b30d9adSMomchil Velikov    DBG_VALUE $r4, $noreg
48*5b30d9adSMomchil Velikov    renamable $r0, dead $cpsr = nsw tMUL renamable $r1, killed renamable $r0, 14, $noreg
49*5b30d9adSMomchil Velikov    renamable $r0, dead $cpsr = nsw tSUBrr killed renamable $r0, renamable $r1, 14, $noreg
50*5b30d9adSMomchil Velikov    tBL 14, $noreg, @h, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $r0, implicit killed $r1, implicit-def $sp, implicit-def $r0
51*5b30d9adSMomchil Velikov
52*5b30d9adSMomchil Velikov    frame-destroy tPOP_RET 14, $noreg, def $r4, def $pc, implicit killed $r0
53*5b30d9adSMomchil Velikov...
54