This is the mail archive of the gcc-bugs@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: i386-linux cross sh-elf breakage


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

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