Patchwork bootstrap/49914

login
register
mail settings
Submitter Paolo Carlini
Date Aug. 1, 2011, 11:35 p.m.
Message ID <4E37384B.9010207@oracle.com>
Download mbox | patch
Permalink /patch/107830/
State New
Headers show

Comments

Paolo Carlini - Aug. 1, 2011, 11:35 p.m.
... oops, due to a missing space I missed an occurrence of abs in 
gimple_expand_builtin_pow. I'm restarting bootstrap and test with the below.

Paolo.

///////////////////
Richard Guenther - Aug. 2, 2011, 8:45 a.m.
On Tue, 2 Aug 2011, Paolo Carlini wrote:

> ... oops, due to a missing space I missed an occurrence of abs in
> gimple_expand_builtin_pow. I'm restarting bootstrap and test with the below.

Ok once abs_hwi materialized.

Thanks,
Richard.
Paolo Carlini - Aug. 2, 2011, 8:54 a.m.
Hi,

> Ok once abs_hwi materialized.

Thanks Richard. 'Unfortunately' it materialized already, in the sense that I wanted to see progress on this issue (also for the sake of a library issue) and took care of committing the patch adding abs_hwi as-is, being already approved by Rth, sorry. Do you want me to tweak it to remove the assert and return the minimum instead, as you suggested in the audit trail? I can do it in a few hours.

Thanks,
Paolo
Richard Guenther - Aug. 2, 2011, 8:57 a.m.
On Tue, 2 Aug 2011, Paolo Carlini wrote:

> Hi,
> 
> > Ok once abs_hwi materialized.
> 
> Thanks Richard. 'Unfortunately' it materialized already, in the sense that I wanted to see progress on this issue (also for the sake of a library issue) and took care of committing the patch adding abs_hwi as-is, being already approved by Rth, sorry. Do you want me to tweak it to remove the assert and return the minimum instead, as you suggested in the audit trail? I can do it in a few hours.

Well, I was really waiting on a followup from rth or somebody else.
I guess rths approval and my comments crossed.

I don't care either way - I suppose the approver or the original
submitter will have to deal with eventual fallout.  It's just that
I didn't want to be connected to that ;)

Richard.

Patch

Index: fold-const.c
===================================================================
--- fold-const.c	(revision 177075)
+++ fold-const.c	(working copy)
@@ -7037,8 +7037,7 @@  fold_plusminus_mult_expr (location_t loc, enum tre
       int11 = TREE_INT_CST_LOW (arg11);
 
       /* Move min of absolute values to int11.  */
-      if ((int01 >= 0 ? int01 : -int01)
-	  < (int11 >= 0 ? int11 : -int11))
+      if (abs_hwi (int01) < abs_hwi (int11))
         {
 	  tmp = int01, int01 = int11, int11 = tmp;
 	  alt0 = arg00, arg00 = arg10, arg10 = alt0;
@@ -7048,7 +7047,7 @@  fold_plusminus_mult_expr (location_t loc, enum tre
       else
 	maybe_same = arg11;
 
-      if (exact_log2 (abs (int11)) > 0 && int01 % int11 == 0
+      if (exact_log2 (abs_hwi (int11)) > 0 && int01 % int11 == 0
 	  /* The remainder should not be a constant, otherwise we
 	     end up folding i * 4 + 2 to (i * 2 + 1) * 2 which has
 	     increased the number of multiplications necessary.  */
Index: tree-ssa-math-opts.c
===================================================================
--- tree-ssa-math-opts.c	(revision 177075)
+++ tree-ssa-math-opts.c	(working copy)
@@ -1231,9 +1231,10 @@  gimple_expand_builtin_pow (gimple_stmt_iterator *g
       /* Attempt to fold powi(arg0, abs(n/2)) into multiplies.  If not
          possible or profitable, give up.  Skip the degenerate case when
          n is 1 or -1, where the result is always 1.  */
-      if (abs (n) != 1)
+      if (abs_hwi (n) != 1)
 	{
-	  powi_x_ndiv2 = gimple_expand_builtin_powi (gsi, loc, arg0, abs(n/2));
+	  powi_x_ndiv2 = gimple_expand_builtin_powi (gsi, loc, arg0,
+						     abs_hwi (n / 2));
 	  if (!powi_x_ndiv2)
 	    return NULL_TREE;
 	}
@@ -1242,7 +1243,7 @@  gimple_expand_builtin_pow (gimple_stmt_iterator *g
 	 result of the optimal multiply sequence just calculated.  */
       sqrt_arg0 = build_and_insert_call (gsi, loc, &target, sqrtfn, arg0);
 
-      if (abs (n) == 1)
+      if (abs_hwi (n) == 1)
 	result = sqrt_arg0;
       else
 	result = build_and_insert_binop (gsi, loc, target, MULT_EXPR,
@@ -1284,10 +1285,10 @@  gimple_expand_builtin_pow (gimple_stmt_iterator *g
       /* Attempt to fold powi(arg0, abs(n/3)) into multiplies.  If not
          possible or profitable, give up.  Skip the degenerate case when
          abs(n) < 3, where the result is always 1.  */
-      if (abs (n) >= 3)
+      if (abs_hwi (n) >= 3)
 	{
 	  powi_x_ndiv3 = gimple_expand_builtin_powi (gsi, loc, arg0,
-						     abs (n / 3));
+						     abs_hwi (n / 3));
 	  if (!powi_x_ndiv3)
 	    return NULL_TREE;
 	}
@@ -1297,14 +1298,14 @@  gimple_expand_builtin_pow (gimple_stmt_iterator *g
          either cbrt(x) or cbrt(x) * cbrt(x).  */
       cbrt_x = build_and_insert_call (gsi, loc, &target, cbrtfn, arg0);
 
-      if (abs (n) % 3 == 1)
+      if (abs_hwi (n) % 3 == 1)
 	powi_cbrt_x = cbrt_x;
       else
 	powi_cbrt_x = build_and_insert_binop (gsi, loc, target, MULT_EXPR,
 					      cbrt_x, cbrt_x);
 
       /* Multiply the two subexpressions, unless powi(x,abs(n)/3) = 1.  */
-      if (abs (n) < 3)
+      if (abs_hwi (n) < 3)
 	result = powi_cbrt_x;
       else
 	result = build_and_insert_binop (gsi, loc, target, MULT_EXPR,
Index: tree-ssa-loop-prefetch.c
===================================================================
--- tree-ssa-loop-prefetch.c	(revision 177075)
+++ tree-ssa-loop-prefetch.c	(working copy)
@@ -1,5 +1,6 @@ 
 /* Array prefetching.
-   Copyright (C) 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2008, 2009, 2010, 2011
+   Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -794,7 +795,7 @@  prune_ref_by_group_reuse (struct mem_ref *ref, str
       prefetch_before = (hit_from - delta_r + step - 1) / step;
 
       /* Do not reduce prefetch_before if we meet beyond cache size.  */
-      if (prefetch_before > (unsigned) abs (L2_CACHE_SIZE_BYTES / step))
+      if (prefetch_before > (unsigned) abs_hwi (L2_CACHE_SIZE_BYTES / step))
         prefetch_before = PREFETCH_ALL;
       if (prefetch_before < ref->prefetch_before)
 	ref->prefetch_before = prefetch_before;