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