https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99428
Bug ID: 99428 Summary: possible missed optimization for dead code elimination Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: zhendong.su at inf dot ethz.ch Target Milestone: --- [604] % gcctk -v Using built-in specs. COLLECT_GCC=gcctk COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/11.0.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-trunk/configure --disable-bootstrap --prefix=/local/suz-local/software/local/gcc-trunk --enable-languages=c,c++ --disable-werror --enable-multilib --with-system-zlib Thread model: posix Supported LTO compression algorithms: zlib gcc version 11.0.1 20210306 (experimental) [master revision 02a35548790:4487c1830cf:ceae9533826aabaf4c78d173c60e3bedeffc6955] (GCC) [605] % [605] % gcctk -O3 -S small.c [606] % [606] % cat small.c extern void foo(void); static int a; static int *b = &a; int main() { if (*b) foo(); return 0; } [607] % [607] % cat small.s .file "small.c" .text .section .text.startup,"ax",@progbits .p2align 4 .globl main .type main, @function main: .LFB0: .cfi_startproc movl a(%rip), %ecx testl %ecx, %ecx jne .L8 xorl %eax, %eax ret .L8: pushq %rax .cfi_def_cfa_offset 16 call foo xorl %eax, %eax popq %rdx .cfi_def_cfa_offset 8 ret .cfi_endproc .LFE0: .size main, .-main .local a .comm a,4,4 .ident "GCC: (GNU) 11.0.1 20210306 (experimental) [master revision 02a35548790:4487c1830cf:ceae9533826aabaf4c78d173c60e3bedeffc6955]" .section .note.GNU-stack,"",@progbits