This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ARM port bug
- To: Richard dot Earnshaw at arm dot com
- Subject: Re: ARM port bug
- From: Denis Chertykov <denisc at overta dot ru>
- Date: 01 Jun 2001 22:20:41 +0400
- Cc: Denis Chertykov <denisc at overta dot ru>, gcc at gcc dot gnu dot org
- References: <200106010943.KAA24693@cam-mail2.cambridge.arm.com>
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.