Patchwork couple of cosmetic fixes in tree-vrp.c

login
register
mail settings
Submitter Eric Botcazou
Date Jan. 5, 2012, 8:41 p.m.
Message ID <201201052141.34817.ebotcazou@adacore.com>
Download mbox | patch
Permalink /patch/134548/
State New
Headers show

Comments

Eric Botcazou - Jan. 5, 2012, 8:41 p.m.
This removes a duplicated

  if (code == RSHIFT_EXPR)

condition in extract_range_from_binary_expr_1 and avoids useless computations 
in extract_range_from_unary_expr_1.  No functional changes.

Tested on i586-suse-linux, applied on the mainline as obvious.


2012-01-05  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
	condition.
	(extract_range_from_unary_expr_1): Avoid useless computations.

Patch

Index: tree-vrp.c
===================================================================
--- tree-vrp.c	(revision 182780)
+++ tree-vrp.c	(working copy)
@@ -2579,17 +2579,13 @@  extract_range_from_binary_expr_1 (value_
 	 behavior from the shift operation.  We cannot even trust
 	 SHIFT_COUNT_TRUNCATED at this stage, because that applies to rtl
 	 shifts, and the operation at the tree level may be widened.  */
-      if (code == RSHIFT_EXPR)
+      if (vr1.type != VR_RANGE
+	  || !value_range_nonnegative_p (&vr1)
+	  || TREE_CODE (vr1.max) != INTEGER_CST
+	  || compare_tree_int (vr1.max, TYPE_PRECISION (expr_type) - 1) == 1)
 	{
-	  if (vr1.type != VR_RANGE
-	      || !value_range_nonnegative_p (&vr1)
-	      || TREE_CODE (vr1.max) != INTEGER_CST
-	      || compare_tree_int (vr1.max,
-				   TYPE_PRECISION (expr_type) - 1) == 1)
-	    {
-	      set_value_range_to_varying (vr);
-	      return;
-	    }
+	  set_value_range_to_varying (vr);
+	  return;
 	}
 
       extract_range_from_multiplicative_op_1 (vr, code, &vr0, &vr1);
@@ -2990,16 +2986,18 @@  extract_range_from_unary_expr_1 (value_r
 		         size_int (TYPE_PRECISION (outer_type)))))))
 	{
 	  tree new_min, new_max;
-	  new_min = force_fit_type_double (outer_type,
-					   tree_to_double_int (vr0.min),
-					   0, false);
-	  new_max = force_fit_type_double (outer_type,
-					   tree_to_double_int (vr0.max),
-					   0, false);
 	  if (is_overflow_infinity (vr0.min))
 	    new_min = negative_overflow_infinity (outer_type);
+	  else
+	    new_min = force_fit_type_double (outer_type,
+					     tree_to_double_int (vr0.min),
+					     0, false);
 	  if (is_overflow_infinity (vr0.max))
 	    new_max = positive_overflow_infinity (outer_type);
+	  else
+	    new_max = force_fit_type_double (outer_type,
+					     tree_to_double_int (vr0.max),
+					     0, false);
 	  set_and_canonicalize_value_range (vr, vr0.type,
 					    new_min, new_max, NULL);
 	  return;