1
1
# RUN: llc %s --start-before=branch-folder --stop-after=branch-folder -o - | FileCheck %s
2
2
3
3
# # Check that common instructions hoisted from `if.then` and `if.else` into
4
- # # common pred `entry` get merged debug locations. The debug instructions from
5
- # # both branches should get hoisted and killed.
6
- # #
7
- # # The MIR debug instructions have been modified by hand in order to check they
8
- # # can be killed.
4
+ # # common pred `entry` get merged debug locations.
5
+
6
+ # # FIXME: The debug instructions handling here is wrong.
9
7
10
8
# CHECK: bb.0
11
9
# CHECK: CALL64pcrel32 @f, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax
12
- # # --- Start splice from bb.2.if.else (and debug instructions from bb.1.if.then) ---
13
- # CHECK-NEXT: DBG_VALUE $noreg, $noreg, ![[#]], !DIExpression(), debug-location ![[#]]
14
- # CHECK-NEXT: DBG_VALUE $noreg, $noreg, ![[#]], !DIExpression(), debug-location ![[#]]
15
- # CHECK-NEXT: $edi = MOV32r0 implicit-def dead $eflags, debug-instr-number 2, debug-location !DILocation(line: 0, scope: ![[#]])
16
- # CHECK-NEXT: DBG_VALUE $noreg, $noreg, ![[#]], !DIExpression(DW_OP_LLVM_arg, 0), debug-location ![[#]]
17
- # CHECK-NEXT: DBG_VALUE $noreg, $noreg, ![[#]], !DIExpression(DW_OP_LLVM_arg, 0), debug-location ![[#]]
18
- # # --- End splice ------------------------------------------------------------------
10
+ # # --- Start splice from bb.2.if.else ---
11
+ # CHECK-NEXT: DBG_VALUE 2, $noreg, ![[#]], !DIExpression(), debug-location ![[#]]
12
+ # CHECK-NEXT: $edi = MOV32r0 implicit-def dead $eflags, debug-location !DILocation(line: 0, scope: ![[#]])
13
+ # # --- End splice --------------
19
14
# CHECK-NEXT: TEST64rr killed renamable $rax, renamable $rax, implicit-def $eflags
20
15
# CHECK-NEXT: JCC_1 %bb.2, 9, implicit killed $eflags
21
16
# CHECK: bb.1
78
73
...
79
74
---
80
75
name : g
81
- tracksRegLiveness : true
82
- isSSA : false
83
76
body : |
84
77
bb.0 (%ir-block.0):
85
78
successors: %bb.1(0x40000000), %bb.2(0x40000000)
@@ -93,21 +86,22 @@ body: |
93
86
94
87
bb.1.if.then:
95
88
successors: %bb.3(0x80000000)
96
- DBG_VALUE $esi, $noreg, !11, !DIExpression(), debug-location !13
97
- $edi = MOV32r0 implicit-def dead $eflags, debug-instr-number 1, debug-location !14
98
- DBG_INSTR_REF !11, !DIExpression(DW_OP_LLVM_arg, 0), dbg-instr-ref(1, 0) , debug-location !13
89
+
90
+ DBG_VALUE 0, $noreg, !11, !DIExpression(), debug-location !13
91
+ $edi = MOV32r0 implicit-def dead $eflags , debug-location !14
99
92
$esi = MOV32r0 implicit-def dead $eflags, debug-location !14
100
93
CALL64pcrel32 target-flags(x86-plt) @_Z3fooii, csr_64, implicit $rsp, implicit $ssp, implicit killed $edi, implicit killed $esi, implicit-def $rsp, implicit-def $ssp, debug-location !14
94
+ DBG_VALUE 1, $noreg, !11, !DIExpression(), debug-location !13
101
95
JMP_1 %bb.3, debug-location !15
102
96
103
97
bb.2.if.else:
104
98
successors: %bb.3(0x80000000)
105
99
106
- DBG_VALUE $esp, $noreg, !11, !DIExpression(), debug-location !13
107
- $edi = MOV32r0 implicit-def dead $eflags, debug-instr-number 2, debug-location !16
108
- DBG_INSTR_REF !11, !DIExpression(DW_OP_LLVM_arg, 0), dbg-instr-ref(2, 0), debug-location !13
100
+ DBG_VALUE 2, $noreg, !11, !DIExpression(), debug-location !13
101
+ $edi = MOV32r0 implicit-def dead $eflags, debug-location !16
109
102
$esi = MOV32ri 1, debug-location !16
110
103
CALL64pcrel32 target-flags(x86-plt) @_Z3barii, csr_64, implicit $rsp, implicit $ssp, implicit killed $edi, implicit killed $esi, implicit-def $rsp, implicit-def $ssp, debug-location !16
104
+ DBG_VALUE 3, $noreg, !11, !DIExpression(), debug-location !13
111
105
112
106
bb.3.if.end:
113
107
$eax = MOV32ri 2
0 commit comments