equivalence handling patch applied to local-alloc.c, reload1.c

Toshiyasu Morita tm@netcom.com
Wed Nov 11 21:40:00 GMT 1998


> 
> Tue Nov 10 04:12:02 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
> 
> 	Handle equivalences that have been obscured by gcse:
> 
> 	* reload1.c (reload): Handle equivalences set up in multiple places.
> 	* local-alloc.c (reg_equiv_init_insns): New variable.
> 	(no_equiv): New function.
> 	(update_equiv_regs): Handle equivalences set up in multiple places.
> 	Don't ignore an insn just because its destination is likely to be
> 	spilled.
   
   host: i386-linux
 target: sh-hms
options: -O2 -m3e -S -g

I just did a CVS checkout of gcc-current which contains this patch, and
it crashes on the file shade.c:

shade.c: In function `gl_color_shade_vertices':
shade.c:6106: fixed or forbidden register 22 (fpul) was spilled for class 
FPUL_REGS.
shade.c:6106: This may be due to a compiler bug or to impossible asm
shade.c:6106: statements or clauses.
shade.c:6106: This is the instruction:
(insn 1021 1020 1022 (set (reg:SI 22 fpul)
        (fix:SI (reg/v:SF 5 r5))) 203 {*fixsfsi} (insn_list 1020 (nil))
    (expr_list:REG_DEAD (reg/v:SF 5 r5)
        (nil)))
toplev.c:1390: Internal compiler error in function fatal_insn

I have put the file shade.c at:

ftp://shell14.ba.best.com/pub.t/tm2/shade.c

Toshi



More information about the Gcc-bugs mailing list