[Bug rtl-optimization/60159] New: improve code for conditional sibcall
jay.foad at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Feb 12 11:24:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60159
Bug ID: 60159
Summary: improve code for conditional sibcall
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: jay.foad at gmail dot com
If I compile this code for x86-64 I get:
$ cat jcc.c
extern int f(int x);
int g(int x) { return x > 3 ? f(x) : x; }
$ cc1 -quiet -O3 jcc.c -o -
...
g:
.LFB0:
.cfi_startproc
cmpl $3, %edi
jg .L4
movl %edi, %eax
ret
.p2align 4,,10
.p2align 3
.L4:
jmp f
.cfi_endproc
This code would be simpler and shorter if the jg-to-jmp sequence was replaced
with a single "jg f" instruction.
I'm using gcc built from svn trunk r207717.
More information about the Gcc-bugs
mailing list