http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42494

Arnaud Lacombe <lacombar at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |lacombar at gmail dot com

--- Comment #13 from Arnaud Lacombe <lacombar at gmail dot com> 2011-05-13 
19:26:40 UTC ---
It would seem that GCC 4.5.1 is still generating a call to func(), at -Os.
Considering the following reduced test-case:

extern int outcnt;
void test ()
{
 outcnt = 0;
 if (outcnt == 1) func ();
 if (outcnt == 1) func ();
 if (outcnt == 1) func ();
 if (outcnt == 1) func ();
 if (outcnt == 1) func ();
 if (outcnt == 1) func ();
 if (outcnt == 1) func ();
 if (outcnt == 1) func ();
}

At -O2:

/usr/libexec/gcc/x86_64-redhat-linux/4.5.1/cc1 -O2 -o - test.c
        .file   "test.c"
 test
Analyzing compilation unit
Performing interprocedural optimizations
 <*free_lang_data> <visibility> <early_local_cleanups> <whole-program> <cp>
<inline> <static-var> <pure-const>Assembling functions:
 test   .text
        .p2align 4,,15
.globl test
        .type   test, @function
test:
.LFB0:
        .cfi_startproc
        movl    $0, outcnt(%rip)
        ret
        .cfi_endproc
.LFE0:
        .size   test, .-test
        .ident  "GCC: (GNU) 4.5.1 20100924 (Red Hat 4.5.1-4)"
        .section        .note.GNU-stack,"",@progbits


Now, at -Os:

/usr/libexec/gcc/x86_64-redhat-linux/4.5.1/cc1 -Os -o - test.c
        .file   "test.c"
 test
Analyzing compilation unit
Performing interprocedural optimizations
 <*free_lang_data> <visibility> <early_local_cleanups> <whole-program> <cp>
<inline> <static-var> <pure-const>Assembling functions:
 test   .text
.globl test
        .type   test, @function
test:
.LFB0:
        .cfi_startproc
        movl    $0, outcnt(%rip)
        cmpl    $1, outcnt(%rip)
        jne     .L1
        xorl    %eax, %eax
        jmp     func
.L1:
        ret
        .cfi_endproc
.LFE0:
        .size   test, .-test
        .ident  "GCC: (GNU) 4.5.1 20100924 (Red Hat 4.5.1-4)"
        .section        .note.GNU-stack,"",@progbits

Reply via email to