https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99419
Bug ID: 99419 Summary: possible missed optimization for dead code elimination Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: zhendong.su at inf dot ethz.ch CC: marxin at gcc dot gnu.org Target Milestone: --- [552] % 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 20210305 (experimental) [master revision 9ee91079fd5:70357716fd6:3d9577c254003f2d18185015b75ce6e3e4af9ca2] (GCC) [553] % [553] % gcctk -O3 -S small.c [554] % [554] % cat small.c extern void foo(void); int a; static int b[2] = {0,0}; int main() { if (b[a]) foo(); return 0; } [555] % [555] % cat small.s .file "small.c" .text .section .text.startup,"ax",@progbits .p2align 4 .globl main .type main, @function main: .LFB0: .cfi_startproc movslq a(%rip), %rax movl b(,%rax,4), %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 .section .rodata .align 8 .type b, @object .size b, 8 b: .zero 8 .globl a .bss .align 4 .type a, @object .size a, 4 a: .zero 4 .ident "GCC: (GNU) 11.0.1 20210305 (experimental) [master revision 9ee91079fd5:70357716fd6:3d9577c254003f2d18185015b75ce6e3e4af9ca2]" .section .note.GNU-stack,"",@progbits