[Bug optimization/12863] [3.4 regression] basic block reordering fails for fallthru of casesi

jh at suse dot cz gcc-bugzilla@gcc.gnu.org
Sat Nov 1 01:16:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12863



------- Additional Comments From jh at suse dot cz  2003-11-01 01:16 -------
Subject: Re:  New: [3.4 regression] basic block reordering fails for fallthru of casesi

> PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12863
> 
>            Summary: [3.4 regression] basic block reordering fails for
>                     fallthru of casesi
>            Product: gcc
>            Version: 3.4
>             Status: UNCONFIRMED
>           Severity: normal
>           Priority: P2
>          Component: optimization
>         AssignedTo: unassigned at gcc dot gnu dot org
>         ReportedBy: danglin at gcc dot gnu dot org
>                 CC: gcc-bugs at gcc dot gnu dot org,jh at suse dot cz
>  GCC build triplet: hppa1.1-hp-hpux10.20
>   GCC host triplet: hppa1.1-hp-hpux10.20
> GCC target triplet: vax-dec-ultrix4.3
> 
> The following error occurs in a native build on vax-dec-ultrix4.3:
> 
> stage1/xgcc -Bstage1/ -B/usr/local/vax-dec-ultrix4.3/bin/   -g -O2 -DIN_GCC   -W
>  -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-l
> ong-long -Werror -fno-common   -DHAVE_CONFIG_H    -I. -I. -I../../gcc/gcc -I../.
> ./gcc/gcc/. -I../../gcc/gcc/../include  -c insn-recog.c \
>   -o insn-recog.o
> /usr/tmp//ccIivLi7.s: Assembler messages:
> /usr/tmp//ccIivLi7.s:5966: Error: can't resolve `L1074' {unknown section} - `L10
> 86' {text section}
> 
> Looking at this problem with a cross compiler built on hppa1.1-hp-hpux10.20,
> I see exactly the same problem and find that the code label for L1074 disappears
> in bbro pass.  Looking at the assembler output with and without basic block
> reordering, I see:

Looks like cfg_cleanup is getting confused by fact that block is reached
via FALLTHRU and thinks he can remove the label.  I will look into this
deeper tomorrow.
Having preprocessed testcase would be helpful.  

Honza
> 
> With basic block reordering:
> 
>         movzwl (r6),r0
>         casel r0,$114,$5
> L1086:
>         .word L1084-L1086
>         .word L1074-L1086
>         .word L1078-L1086
>         .word L1076-L1086
>         .word L1082-L1086
>         .word L1080-L1086
>         .stabd  68,0,4406
>         movl 4(r7),r8
>         jbr L1392
> 
> Without basic block reordering:
> 
>         movzwl (r6),r0
>         casel r0,$114,$5
> L1086:
>         .word L1084-L1086
>         .word L1074-L1086
>         .word L1078-L1086
>         .word L1076-L1086
>         .word L1082-L1086
>         .word L1080-L1086
> L1074:
>         jbr L1385
> L1076:
>         .stabd  68,0,3809
>         movl 4(r6),r10
>         .stabd  68,0,3810
>         ...
> L1385:
>         .stabd  68,0,4406
>         movl 4(r7),r8
>         .stabd  68,0,4407
>         jbr L1062
> 
> We have lost the label at the end of the address difference table when basic
> block reordering is in effect.  Either it should remain as L1074, or it should
> change to L1385 and the table updated.  The right code appears to have been
> placed in the fallthru.
> 
> 
> 
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.



More information about the Gcc-bugs mailing list