This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: ARM port bug


Richard Earnshaw <rearnsha@arm.com> writes:

> > 
> > I have founded a bug in ARM port (testcase at end of mail).
> > gcc version 3.0 20010525 (prerelease)
> > 
> > As I understand the ARM port have a `(define_expand "epilogue" ...)'
> > And this `define_expand' don't emit the moves on RTL level for restoring
> > a call-saved registers.
> > 
> > While `update_life_info' executed after reload the `mark_regs_live_at_end'
> > mark all registers used by the epilogue as being live at the end of
> > the function and don't unmark it because RTL version of epilogue
> > havn't a moves.
> > 
> > What's right ?
> > 1. emit a RTL moves in epilogue;
> 
> Probably, but it looks like the rules have been quietly (and subtly) 
> changed again :-(
> 
> > 2. remove `(define_expand "epilogue" ...)' (Why it's needed ?)
> 
> IIRC We need this to get a return sequence that can be threaded by the 
> final jump pass when there is a simple exit sequence.
> 
> Please can you use gccbug and submit a formal bug report with the 
> imformation you have provided.

I will try. (I'm extremely busy. I post the bug report without a solution
only because I havn't a time to fix this bug before 15-Jun)

> Can you also confirm whether this bug 
> occured with gcc-2.95?  That will affect the priority it gets.

This bug isn't occured with gcc-2.95.3.

Denis.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]