Re: Errors in aa2

From: J . A . Magallon (jamagallon@able.es)
Date: Sat Nov 18 2000 - 13:37:28 EST


On Sat, 18 Nov 2000 18:19:37 Andrea Arcangeli wrote:
> On Sat, Nov 18, 2000 at 03:36:09AM +0100, J . A . Magallon wrote:
> > /usr/bin/kgcc -D__KERNEL__ -I/usr/src/linux/include -Wall
> -Wstrict-prototypes
> > -O4 -fomit-frame-pointer -fno-strict-aliasing -D__SMP__ -pipe
> > -fno-strength-reduce -march=i686 -malign-loops=2 -malign-jumps=2
> > -malign-functions=2 -DCPU=686 -c -o time.o time.c
> > time.c: In function `do_gettimeofday':
> > time.c:727: fixed or forbidden register 0 (ax) was spilled for class AREG.
> > This may be due to a compiler bug or to impossible asm
> > statements or clauses.
>
> That's compiler bug obviously.
>
> Anyways I guess you're triggering compiler bugs because of the weird
> optimizations (-O4). Note also that everything over -O2 is _wrongly_ used to
> inline everything and that will trash away all your icache (I remeber
> also Linus complained about that bad behaviour of >-O2 in the past and
> it's also trivial to fix [shouldn't be more than a one liner], but nobody on
> the gcc side seems to care to fix it since it's still impling the
> inline-functions in gcc CVS of a few weeks ago).
>

Thanks. I tried to do "by hand" the inlining (just cut and paste, the proc
seemed
not to be used anywhere but time.c), but the result was the same. So looked at
the
gcc info and saw that the function was being inlined from opt level 3.
Also realized that the 'O4' level does not exist in gcc ( I think i 'ported' it
from
use of IRIX cc), so just O2 is right.

Anyway, you can compile somehing with -O9751, and gcc says nothing. If max opt
level
is 3, any higher level should trig a warning at least...

-- 
Juan Antonio Magallon Lacarta                                 #> cd /pub
mailto:jamagallon@able.es                                     #> more beer

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Nov 23 2000 - 21:00:16 EST