<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/56049>56049</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Dead Code Elimination Regression at -O3 (trunk vs. 14.0.4)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
thetheodor
</td>
</tr>
</table>
<pre>
```c
static struct { int a; } b, c;
static int d = -1;
void foo();
int main() {
if (b.a)
d = 2 | (b.a <= 0);
for (; b.a; b.a++)
c = b;
if (!d)
foo();
}
```
`llvm-4c2bccfda3892ae13e97b6bfdbc99ec8cf5d095d (trunk) -O3` can not eliminate `foo` but `llvm-llvmorg-14.0.4 -O3` can.
Target: `x86_64-unknown-linux-gnu`
------------------------------------------------
`llvm-4c2bccfda3892ae13e97b6bfdbc99ec8cf5d095d (trunk) -O3 -S -o /dev/stdout case.c`
<details ><summary>Reduced assembly</summary><p>
```asm
main: # @main
.cfi_startproc
# %bb.0:
pushq %rax
.cfi_def_cfa_offset 16
cmpl $0, d(%rip)
je .LBB0_1
# %bb.2:
xorl %eax, %eax
popq %rcx
.cfi_def_cfa_offset 8
retq
.LBB0_1:
.cfi_def_cfa_offset 16
xorl %eax, %eax
callq foo@PLT
xorl %eax, %eax
popq %rcx
.cfi_def_cfa_offset 8
retq
.Lfunc_end0:
.size main, .Lfunc_end0-main
```
</p></details>
------------------------------------------------
`llvm-llvmorg-14.0.4 -O3 -S -o /dev/stdout case.c`
<details ><summary>Reduced assembly</summary><p>
```asm
main: # @main
.cfi_startproc
# %bb.0:
xorl %eax, %eax
retq
.Lfunc_end0:
.size main, .Lfunc_end0-main
```
</p></details>
------------------------------------------------
### Bisection
Bisected to: 6990e7477d24ff585ae86549f5280f0be65422a6
Committed by: @alexander-shaposhnikov
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzdVkuP2zYQ_jXyhZBAUQ9bBx1iOzkFaJHmbvAxtJlIoiNSjre_vkNJ1tq7QDZFihYoQZCcJz8OZygJq57qqKRTlxHdR_Sd89wbSZzvB-lJtN4S03nCo2yLxJ6IiO2IROpBO6goEmV7EqeL7GKNItraiG0iVi3soNty003ssMPEJ9iMJsgWCQ8GCze0yTtD9d2sgoxd4NF750FV2z6oBMTB0zyx7dhfuJWjW_FgP4GIWKpeqb8-DcZkXtziuJBNc2njXDIhpVY821SMQ5pBtRal0ErIqgK5kbpQtCpU2BJD3n0NMYl_y9CeSN6RznoCjWlNxz0Q5AYIKBODJ7c9wmD7Y5zmCU3yO-tkxjKOn3l_BB9l74LddVMeyjzG_Tr7vYsb0w3X-NgNz_jHMf6b7d72VyNA4j9IbJH7QcEFR-eVxUNL7iCRzziznQLPTePwJt8j5Ya25f0TEp9ADRIU4c5BK5qnkC_oZpEjfQ7TI-apc9dOnDFTsyUBftAilpEop6PB7LJKpDYHrJHen3s7F9ioxwohEoqOF9Xz4E7fcEZRz6-PHhTog9T8YLV24ElaLmLZnpvRKKehMNWYnUVvzkvqovQLBEcft1t6SF9iYPcYrrafvBWAEFiotHG1YLTnG0T5Y4ibRdqD_zYRNwR3G75xurfwSN40AVCoiZz-_vHzv3YSPXTyAJ16uMLEmT9DqKfXbUfu1OK7tHjxUIxZeZ7ycUz2MZtfJuY_Vo6vH4ufLLT_V7m9lSD_5WX_0jWzbOpkaxxIb-yMZCLxfrwNAS6risI6X68Vy7UuNgWHTVnklS7YhmoqAAnG-FyLO9u2xgdr8TR-QXLKG7jyTkEfuxM_W3fqzFd7Wak6U1VW8ZU3voF6D1yRnVVA3s8fMQREPsGxB-fCkvsxBW9vP7m4hEypiS_Yauib-uT92YXIsw_Yj8afBpFI2yIRcnmeYrzxL3hAJI1zAzhcFCXNq9Wpxm-MKEsm1qnWpcgp3UAlCyhLTgut1sWq4QIaV0cF_iCwDr6T0QWuo2K_MjWjjNEyLVJGK0YTyFItCl1lDITKlMZgAN54kwQcCdbWqq9HSGI4OhQ2xnn3LMT6MMcOYNwO_fPBn2xf-xNgt8r2q3H3ekT_F7pkk3k">