Hi,

The attached RFC-patch adds a pass to hoist common code that is found in
all case labels of a switch expression (PR11832).

I get an ICE in tree_redirect_edge_and_branch() though, so my question
is if i forgot some kind of needed fixup?

TIA for any pointers..

The ICE (against r127248 in case that matters) looks like:
----- 8< -----
/scratch/obj/gcc-4.3/./prev-gcc/xgcc
-B/scratch/obj/gcc-4.3/./prev-gcc/ -B/opt/gcc-4.3//i686-linux-gnu/bin/
-c -DHAVE_CONFIG_H -Os -march=i386 -mtune=i386 -finline-limit=0 -g3
-ggdb3  -I. -I../../../src/gcc-4.3/libiberty/../include  -W -Wall
-Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic  -fpic
../../../src/gcc-4.3/libiberty/cp-demangle.c -o pic/cp-demangle.o; \
        else true; fi
                ../../../src/gcc-4.3/libiberty/cp-demangle.c: In
function 'd_make_comp':
                ../../../src/gcc-4.3/libiberty/cp-demangle.c:745:
internal compiler error: in tree_redirect_edge_and_branch, at
tree-cfg.c:4835
----- 8< -----

PS:  The patch below may contain a few completely unrelated edits,
mostly cleanups and a comment. Please disregard all such unrelated
hunks for now.

Attachment: gcc-4.3-switchhoisting.01c.diff.bz2
Description: BZip2 compressed data

Reply via email to