This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: make brofiledbootstrap fails on hammer-branch
- From: Jan Hubicka <jh at suse dot cz>
- To: Andreas Jaeger <aj at suse dot de>, rth at redhat dot com,gcc-patches at gcc dot gnu dot org
- Cc: Jan Hubicka <jh at suse dot cz>
- Date: Thu, 3 Apr 2003 09:47:18 +0200
- Subject: Re: make brofiledbootstrap fails on hammer-branch
- References: <u8d6k482m6.fsf@gromit.moeb>
>
> Honza,
>
> on my Athlon I got this failure:
>
> stage1/xgcc -Bstage1/ -B/opt/gcc/hammer-3_3-branch/i686-suse-linux-gnu/bin/ -c -g -O2 -fprofile-arcs -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long -fno-common -DHAVE_CONFIG_H -I. -I. -I/cvs/gcc-hammer-3_3-branch/gcc -I/cvs/gcc-hammer-3_3-branch/gcc/. -I/cvs/gcc-hammer-3_3-branch/gcc/config -I/cvs/gcc-hammer-3_3-branch/gcc/../include /cvs/gcc-hammer-3_3-branch/gcc/c-decl.c -o c-decl.o
> /cvs/gcc-hammer-3_3-branch/gcc/c-decl.c: In function `complete_array_type':
> /cvs/gcc-hammer-3_3-branch/gcc/c-decl.c:3352: internal compiler error: RTL check: expected elt 3 type 'B', have '0' (rtx barrier) in update_bb_for_insn, at cfgrtl.c:468
Hi,
the problem is that update_bb_for_insn is called for block containing
branches we can temporarily create when profiling (and remove it later
via split_sub_basic_blocks). Regtested/bootstrapped, OK for mainline?
I've installed it to the branch, so make profiledbootstrap should work
now.
Thu Apr 3 09:46:42 CEST 2003 Jan Hubicka <jh at suse dot cz>
* cfgrtl.c (update_bb_for_insn): Do not set block for barriers.
Index: cfgrtl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cfgrtl.c,v
retrieving revision 1.59.2.5
diff -c -3 -p -r1.59.2.5 cfgrtl.c
*** cfgrtl.c 28 Mar 2003 11:42:50 -0000 1.59.2.5
--- cfgrtl.c 3 Apr 2003 07:44:43 -0000
*************** update_bb_for_insn (bb)
*** 465,471 ****
for (insn = bb->head; ; insn = NEXT_INSN (insn))
{
! set_block_for_insn (insn, bb);
if (insn == bb->end)
break;
}
--- 465,472 ----
for (insn = bb->head; ; insn = NEXT_INSN (insn))
{
! if (GET_CODE (insn) != BARRIER)
! set_block_for_insn (insn, bb);
if (insn == bb->end)
break;
}