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]

Re: more ia32 bugs (unrolling)


On Mon, Jun 28, 1999 at 10:53:27PM +0200, Toon Moene wrote:
> Yep, it's probably an uninitialised NOTE_LINE_NUMBER, so its value could
> be anything ...

Actually, it wasn't uninitialized, it was clobbered.  By a
pointer, so it's value was guaranteed large.  ;-)

Just a little buglet in the earlier patch in this thread.


r~


1999-06-08  Richard Henderson  <rth@cygnus.com>

        * loop.c (loop_emit_jump_insn_before): Return the jump insn.
        (loop_emit_jump_insn_after): Likewise.
        (check_dbra_loop): Correct last change to use the return value.

Index: loop.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/loop.c,v
retrieving revision 1.165.2.4
diff -c -p -d -r1.165.2.4 loop.c
*** loop.c	1999/06/27 03:25:56	1.165.2.4
--- loop.c	1999/06/28 21:12:54
*************** check_dbra_loop (loop_end, insn_count, l
*** 8397,8403 ****
  				       XEXP (jump_label, 0));
  	      tem = gen_sequence ();
  	      end_sequence ();
! 	      loop_emit_jump_insn_before (tem, loop_end, XEXP (jump_label, 0));
  
  	      if (nonneg)
  		{
--- 8397,8404 ----
  				       XEXP (jump_label, 0));
  	      tem = gen_sequence ();
  	      end_sequence ();
! 	      tem = loop_emit_jump_insn_before (tem, loop_end,
! 						XEXP (jump_label, 0));
  
  	      if (nonneg)
  		{
*************** replace_label (x, data)
*** 10560,10566 ****
  }
  
  /* Like emit_jump_insn_before, except initialize the jump insn's
!    JUMP_LABEL to LABEL.  */
  
  static rtx
  loop_emit_jump_insn_before (insn, before, label)
--- 10561,10567 ----
  }
  
  /* Like emit_jump_insn_before, except initialize the jump insn's
!    JUMP_LABEL to LABEL.  Return the jump instruction.  */
  
  static rtx
  loop_emit_jump_insn_before (insn, before, label)
*************** loop_emit_jump_insn_before (insn, before
*** 10573,10585 ****
      if (GET_CODE (p) == JUMP_INSN)
        {
  	JUMP_LABEL (p) = label;
! 	return ret;
        }
    abort ();
  }
  
  /* Like emit_jump_insn_after, except initialize the jump insn's
!    JUMP_LABEL to LABEL.  */
  
  static rtx
  loop_emit_jump_insn_after (insn, after, label)
--- 10574,10586 ----
      if (GET_CODE (p) == JUMP_INSN)
        {
  	JUMP_LABEL (p) = label;
! 	return p;
        }
    abort ();
  }
  
  /* Like emit_jump_insn_after, except initialize the jump insn's
!    JUMP_LABEL to LABEL.  Return the jump instruction.  */
  
  static rtx
  loop_emit_jump_insn_after (insn, after, label)
*************** loop_emit_jump_insn_after (insn, after, 
*** 10592,10598 ****
      if (GET_CODE (p) == JUMP_INSN)
        {
  	JUMP_LABEL (p) = label;
! 	return ret;
        }
    abort ();
  }
--- 10593,10599 ----
      if (GET_CODE (p) == JUMP_INSN)
        {
  	JUMP_LABEL (p) = label;
! 	return p;
        }
    abort ();
  }


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