This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 'fix' for 11350 causes bootstrap hang on Darwin


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]