This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: i386-linux cross sh-elf breakage
- To: Toshiyasu Morita <tm at netcom dot com>
- Subject: Re: i386-linux cross sh-elf breakage
- From: Clinton Popetz <cpopetz at cygnus dot com>
- Date: Tue, 16 May 2000 14:01:46 -0500
- Cc: gcc-bugs at gcc dot gnu dot org
- References: <200005152231.PAA01084@netcom.com>
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