avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FW: [avr-gcc-list] testsuite saga continues


From: Wouter van Gulik
Subject: FW: [avr-gcc-list] testsuite saga continues
Date: Thu, 31 Jan 2008 20:26:18 +0100

On behalf off Andy I am forwarding this:

________________________________________
Van: address@hidden [mailto:address@hidden 
Onderwerp: Re: [avr-gcc-list] testsuite saga continues

Wouter,
 
You are correct. gcc will treat any structure that is 8 bytes or less as a
single "register" and likely have same problem. This would be structures.

I am trying to come up with fixes to several bugs and hopefully this
one sometime.

avr-gcc is odd that it accepts 8 byte as maximum - rather than 4. Im am nor
sure why it was needed without also all the other parts for long long that
must work. However, perhaps this was intended for double support.

To get long long to work, it would be wise for all other patterns to be
reduced to byte level expansion (where possible) this would exclude
shift/compare/add etc that need "carry" operations. That would mimimise the
amount of work required.

New patterns would include move DI (8bytes) and perhaps add/sub/compare

Also, it would be wise to change priority of register allocation (which I
have a fix  for). Since the current allocation does not easily permit 8
contigous registers to be allocated (the first is r24!). So you have mess of
stack operations and register moves created

Of course it will still be slow!

I do not intend to fix problems for long long - unless they also fix
problems in other areas.

Please post to list - this email will not work for me.




-----Original Message-----
From: Wouter van Gulik <address@hidden>
To: Paulo Marques <address@hidden>
Cc: address@hidden
Sent: Wed, 30 Jan 2008 3:56 am
Subject: Re: [avr-gcc-list] testsuite saga continues
>> Do you have a clue on why the tests fail? There is an ugly bug
concerning 
>> stack allocation and 64 bit variables, maybe that is the evil one. See: 
>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27386 for details. 
> > All the failed tests I've seen so far do in fact pass "long long" >
arguments to functions together with a bunch of other arguments > (sometimes
using va_args, too). 
> > In one of the cases (gcc.c-torture/execute/20030307-1.c), the test only
> fails at -O0 and -O1, but passes with other optimization levels because >
the functions get inlined and disappear completely, so the argument >
passing problem disappears too. 
> > So, I would say that it is very likely the same bug... 
>  
So this means that 64 bit is mainly supported, only due to the stack
allocation bug it's hard (if not impossible) to use. 
We should really try to find someone who can fix this nasty bug. 
 
Note that all sort of stack parsed arguments can go wrong, so it's not only
64 bit. 
 
Wouter 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]