This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: egcs is broken on ppro.


H.J. Lu said:
> It turns out egcs is broken on Intel Pentim Pro. In additon to the
> small test case I sent earlier, I even got the same compiler error
> when I built egcs. See below.
> 
> I think the problem is the spill register %eax is used long before
> reload when the arch has conditional move. For whatever reason,
> egcs reuse %eax as the spill register.
> 
> 
> -- 
> H.J. Lu (hjl@gnu.ai.mit.edu)
> ---
> gcc -c  -DIN_GCC   -DUSE_GNULIBC_1 -mcpu=pentiumpro -march=pentiumpro -funroll-loops -O2 -g -pipe -fno-exceptions  -DHAVE_CONFIG_H     -I. -I/home/work/gnu/src/egcs/gcc -I/home/work/gnu/src/egcs/gcc/config /home/work/gnu/src/egcs/gcc/expr.c
> /home/work/gnu/src/egcs/gcc/expr.c: In function `expand_assignment':
> /home/work/gnu/src/egcs/gcc/expr.c:3081: internal error--insn does not satisfy its constraints:
> (insn/s 1055 1054 341 (parallel[ 
>             (set (reg/v:SI 1 %edx)
>                 (if_then_else:SI (ne (cc0)
>                         (const_int 0))
>                     (reg:SI 0 %eax)
>                     (const_int 1)))
>             (clobber (reg:SI 0 %eax))
>         ] ) 374 {movsicc_1} (insn_list 329 (insn_list 331 (nil)))
>     (expr_list:REG_DEAD (reg:SI 0 %eax)
>         (expr_list:REG_UNUSED (reg:SI 0 %eax)
>             (nil))))
> gcc: Internal compiler error: program cc1 got fatal signal 6
> cpp: output pipe has been closed
> 
Even though I know that it is likely not a correct fix (but I wanted to make
it (egcs-latest)) work for me -- I added force_reg operations to the
appropriate define_expands (e.g. cmpsi.)  Problem went away -- but I really
don't feel like that my change is anything but a work-around.

(Sorry for not reporting it -- but I like to be a lurker on the list, because of
 being overloaded on my work at NCI/Oracle and FreeBSD :-)).

John
dyson@freebsd.org
jdyson@nc.com
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]