Skip to content

Commit fbf0bbe

Browse files
author
Yuanke Luo
committed
Apply Matt's comments
1 parent bc4347a commit fbf0bbe

File tree

1 file changed

+19
-37
lines changed

1 file changed

+19
-37
lines changed

llvm/test/CodeGen/X86/early-clobber.mir

Lines changed: 19 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -4,43 +4,11 @@
44
# Test register live range that is split from rematerializing. The live range should
55
# start with Slot_EarlyClobber instead of Slot_Register. Machineverifer can check it.
66

7-
--- |
8-
@g = external constant [2 x i32], align 4
9-
10-
; Function Attrs: nounwind
11-
define i32 @test(i32 noundef %a) #0 {
12-
entry:
13-
%0 = xor i32 %a, %a
14-
tail call void asm sideeffect "", "~{ebp},~{eax},~{ebx},~{ecx},~{edx},~{esi},~{edi},~{dirflag},~{fpsr},~{flags}"()
15-
br i1 undef, label %if, label %else
16-
17-
if: ; preds = %entry
18-
%add = add i32 %0, 1
19-
br label %exit
20-
21-
else: ; preds = %entry
22-
%shl = shl i32 %0, 1
23-
br label %exit
24-
25-
exit: ; preds = %else, %if
26-
%phi = phi i32 [ %add, %if ], [ %shl, %else ]
27-
ret i32 %phi
28-
}
29-
30-
attributes #0 = { nounwind }
31-
327
...
338
---
349
name: test
3510
alignment: 16
3611
tracksRegLiveness: true
37-
registers:
38-
- { id: 0, class: gr32_abcd }
39-
- { id: 1, class: gr32 }
40-
- { id: 2, class: gr32 }
41-
- { id: 3, class: gr32 }
42-
- { id: 4, class: gr8 }
43-
- { id: 5, class: gr32 }
4412
frameInfo:
4513
maxAlignment: 4
4614
fixedStack:
@@ -53,28 +21,42 @@ body: |
5321
; CHECK-NEXT: liveins: $ebp, $ebx, $edi, $esi
5422
; CHECK-NEXT: {{ $}}
5523
; CHECK-NEXT: frame-setup PUSH32r killed $ebp, implicit-def $esp, implicit $esp
24+
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 8
5625
; CHECK-NEXT: frame-setup PUSH32r killed $ebx, implicit-def $esp, implicit $esp
26+
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 12
5727
; CHECK-NEXT: frame-setup PUSH32r killed $edi, implicit-def $esp, implicit $esp
28+
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16
5829
; CHECK-NEXT: frame-setup PUSH32r killed $esi, implicit-def $esp, implicit $esp
30+
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 20
5931
; CHECK-NEXT: $esp = frame-setup SUB32ri $esp, 12, implicit-def dead $eflags
32+
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 32
33+
; CHECK-NEXT: CFI_INSTRUCTION offset $esi, -20
34+
; CHECK-NEXT: CFI_INSTRUCTION offset $edi, -16
35+
; CHECK-NEXT: CFI_INSTRUCTION offset $ebx, -12
36+
; CHECK-NEXT: CFI_INSTRUCTION offset $ebp, -8
6037
; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 12 /* clobber */, implicit-def dead early-clobber $ebp, 12 /* clobber */, implicit-def dead early-clobber $eax, 12 /* clobber */, implicit-def dead early-clobber $ebx, 12 /* clobber */, implicit-def dead early-clobber $ecx, 12 /* clobber */, implicit-def dead early-clobber $edx, 12 /* clobber */, implicit-def dead early-clobber $esi, 12 /* clobber */, implicit-def dead early-clobber $edi, 12 /* clobber */, implicit-def dead early-clobber $df, 12 /* clobber */, implicit-def early-clobber $fpsw, 12 /* clobber */, implicit-def dead early-clobber $eflags
6138
; CHECK-NEXT: early-clobber renamable $eax = XOR32rr undef $eax, undef $eax, implicit-def dead $eflags
6239
; CHECK-NEXT: TEST8rr renamable $al, renamable $al, implicit-def $eflags
6340
; CHECK-NEXT: JCC_1 %bb.2, 5, implicit $eflags
6441
; CHECK-NEXT: {{ $}}
65-
; CHECK-NEXT: bb.1.if:
42+
; CHECK-NEXT: bb.1:
6643
; CHECK-NEXT: successors: %bb.2(0x80000000)
6744
; CHECK-NEXT: {{ $}}
6845
; CHECK-NEXT: renamable $eax = MOV32ri 1
6946
; CHECK-NEXT: {{ $}}
70-
; CHECK-NEXT: bb.2.exit:
47+
; CHECK-NEXT: bb.2:
7148
; CHECK-NEXT: liveins: $eax
7249
; CHECK-NEXT: {{ $}}
7350
; CHECK-NEXT: $esp = frame-destroy ADD32ri $esp, 12, implicit-def dead $eflags
51+
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 20
7452
; CHECK-NEXT: $esi = frame-destroy POP32r implicit-def $esp, implicit $esp
53+
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 16
7554
; CHECK-NEXT: $edi = frame-destroy POP32r implicit-def $esp, implicit $esp
55+
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 12
7656
; CHECK-NEXT: $ebx = frame-destroy POP32r implicit-def $esp, implicit $esp
57+
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 8
7758
; CHECK-NEXT: $ebp = frame-destroy POP32r implicit-def $esp, implicit $esp
59+
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 4
7860
; CHECK-NEXT: RET 0, $eax
7961
bb.0.entry:
8062
successors: %bb.1, %bb.2
@@ -86,15 +68,15 @@ body: |
8668
JCC_1 %bb.2, 5, implicit killed $eflags
8769
JMP_1 %bb.1
8870
89-
bb.1.if:
71+
bb.1:
9072
%1:gr32 = MOV32ri 1
9173
%5:gr32 = COPY killed %1
9274
JMP_1 %bb.3
9375
94-
bb.2.else:
76+
bb.2:
9577
%5:gr32 = COPY killed %0
9678
97-
bb.3.exit:
79+
bb.3:
9880
%3:gr32 = COPY killed %5
9981
$eax = COPY killed %3
10082
RET 0, killed $eax

0 commit comments

Comments
 (0)