[Bug middle-end/60162] New: [4.9 lra regression] mlra appears to be using the FP registers as a set of spill registers for ARM.
ramana at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Feb 12 22:08:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60162
Bug ID: 60162
Summary: [4.9 lra regression] mlra appears to be using the FP
registers as a set of spill registers for ARM.
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: ramana at gcc dot gnu.org
This is something that I've just noticed with spec2k gzip : longest_match.
If the function is compiled for a cross arm-none-linux-gnueabihf toolchain with
the following parameters,
--with-arch=armv7-a --with-fpu=neon --with-float=hard
With a cross toolchain using mlra by default I get code that loads a value into
an FP register and then moves this over to an integer register. While this is
not that big a problem on some of the newer cores, it will be an issue on older
cores where the latency of such transfers can be pretty high.
You can experiment with -mno-lra to see the difference in code generated and
this is essentially something that has shown up rather recently.
Bisecting and will follow up in the morning with a testcase.
More information about the Gcc-bugs
mailing list