<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJztWltv2zYU_jXyC2GBou4PfsilKQYM67ZuzwZvktnKkiJSbtJfv0NKtuU4CZw2a1rAgWCK5LnrnO-IQlgj7hdegjk1iFMtfQ4TD197-GL8ham7-DDXhhrFkaoNoh65QsILL492PHLB7CaMEnnhNdwkTxHCxbc0bEezaZRARdN4JLO3HsmfYC-AYrwtgQp56UiG9trxjhchVcB65pFgZNiuo1HbVBNCx_ydNH1Xo72lXno93Fgr1lTVg5CpIaN9q62bdIyNGsdP-41wav2wHkytf4JyiKCaLNq4rKbO7OzcPdHdlFe0LueZYDQSESliLCkuYikpSSXP0zjNaB4HES9IGmexjZ_p-vqz9XL-4SsIgNSpUd0YJCu1VjU1ELcE24DCHusN2impqs266cp5QHzsBxN2_0HSfZ9NaP4RzRtYvRFyA7_aiKY_zvDwSkhDVaUhfO9gpvv1mnb3MPnQm7Y3sGSZd6swb-3wWH1Qvd6u576Rd2Y_K1QlYfQIGQ0gZL9ZVg2r4MamDnrmzyMhms_RpSyBruhrblRTDwm3V3vfylEUpJYX4S3dQOLWw4vntEyUAfuhdF6oJRRfZ9quGdHA0ZGYMR9q5GJH2vZ6des8jjt6dyhByGLJC7psikJLg4Jkt71uNswxRYEtDOoKKe5UuyvTgchKlgebrowOVNFaVIMsPOxmI8FEFF-3bELzuL5PtY2o__vlJV6Sh04HU6c5rSprmk17t7ZlmtCAWbcTlfJRlXdNN9geS2uw801OfGubdhtc_nxws90uwNbt1iqbFEtZi4NH5mv1dZI7aEI2P04DWN4nwQn5NM3gd7VAh3k5SV065G3DPklunk9OumeuGgi-495b2azXozybTdGRJnm6JrlnFtRMlLSEVqoEL_JwWJQHIb3tqYBRHAXZ6t4_nAeGidMNE8chEEchEM79gxAoIWszIpLFWbSRnbZwEkQAy9iWy8qYVltvyA1cpTKrnlmJMLEYPg5zyAJrpg8E6FSwdhU7QUAtx1ywyz60Eem__-PfOUAN_2wJIRz2lwxxAY0lU0bv-akQYH15tLDU92u0jceDpueAvR0g3XUJ1waOsf2prnVuMG_aYH50q3gV3D5j8BmDT8HgAWS-DYMLKaIgjAjNAIZpSHOCgyzIYcqKlEZZGISS5HDQ-mUw-DUOBJv_B5GH6Rt1UKf7H9qV0ljIvcuSZRLNweO6-VLPK1X3d_Oy7ke6VSepQOtGyMpSt41WIzD9VsNDrioprlVnt8Cur67CyA0Y20Jn6Zac8pW0Cy96BsDAtqB10_QAOXDOE0rY4-H7qys4FjvN1CXeoLnXnY2LYjZiHPrYzehXyycukZsg8AMff5voJHqB8I-ygocjxetKvdoZu-4ro6y_IM63Z3XoiUn0HFVIRrKQPDDxOVmv-_7zI-vpR6Hh29VTkUeECyZiXMALVYLjhLK0wDTCQR7GRRyGcSKKPD3X069eTyQcLnSpdg3XqbQvvaDxCyQ1SpJcCBHInAWEJFFIGMahYIzimOV5kck8JySL2YMaPZXtfHp589PL-fPY9fnz2FMZfD6a_cRHs_A7Xu5PxvWf_2j2Zyc3quk1sjFU7n2JBTFnFN6ywCfMQiIYDwkP0zRJJNzwAsaEZ-mj75enMp9715v3rvOXtzO8n-H9EXg_GQB_ZnifiUUo8jCnM9qbVdMt_upp17NZ31WLl8UEpkrrXmq4ieGcHcxWC8ZlHBU44AWkJskSQSn0Q4FxgFkKR_RZRZms9MKLL8HhWn5BToR1Pr6efb8FakEwITiAvyiIceqnQZGHLIsyTCJOM2yzHcq98q0cv-nKWbdwIllfatislDZ6v0k1xLmW0hkMFhplKrm4tl8Grhoh0bvxvyFsbv0ty05ql2bUuD62_UKJNtofP3NAbsyczQtn8H9ar4j1>53131</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Dead Code Elimination Regression at -Oz (trunk vs. 12.0.1)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Quarub
</td>
</tr>
</table>
<pre>
`cat case.c`
```c
static int a, d;
static int *b, *e = &d;
static int **c = &b;
void foo(void);
static int *f(int *g) {
*e = 0;
if (!*g)
foo();
e = 0;
return b;
}
int main() {
int *h = &a, *i, *j = &a;
*j = 1;
i = &a;
*c = i;
f(h);
}
```
`clang-8dba4d42f50ea0f5eea27ec97578a9514cf27585 (trunk) -Oz` can not eliminate `foo` but `clang-llvmorg-12.0.1 -Oz` can.
`clang-8dba4d42f50ea0f5eea27ec97578a9514cf27585 (trunk) -Oz -S -o /dev/stdout case.c`
<details ><summary>Output</summary><p>
```asm
.text
.file "case.c"
.globl main # -- Begin function main
.type main,@function
main: # @main
.cfi_startproc
# %bb.0:
pushq %rax
.cfi_def_cfa_offset 16
movb $1, a(%rip)
movq e(%rip), %rax
andl $0, (%rax)
cmpb $0, a(%rip)
jne .LBB0_2
# %bb.1:
callq foo
.LBB0_2:
andq $0, e(%rip)
xorl %eax, %eax
popq %rcx
.cfi_def_cfa_offset 8
retq
.Lfunc_end0:
.size main, .Lfunc_end0-main
.cfi_endproc
# -- End function
.type a,@object # @a
.local a
.comm a,1,4
.type e,@object # @e
.data
.p2align 3
e:
.quad d
.size e, 8
.type d,@object # @d
.local d
.comm d,4,4
.ident "clang version 14.0.0 (https://github.com/llvm/llvm-project.git 8dba4d42f50ea0f5eea27ec97578a9514cf27585)"
.section ".note.GNU-stack","",@progbits
.addrsig
.addrsig_sym d
```
</p></details>
`clang-llvmorg-12.0.1 -Oz -S -o /dev/stdout case.c`
<details ><summary>Output</summary><p>
```asm
.text
.file "case.c"
.globl main # -- Begin function main
.type main,@function
main: # @main
.cfi_startproc
# %bb.0:
movb $1, a(%rip)
movq e(%rip), %rax
andl $0, (%rax)
andq $0, e(%rip)
xorl %eax, %eax
retq
.Lfunc_end0:
.size main, .Lfunc_end0-main
.cfi_endproc
# -- End function
.type a,@object # @a
.local a
.comm a,1,4
.type e,@object # @e
.data
.p2align 3
e:
.quad d
.size e, 8
.type d,@object # @d
.local d
.comm d,4,4
.ident "clang version 12.0.1 (https://github.com/llvm/llvm-project.git fed41342a82f5a3a9201819a82bf7a48313e296b)"
.section ".note.GNU-stack","",@progbits
.addrsig
.addrsig_sym d
```
</p></details>
`clang-8dba4d42f50ea0f5eea27ec97578a9514cf27585 (trunk) -v`
<details ><summary>Output</summary><p>
```
clang version 14.0.0 (https://github.com/llvm/llvm-project.git 8dba4d42f50ea0f5eea27ec97578a9514cf27585)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /zdata/compiler_cache/clang-8dba4d42f50ea0f5eea27ec97578a9514cf27585/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0
Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/11.1.0
Selected GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/11.1.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
```
</p></details>
`clang-llvmorg-12.0.1 -v`
<details ><summary>Output</summary><p>
```
clang version 12.0.1 (https://github.com/llvm/llvm-project.git fed41342a82f5a3a9201819a82bf7a48313e296b)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /zdata/compiler_cache/clang-f942cdbd50f40f6056ab7f0a401935f53356df97/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0
Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/11.1.0
Selected GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/11.1.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
```
</p></details>
### Bisection
Started with 669ddd1e9b1226432b003dbba05b99f8e992285b
`clang-669ddd1e9b1226432b003dbba05b99f8e992285b -Oz -S -o /dev/stdout case.c`
<details ><summary>Output</summary><p>
```asm
.text
.file "case.c"
.globl main # -- Begin function main
.type main,@function
main: # @main
.cfi_startproc
# %bb.0:
pushq %rax
.cfi_def_cfa_offset 16
movb $1, a(%rip)
movq e(%rip), %rax
andl $0, (%rax)
cmpb $0, a(%rip)
jne .LBB0_2
# %bb.1:
callq foo
.LBB0_2:
andq $0, e(%rip)
xorl %eax, %eax
popq %rcx
.cfi_def_cfa_offset 8
retq
.Lfunc_end0:
.size main, .Lfunc_end0-main
.cfi_endproc
# -- End function
.type a,@object # @a
.local a
.comm a,1,4
.type e,@object # @e
.data
.p2align 3
e:
.quad d
.size e, 8
.type d,@object # @d
.local d
.comm d,4,4
.ident "clang version 13.0.0 (https://github.com/llvm/llvm-project.git 669ddd1e9b1226432b003dbba05b99f8e992285b)"
.section ".note.GNU-stack","",@progbits
.addrsig
.addrsig_sym d
```
</p></details>
Previous commit: b15cbaf5a03d0b32dbc32c37766e32ccf66e6c87
`clang-b15cbaf5a03d0b32dbc32c37766e32ccf66e6c87 -Oz -S -o /dev/stdout case.c`
<details ><summary>Output</summary><p>
```asm
.text
.file "case.c"
.globl main # -- Begin function main
.type main,@function
main: # @main
.cfi_startproc
# %bb.0:
movb $1, a(%rip)
movq e(%rip), %rax
andl $0, (%rax)
andq $0, e(%rip)
xorl %eax, %eax
retq
.Lfunc_end0:
.size main, .Lfunc_end0-main
.cfi_endproc
# -- End function
.type a,@object # @a
.local a
.comm a,1,4
.type e,@object # @e
.data
.p2align 3
e:
.quad d
.size e, 8
.type d,@object # @d
.local d
.comm d,4,4
.ident "clang version 13.0.0 (https://github.com/llvm/llvm-project.git b15cbaf5a03d0b32dbc32c37766e32ccf66e6c87)"
.section ".note.GNU-stack","",@progbits
.addrsig
.addrsig_sym d
```
</p></details>
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWVtv2zYU_jXyC2GBInV98EMuTTFgWLd1ezZ4k8xWlhSJcpP--h1Ssi3HSeC0WdMCDgRTJM9d53zUUXgt7xdejAUzSLBO-QImHr728MX4C1N3iWHeGWa0QLoyiHnkCkmPXh7teOSC200YFfLoNdzETxHCJbY0fEezqbVEeV17JLW3HsmeYM-BYrwtgAp5yUiG9trxjhchncN66pFgZNiuo1HbVBNCx_ytMn1bob2lXnI93Fgr1kxXg5CpIaN9q62bbIyNHsdP-w06tX5YD6bWP0E5RFBPFm1cVlNndnbunuhuKkpWFfNUchbKkOQRVgznkVKMJEpkSZSkLIuCUOQkidLIxs-0ffXZejn_8BUEQOpUqKoNUqVe64oZiFuMbUBhj_cG7ZSU5WZdt8U8ID72gwm7_yDpvs8mNP-I5jWs3ki1gd_OyLo_znB6JZVhuuwgfO9g1vXrNWvvYfKhN01vYMky71Zh3tjhsfpg3Xq7nvlG3Zn9LNelgtEjZDSAkP1mUda8hBubOuiZP49QNJ-jS1UAXd5Xwui6GhJur_a-UaMoSC0vxFu6gcSt04vntEyUAfuhdJHrJRRfa5q2HtHA0ZGIcx9q5GJH2vTd6tZ5HLXs7lCCVPlS5GxZ53mnDAri3fa63nDHFAa2MJgrpKjVza5MByIrWR1sujI6UMUqWQ6y8LCbjgQTUWLd8AnN4_o-VTai_u-Xl3hJHjodTJ0WrCytaTbt3dqWaUIDZt1OVKpHVd7V7WB7pKzBzjc18a2pm21wxfPBTXe7AFu3W6tsUixVJQ8emd_pr5PcQROy-XEawPI-CU7Ip2kGv6skOszLSeqyIW9r_kkJ83xysj1zWUPwHffeynq9HuXZbAqPNKnTNak9s2RmoqQhrNQFeJHRYVEdhPS2ZxJGeRRkq3v_cB4YJk83TB6HQB6FQDr3D0KgparMiEgWZ9FGtZ2FkyAEWMa2XFbGNJ31htzAVWiz6rmVCBOL4eMwhyywZvpAgE4Fa1exEwTs1JgLdtmHY0T57__4dw5QIz5bQgiH_SVDXEBjwbXp9vxMSrC-OFpYdvdrtI3Hg0PPAXszQLo7JdwxcIztT51a5wPmTQ-YH31UvApunzH4jMGnYPAAMt-GwbmSYUBDwlKAYUZZRnCQBhlMeZ6wMKUBVSSDRuuXweDXaAg2_w8iD9M3OkGd7n9YWyhjIfcujZdxOAePq_pLNS911d_Ni6of6VatYhKta6lKS93UnR6B6bcKHnJZKnmtW7sFdn11FUZuwNgGTpZ2KZhYKbvwomcADHwLWjd1D5ADfZ7U0raH76-uoC12mplLvEFz37U2LprbiAk4x25GvxoxcYncBIEf-PjbRMfhC4R_VCU8HCVfV-rVzth1Xxpt_QVxvu3V4UyMw-eoKBnJKHlg4nOyXvf950fW049Cw7erpzwLiZBcRjiHF6oYRzHjSY5ZiIOMRnlEaRTLPEvO9fSr1xOhw4Uu9e7AdSrtSy9o_AJJjeI4k1IGKuMBIXFICceYSs4ZjniW5anKMkLSiD-o0VPZzt3Lm3cv589j1-fPY09l8Lk1-4lbM_odL_cn4_rP35r92aqNrvsO2Rhq977Eg0hwBm9Z4BPmlEguKBE0SeJYwY3IYYxFmjz6fnkq8_nsevOz6_zl7QzvZ3h_BN5PBsCfGd5nckFlRjM2M9qUanFtu9wr6HLRu_E_-zZOf6uiVZ0LGTMOk7df29Cm88eWHfyc9W25eFkoYaq7rlcd3ETQngez1ULlJAxVQigNwwAHeSyiLKRpkiuRsATzWcm4KruFF11CnCr1BTkRNmbR9UwvCCbQ98NfGEQ48ZMgzyhPwxSTULAU2xSHGi99a4dft8WsXTiTeF90sFnqznT7TQaOF5VSTh3IZ71Z1e3ir561PZ85zQtn-X-8BXKz">