Commit 38e19e4c by Diego Novillo Committed by Diego Novillo

tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR when the result overflows.


	* tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
	when the result overflows.

From-SVN: r100983
parent 352364de
2005-06-15 Diego Novillo <dnovillo@redhat.com>
* tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
when the result overflows.
2005-06-15 David Ung <davidu@mips.com> 2005-06-15 David Ung <davidu@mips.com>
* config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp, * config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
......
...@@ -996,9 +996,15 @@ vrp_int_const_binop (enum tree_code code, tree val1, tree val2) ...@@ -996,9 +996,15 @@ vrp_int_const_binop (enum tree_code code, tree val1, tree val2)
int sgn1 = tree_int_cst_sgn (val1); int sgn1 = tree_int_cst_sgn (val1);
int sgn2 = tree_int_cst_sgn (val2); int sgn2 = tree_int_cst_sgn (val2);
/* Notice that we only need to handle the restricted set of /* Determine whether VAL1 CODE VAL2 yields a growing value.
operations handled by extract_range_from_binary_expr. */ Notice that we only need to handle the restricted set of
if (((code == PLUS_EXPR || code == MAX_EXPR) && sgn2 >= 0) operations handled by extract_range_from_binary_expr:
VAL1 + VAL2 grows if VAL2 is >= 0.
VAL1 * VAL2 grows if both VAL1 and VAL2 have the same sign.
VAL1 - VAL2 grows if VAL2 is < 0 (because it becomes an addition).
*/
if ((code == PLUS_EXPR && sgn2 >= 0)
|| (code == MULT_EXPR && sgn1 == sgn2) || (code == MULT_EXPR && sgn1 == sgn2)
|| (code == MINUS_EXPR && sgn2 < 0)) || (code == MINUS_EXPR && sgn2 < 0))
grows = true; grows = true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment