This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] for PR 32773
- From: Rask Ingemann Lambertsen <rask at sygehus dot dk>
- To: Zdenek Dvorak <rakdver at kam dot mff dot cuni dot cz>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Tue, 17 Jul 2007 14:14:14 +0200
- Subject: Re: [patch] for PR 32773
- References: <20070716193841.GA16777@kam.mff.cuni.cz>
On Mon, Jul 16, 2007 at 09:38:41PM +0200, Zdenek Dvorak wrote:
> Hello,
>
> contrary to my belief, it turns out that cfg_layout_finalize does not
> ensure that exit block has at most one fallthru predecessor. Keeping
> several fallthru edges leads to ICE or misscompilation.
>
> The patch below makes us create a forwarder block in case exit has
> several fallthru predecessors. Bootstrapped & regtested on i686.
It breaks on m32c-unknown-elf:
/home/rask/build/gcc-m32c-unknown-elf/./gcc/xgcc -B/home/rask/build/gcc-m32c-unknown-elf/./gcc/ -nostdinc -B/home/rask/build/gcc-m32c-unknown-elf/m32c-unknown-elf/newlib/ -isystem /home/rask/build/gcc-m32c-unknown-elf/m32c-unknown-elf/newlib/targ-include -isystem /n/12/rask/src/all/newlib/libc/include -B/usr/local/m32c-unknown-elf/bin/ -B/usr/local/m32c-unknown-elf/lib/ -isystem /usr/local/m32c-unknown-elf/include -isystem /usr/local/m32c-unknown-elf/sys-include -L/home/rask/build/gcc-m32c-unknown-elf/./ld -B/home/rask/build/gcc-m32c-unknown-elf/m32c-unknown-elf/libgloss/m32c -L/home/rask/build/gcc-m32c-unknown-elf/m32c-unknown-elf/libgloss/m32c -L/home/rask/build/gcc-m32c-unknown-elf/m32c-unknown-elf/libgloss/libnosys -O2 -g -O2 -O2 -O2 -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../.././gcc -I/n/12/rask/src/all/libgcc -I/n/12/rask/src/all/libgcc/. -I/n/12/rask/src/all/libgcc/../gcc -I/n/12/rask/src/all/libgcc/../include
-DHAVE_CC_TLS -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep -DL_muldi3 -c /n/12/rask/src/all/libgcc/../gcc/libgcc2.c \
/n/12/rask/src/all/libgcc/../gcc/libgcc2.c: In function '__muldi3':
/n/12/rask/src/all/libgcc/../gcc/libgcc2.c:566: internal compiler error: in cfg_layout_redirect_edge_and_branch, at cfgrtl.c:2407
Try it in a unified tree with these configure flags:
--target m32c-unknown-elf --with-newlib --enable-sim --disable-gdb
--disable-nls --disable-multilib --enable-languages=c,c++
--enable-cxx-flags=-O2
Revision 126700 fails while revision 126699 works.
--
Rask Ingemann Lambertsen