<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/143368>143368</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Missed deadcode elimination when using `phi`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
GINN-Imp
</td>
</tr>
</table>
<pre>
The following reduced IR is derived from https://github.com/clap-rs/clap/blob/1036060f1319412d3d50d821a7b39a0a0122f0f7/clap_builder/src/parser/parser.rs#L49
Godbolt: https://godbolt.org/z/aedE1YjfK
alive2 proof: https://alive2.llvm.org/ce/z/Df2FFT
opt-O3 works as expected when `phi` is replaced with simpler instructions.
```llvm
define void @_ZN12clap_builder6parser6parser6Parser16get_matches_with17h7b0a6fdc0204a479E(i64 %0, ptr %p) personality ptr null {
%2 = xor i64 %0, 1
switch i64 %2, label %3 [
i64 0, label %common.ret
i64 3, label %4
]
common.ret:
ret void
3:
br label %4
4:
%.0 = phi i8 [ 0, %3 ], [ 1, %1 ]
%cond2 = icmp eq i64 %0, 1
br i1 %cond2, label %5, label %common.ret
5:
store i8 %.0, ptr %p, align 1
br label %common.ret
}
```
expected:
```llvm
define void @tgt(i64 %0, ptr %p) personality ptr null {
ret void
}
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVEuP2zYQ_jX0ZWCDDz0POmjjKFi03RZFLu1lQYkjiyklqiRlJ_31BSV7Y7dNCxQQwBG_eXz8OBzpvT5NiBVJn0h63MklDNZVH55fXvbP47xrrfpSfRwQemuMvejpBA7V0qGC559Be1Do9BkV9M6OMIQweyJqwhvCm5MOw9IeOjsS3nRGznvnrxbhTWtsS3jDqMhoRnsmWJkwroRKqSo4k3krSkklZZz3tM-vga_too1CR3jjXUd4M0vn19_NOMQS4vukJLQmtP5gVWtNIKL-K7cNOFh3Irz5g_BGonrPfvnUf0doLY0-I4fZWdv_PXZDD8acx2t8h9ckx543zcettp3D_kcBF-t-8yA94OcZu4AKLgNOQDI6D5pkNIrocDYyanrRYQCvx9mgAz354JYuaDv5w5aTZHT7YnFCa4W9nhDOVisgCX399YXxe5myTZXb8tO6sOyE4XWUoRvQv8aSLB_ylsqsVx3lNJFJXr4nvNBZAoSnlPB3MAcX7ZnwEmZ03k7S6PBl3Z8WY4DkT4TWEJ04EHGEz9bBfQa2wv6iQzfcAB4BI1s08U9A7MLoBasDfUA7O452OjgMdy7iwSWJCEmPm1h3AaJeYxyGVasNF7ft1j2mILRObhjh6YGu55kHDbqIFDdiV8LH1U6fgF032ZUBbKQntcmhu3EG_P0fJGkdaPbm_HCg9NsKEFqnN5I-WIcrucj28bregTT6NH2t9Y10-fG-v7YCt5bd6vxH84VT-L89c38vjzx2qhKqFKXcYcXypEyygotiN1RdSdM8LVAmOSpJac5YVlBZSpH2WBRqpytOeUozWjLGRVocMBNpksqUpQltaSZJQnGU2rw95J32fsGKJUJkxW6Vya9zkfMJL7CihPM4Jl0Vg_btcvIkoUb74L-mCToYrH7Q3qMChVJ1ViGg0aOeZHzN2wRYfJymb3NgtzhT_csAXUXflv3s7CfsAuHNSipO1Svrc8X_DAAA___Jp7dx">