unreachable-mbb-undef-phi.mir
964 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# RUN: llc -march=x86-64 %s -o - -run-pass=processimpdefs -run-pass=unreachable-mbb-elimination | FileCheck %s
---
name: f
tracksRegLiveness: true
registers:
- { id: 0, class: gr32, preferred-register: '' }
- { id: 1, class: gr32, preferred-register: '' }
- { id: 2, class: gr32, preferred-register: '' }
body: |
bb.0:
%0 = IMPLICIT_DEF
JMP_1 %bb.1
bb.1:
%1 = PHI %0, %bb.0, %2, %bb.2
%2 = ADD32ri8 killed %1, 1, implicit-def $eflags
JMP_1 %bb.3
bb.2:
JMP_1 %bb.1
bb.3:
...
# bb2 above is dead and should be removed and the PHI should be replaced with a
# COPY from an undef value since the bb0 value in the PHI is undef.
# CHECK: bb.0:
# CHECK: successors: %bb.1
# CHECK: JMP_1 %bb.1
# CHECK: bb.1:
# CHECK: successors: %bb.2
# CHECK: [[TMP1:%[0-9]+]]:gr32 = COPY undef %{{[0-9]+}}
# CHECK: %{{[0-9]+}}:gr32 = ADD32ri8 killed [[TMP1]], 1
# CHECK: JMP_1 %bb.2
# CHECK: bb.2: