i386-linux cross sh-elf breakage

Clinton Popetz cpopetz@cygnus.com
Tue May 16 12:01:00 GMT 2000


On Mon, May 15, 2000 at 03:31:49PM -0700, Toshiyasu Morita wrote:
> version: CVS
>    host: i386-linux
>  target: sh-elf
> 
> Compiler fails to build; here's the relevant log:
> 
> ./../egcs/gcc/libgcc2.c: In function `__muldi3':
> ./../egcs/gcc/libgcc2.c:204: Internal compiler error in 
> `verify_wide_reg_1', at flow.c:2605

This is due to a piece of the condexec merge:

2000-04-26  Richard Henderson  <rth@cygnus.com>

        * flow.c (count_reg_sets_1): Remove.
        (count_reg_sets, count_reg_references): Remove.
        (recompute_reg_usage): Implement with update_life_info.
        Reallocate life data.

which is assuming that there have been no global lifetime changes when
recompute_reg_usage is called.  But optimize_mode_switching is adding a (use)
in the exit block.

Richard, should recompute_reg_usage use UPDATE_LIFE_GLOBAL, or should we
call update_life_info after optimize_mode_switching?

FWIW, currently sh is the only port this effects, and it always clears
flag_schedule_insns.

				-Clint


More information about the Gcc-bugs mailing list