public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/63450] New: Optimizing -O3 generates rep ret on an almost empty function
@ 2014-10-03 10:46 lc at luiscoloradosistemas dot com
  2014-10-03 10:57 ` [Bug c/63450] " lc at luiscoloradosistemas dot com
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: lc at luiscoloradosistemas dot com @ 2014-10-03 10:46 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63450

            Bug ID: 63450
           Summary: Optimizing -O3 generates rep ret on an almost empty
                    function
           Product: gcc
           Version: 4.9.1
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: lc at luiscoloradosistemas dot com

When I try to compile this piece of code:
$ cat pru.c
void f()
{
    int b=0;
}

using
gcc -O3 -S -o pru.S pru.c

I get this assembler output:

$ gcc -O3 -S -o - pru.c
    .file    "pru.c"
    .text
    .p2align 4,,15
.globl f
    .type    f, @function
f:
.LFB0:
    .cfi_startproc
    rep                      <<<<<<<<< string prefix just before a ret ???
    ret
    .cfi_endproc
.LFE0:
    .size    f, .-f
    .ident    "GCC: (GNU) 4.4.7 20120313 (Red Hat 4.4.7-3)"
    .section    .note.GNU-stack,"",@progbits


In some other cases I have got even the `rep' and the `ret' in the same line,
so the assembler complained about it (in release 2.20 of the assembler, not in
later 2.23.2) with this piece of code:

$ cat program.c
#include <stdio.h>

void printer(void)
{
    int a=0;
    printf("%d\n", a);
}

void setter(void)
{
    int b = 42;
}

int main()
{
    setter();
    printer();
    return 0;
}


arch: Linux ***** 2.6.32-358.23.2.el6.x86_64 #1 SMP Sat Sep 14 05:32:37 EDT
2013 x86_64 x86_64 x86_64 GNU/Linux
compiler version:
gcc-4.8 (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c/63450] Optimizing -O3 generates rep ret on an almost empty function
  2014-10-03 10:46 [Bug c/63450] New: Optimizing -O3 generates rep ret on an almost empty function lc at luiscoloradosistemas dot com
@ 2014-10-03 10:57 ` lc at luiscoloradosistemas dot com
  2014-10-03 14:29 ` andi-gcc at firstfloor dot org
  2014-10-06 14:53 ` rguenth at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: lc at luiscoloradosistemas dot com @ 2014-10-03 10:57 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63450

--- Comment #1 from Luis Colorado <lc at luiscoloradosistemas dot com> ---
when i compile a completely empty function i get the rep ret in the same line.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c/63450] Optimizing -O3 generates rep ret on an almost empty function
  2014-10-03 10:46 [Bug c/63450] New: Optimizing -O3 generates rep ret on an almost empty function lc at luiscoloradosistemas dot com
  2014-10-03 10:57 ` [Bug c/63450] " lc at luiscoloradosistemas dot com
@ 2014-10-03 14:29 ` andi-gcc at firstfloor dot org
  2014-10-06 14:53 ` rguenth at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: andi-gcc at firstfloor dot org @ 2014-10-03 14:29 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63450

Andi Kleen <andi-gcc at firstfloor dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andi-gcc at firstfloor dot org

--- Comment #2 from Andi Kleen <andi-gcc at firstfloor dot org> ---
This is a feature in -mtune=generic because it helps branch prediction in some
older AMD CPUs. If you're optimizing for Atom you'll get even more padding due
to other reasons. Optimizing e.g. for nehalem should avoid it.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug c/63450] Optimizing -O3 generates rep ret on an almost empty function
  2014-10-03 10:46 [Bug c/63450] New: Optimizing -O3 generates rep ret on an almost empty function lc at luiscoloradosistemas dot com
  2014-10-03 10:57 ` [Bug c/63450] " lc at luiscoloradosistemas dot com
  2014-10-03 14:29 ` andi-gcc at firstfloor dot org
@ 2014-10-06 14:53 ` rguenth at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-10-06 14:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63450

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
feature.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-10-06 14:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-03 10:46 [Bug c/63450] New: Optimizing -O3 generates rep ret on an almost empty function lc at luiscoloradosistemas dot com
2014-10-03 10:57 ` [Bug c/63450] " lc at luiscoloradosistemas dot com
2014-10-03 14:29 ` andi-gcc at firstfloor dot org
2014-10-06 14:53 ` rguenth at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).