This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[3.3 branch, 6 regressions] Re: 'fix' for 11350 causes bootstrap hang on Darwin
Matthias Klose writes:
> Andreas Tobler writes:
> > Andreas Tobler wrote:
> >
> > > Geoff Keating wrote:
> > >
> > >> Hi Jan,
> > >>
> > >> This patch:
> > >>
> > >> 2004-01-16 Jan Hubicka <jh@suse.cz>
> > >>
> > >> PR opt/11350
> > >> * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
> > >> after reload.
> > >> * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
> > >> rtl_try_redirect_by_replacing_branch): Likewise.
> > >>
> > >> causes bootstrap to hang on powerpc-darwin. The sequence is:
> > >
> > >
> > > testing it on ppc linux too sine it hangs also.
> >
> > Passed the hanger, building now runtimelibs.
>
> Here is the update for 3.3 branch:
>
> --- gcc/cfgrtl.c~ 2004-01-16 13:40:47.000000000 +0100
> +++ gcc/cfgrtl.c 2004-01-17 11:01:11.000000000 +0100
> @@ -688,7 +688,7 @@
>
> if (tmp || !onlyjump_p (insn))
> return false;
> - if (reload_completed && JUMP_LABEL (insn)
> + if (flow2_completed && JUMP_LABEL (insn)
> && (table = NEXT_INSN (JUMP_LABEL (insn))) != NULL_RTX
> && GET_CODE (table) == JUMP_INSN
> && (GET_CODE (PATTERN (table)) == ADDR_VEC
> @@ -758,7 +758,7 @@
> /* Recognize a tablejump that we are converting to a
> simple jump and remove its associated CODE_LABEL
> and ADDR_VEC or ADDR_DIFF_VEC. */
> - if ((tmp = JUMP_LABEL (insn)) != NULL_RTX
> + if (! reload_completed && (tmp = JUMP_LABEL (insn)) != NULL_RTX
> && (tmp = NEXT_INSN (tmp)) != NULL_RTX
> && GET_CODE (tmp) == JUMP_INSN
> && (GET_CODE (PATTERN (tmp)) == ADDR_VEC
compared to 20040110, a bootstrap with 20040117 including this patch
shows 4 new regressions:
FAIL: gcc.c-torture/execute/20011219-1.c compilation, -O1
UNRESOLVED: gcc.c-torture/execute/20011219-1.c execution, -O1
FAIL: gcc.c-torture/execute/20011219-1.c compilation, -O2
UNRESOLVED: gcc.c-torture/execute/20011219-1.c execution, -O2
FAIL: gcc.c-torture/execute/20011219-1.c compilation, -O3 -g
UNRESOLVED: gcc.c-torture/execute/20011219-1.c execution, -O3 -g
FAIL: gcc.c-torture/execute/20011219-1.c compilation, -Os
UNRESOLVED: gcc.c-torture/execute/20011219-1.c execution, -Os
Executing on host: /home/packages/gcc/3.3/gcc-3.3-3.3.3ds3/build/gcc/xgcc -B/hom
e/packages/gcc/3.3/gcc-3.3-3.3.3ds3/build/gcc/ /home/packages/gcc/3.3/gcc-3.3-3.
3.3ds3/src/gcc/testsuite/gcc.c-torture/execute/20011219-1.c -w -O0 -lm -o
/home/packages/gcc/3.3/gcc-3.3-3.3.3ds3/build/gcc/testsuite/20011219-1.x0 (ti
meout = 450)
PASS: gcc.c-torture/execute/20011219-1.c compilation, -O0
PASS: gcc.c-torture/execute/20011219-1.c execution, -O0
Executing on host: /home/packages/gcc/3.3/gcc-3.3-3.3.3ds3/build/gcc/xgcc -B/hom
e/packages/gcc/3.3/gcc-3.3-3.3.3ds3/build/gcc/ /home/packages/gcc/3.3/gcc-3.3-3.
3.3ds3/src/gcc/testsuite/gcc.c-torture/execute/20011219-1.c -w -O1 -lm -o
/home/packages/gcc/3.3/gcc-3.3-3.3.3ds3/build/gcc/testsuite/20011219-1.x1 (ti
meout = 450)
/tmp/ccahubmm.o(.rodata+0xc): undefined reference to `.L7'
collect2: ld returned 1 exit status
compiler exited with status 1
output is:
/tmp/ccahubmm.o(.rodata+0xc): undefined reference to `.L7'
collect2: ld returned 1 exit status
FAIL: gcc.c-torture/execute/20011219-1.c compilation, -O1
UNRESOLVED: gcc.c-torture/execute/20011219-1.c execution, -O1