This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: how to implement pipeline errata?
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: Spundun Bhatt <spundun at ISI dot EDU>
- Cc: gcc at gcc dot gnu dot org
- Date: Thu, 20 Mar 2003 22:57:58 -0500
- Subject: Re: how to implement pipeline errata?
- References: <1048206039.23822.23.camel@mermaid.isi.edu>
On Thu, Mar 20, 2003 at 04:20:40PM -0800, Spundun Bhatt wrote:
> Hi gcc
> I am looking to implement a workaround in gcc backend to avoid an
> instruction sequence which produces erroneous output due to an error in
> pipeline forwarding.
> Namely if I have an arithmatic instruciont
> 'arith Rd, R1,R2'
> then I can not use instruction
> 'ST Rd,R3,offset' in the next to instruction slots.
>
> >From what I read, peep-hole,splits and function unit definitions seem to
> work for optimizations and only try to avoid these occurances rather
> than force to avoid the sequence at any cost, which is what I want.
> I thought about define_delay as an alternative but that looks so
> complecated because of the huge number of arithmatic instructions.. I
> will have to "semi-handcode" nops at all the places...
>
> I am sure all architectures have gone through similar erroneous chips,
> so I was hoping gcc might have some provision for it.
I recommend doing this sort of thing in the assembler instead - the
impact is pretty small.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer