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]

[PATCH] Bootstrap failure on ia64 (take 2)


The following patch implements Jakub's suggestion of tweaking the
mode rather than handling CONST_INT specially in my earlier patch:
http://gcc.gnu.org/ml/gcc-patches/2003-05/msg01674.html

The following patch has been tested on i686-pc-linux-gnu with a
full bootstrap, all languages except treelang (including ada), and
regression checked with a top-level "make -k check" with no new
failures.

Once again, I believe this patch should fix both the current ia64
bootstrap failures and the powerpc testsuite regressions.

Ok for mainline?

Very many thanks in advance for a speedy review.


2003-05-21  Roger Sayle  <roger@eyesopen.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* builtins.c (expand_builtin_memcpy):  Be careful to avoid
	calling simplify_gen_binary with constant arguments.


Index: builtins.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/builtins.c,v
retrieving revision 1.202
diff -c -3 -p -r1.202 builtins.c
*** builtins.c	18 May 2003 22:50:25 -0000	1.202
--- builtins.c	21 May 2003 02:43:41 -0000
*************** expand_builtin_memcpy (arglist, target,
*** 2311,2324 ****
  #endif
  	  if (endp)
  	    {
! 	      rtx result;
! 	      rtx delta = len_rtx;

  	      if (endp == 2)
! 		delta = GEN_INT (INTVAL (delta) - 1);

  	      result = simplify_gen_binary (PLUS, GET_MODE (dest_mem),
! 					    dest_mem, delta);
  	      return force_operand (result, NULL_RTX);
  	    }
  	  else
--- 2311,2323 ----
  #endif
  	  if (endp)
  	    {
! 	      rtx result = len_rtx;

  	      if (endp == 2)
! 		result = GEN_INT (INTVAL (result) - 1);

  	      result = simplify_gen_binary (PLUS, GET_MODE (dest_mem),
! 					    dest_mem, result);
  	      return force_operand (result, NULL_RTX);
  	    }
  	  else
*************** expand_builtin_memcpy (arglist, target,
*** 2347,2354 ****

  	  if (endp == 2)
  	    {
! 	      result = simplify_gen_binary (MINUS, GET_MODE (result),
! 					    result, const1_rtx);
  	      result = force_operand (result, NULL_RTX);
  	    }

--- 2346,2355 ----

  	  if (endp == 2)
  	    {
! 	      enum machine_mode mode = GET_MODE (result);
! 	      if (mode == VOIDmode)
! 		mode = Pmode;
! 	      result = simplify_gen_binary (MINUS, mode, result, const1_rtx);
  	      result = force_operand (result, NULL_RTX);
  	    }


Roger
--
Roger Sayle,                         E-mail: roger@eyesopen.com
OpenEye Scientific Software,         WWW: http://www.eyesopen.com/
Suite 1107, 3600 Cerrillos Road,     Tel: (+1) 505-473-7385
Santa Fe, New Mexico, 87507.         Fax: (+1) 505-473-0833


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