[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-gcc-list] Compiler bug ?
From: |
E. Weddington |
Subject: |
Re: [avr-gcc-list] Compiler bug ? |
Date: |
Fri, 18 Apr 2003 11:10:54 -0600 |
On 17 Apr 2003 at 22:57, Marek Michalkiewicz wrote:
> Hi,
>
> On Thu, Apr 17, 2003 at 10:40:17PM +0400, Denis Chertykov wrote:
> > > > foo.s foo.c: In function `DoDeadBand': foo.c:21: error: unable
> > > > to generate reloads for: (insn:QI 31 28 32 2 006B7390 (set (cc0)
> > > > (compare (sign_extend:HI (reg/v:QI 24 r24 [42]))
> > > > (const_int -20 [0xffffffec]))) 94
> > > > {*cmpqi_sign_extend}
> > > > (nil)
> > > > (nil))
> > > > foo.c:21: internal compiler error: in find_reloads, at
> > > > gcc/reload.c:3636
>
> Looks like the second operand of *cmpqi_sign_extend is negatve, so it
> doesn't meet the "M" constraint (value >= 0 && value <= 0xff). It's
> not clear to me why is this insn needed at all - what does it do that
> the second "cmpqi" alternative doesn't already? Or should a more
> selective predicate be used instead of immediate_operand?
>
> An operand whose predicate accepts only constant values is safe
> provided its constraints include the letter `i'. If any possible
> constant value is accepted, then nothing less than `i' will do;
> if the predicate is more selective, then the constraints may also
> be more selective.
>
> > > I'm trying to get a new WinAVR release out this week to address
> > > another compiler bug that was reported on avr-gcc-list earlier.
> >
Well it looks like the bug is still there in the 20030414 snapshot of
GCC 3.3. I get the same output as before.
I'm willing to wait for next week's snapshot to see if this can be
resolved.
Eric
Re: [avr-gcc-list] Compiler bug ?, E. Weddington, 2003/04/16