[Bug target/60104] New: load not folded into indirect branch on x86-64
dan433584 at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Feb 7 00:17:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60104
Bug ID: 60104
Summary: load not folded into indirect branch on x86-64
Product: gcc
Version: 4.8.2
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: dan433584 at gmail dot com
Created attachment 32075
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32075&action=edit
a C testcase
The attached testcase is a greatly reduced interpreter loop, containing a
simple load and indirect branch:
goto *addresses[*pc++]
gcc 4.8.2 (as well as older versions) with -O2 produces the following x86-64
output:
movq addresses.1721(,%rax,8), %rax
jmp *%rax
Since the loaded value is not used after the branch, there's no need to hold it
in a register, so the load could be folded into the branch. This would improve
code size and instruction count.
More information about the Gcc-bugs
mailing list