target/7856: [arm] invalid offset in constant pool reference
rearnsha@gcc.gnu.org
rearnsha@gcc.gnu.org
Mon Sep 9 04:22:00 GMT 2002
Synopsis: [arm] invalid offset in constant pool reference
State-Changed-From-To: open->analyzed
State-Changed-By: rearnsha
State-Changed-When: Mon Sep 9 03:56:43 2002
State-Changed-Why:
Confirmed as a bug.
The problem comes about due to a change that Nick made to
try to improve the performance of prologue and epilogue code.
His change means that if the link register is not clobbered then
it is never saved on the stack, even if other call-saved registers
need to be saved. The consequence of this is that we
sometimes end up generating 2-instruction return sequences
when we previously only generated a single instruction.
Although at first sight this appears to be faster, it is not
necessarily the best soloution, particularly when the return
is conditional, since we end up making the conditional
sequence longer.
The particular consequence of this change is that the length of the 'return' and 'conditional-return' instructions needs to take
into account this longer sequence if the constant spilling code
is to do its job correctly.
However, I'm not yet convinced that Nick's change is for the
best overall.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=7856
More information about the Gcc-bugs
mailing list