GCC 3.2 sparc-sun-solaris2.8 bootstrap fails with ICE: SEGV in calculate_global_regs_live
Zdenek Dvorak
rakdver@atrey.karlin.mff.cuni.cz
Thu May 16 13:53:00 GMT 2002
Hello.
> EXECUTE_IF_SET_IN_SBITMAP (blocks_in, 0, i,
> {
> bb = BASIC_BLOCK (i);
> *--qhead = bb;
> bb->aux = bb; <- l.1124
> });
>
> This is almost certainly due to this patch
>
> 2002-05-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
>
> Basic block renumbering removal:
>
> which was the last to touch the affected function.
This should help (but considering that there are problems even on i686 where
I tested it, it might be better to revert the patch):
Zdenek
Index: sched-rgn.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/sched-rgn.c,v
retrieving revision 1.38
diff -c -3 -p -r1.38 sched-rgn.c
*** sched-rgn.c 16 May 2002 17:34:53 -0000 1.38
--- sched-rgn.c 16 May 2002 20:48:59 -0000
*************** schedule_insns (dump_file)
*** 2982,2987 ****
--- 2982,2988 ----
sbitmap large_region_blocks, blocks;
int rgn;
int any_large_regions;
+ basic_block bb;
/* Taking care of this degenerate case makes the rest of
this code simpler. */
*************** schedule_insns (dump_file)
*** 3021,3027 ****
any_large_regions = 0;
large_region_blocks = sbitmap_alloc (last_basic_block);
! sbitmap_ones (large_region_blocks);
blocks = sbitmap_alloc (last_basic_block);
sbitmap_zero (blocks);
--- 3022,3030 ----
any_large_regions = 0;
large_region_blocks = sbitmap_alloc (last_basic_block);
! sbitmap_zero (large_region_blocks);
! FOR_ALL_BB (bb)
! SET_BIT (large_region_blocks, bb->sindex);
blocks = sbitmap_alloc (last_basic_block);
sbitmap_zero (blocks);
More information about the Gcc-bugs
mailing list