David Daney <[EMAIL PROTECTED]> wrote:
> From svn r119726 (Sun, 10 Dec 2006) I am getting an ICE during
> bootstrap on mipsel-linux. This is a new failure since Wed Dec 6
> 06:34:07 UTC 2006 (revision 119575) which bootstrapped and tested just
> fine. I don't really want to do a regression hunt as bootstraps take 3
> or 4 days for me. I will update and try it again.
While I've looked at a wrong code problem on sh-elf, I've
noticed that it happens also on mips-elf. It might affect
mipsel-linux.
Now gcc.c-torture/execute/20010422-1.c is compiled like as
foo:
.frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0
.mask 0x00000000,0
.fmask 0x00000000,0
.set noreorder
.set nomacro
sltu $2,$2,5
beq $2,$0,$L2
nop
...
which looks wrong. The binary search shows that before
r119711 | amacleod | 2006-12-11 06:25:40 +0900 (Mon, 11 Dec 2006) | 103 lines
the assembler output is
foo:
.frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0
.mask 0x00000000,0
.fmask 0x00000000,0
.set noreorder
.set nomacro
sltu $4,$4,5
beq $4,$0,$L2
nop
...
It seems that the first tree dump which differs before and
after r119711 is .099t.optimized.
[r119710 .099t.optimized]
;; Function foo (foo)
Analyzing Edge Insertions.
foo (x)
{
unsigned int x.24;
<bb 2>:
if (x <= 4) goto <L5>; else goto <L4>;
<L5>:;
x.24 = 4;
goto <bb 4> (<L2>);
<L4>:;
x.24 = 8;
<L2>:;
return x.24;
}
[r119711 .099t.optimized]
;; Function foo (foo)
Analyzing Edge Insertions.
foo (x)
{
unsigned int x.24;
<bb 2>:
if (x.24 <= 4) goto <L5>; else goto <L4>;
<L5>:;
x = 4;
goto <bb 4> (<L2>);
<L4>:;
x = 8;
<L2>:;
return x;
}
Regards,
kaz