diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2005-03-06 17:23:03 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2005-03-06 17:23:03 +0000 |
commit | e9da788c505b9077a18ead1bb76372180e3d38d4 (patch) | |
tree | aa7034910386e6fc4d8ead4b1c753bf91a4359c1 | |
parent | e1f04615c73d8f1f1e38c4cb2dbbb1d5e0d381a2 (diff) | |
download | gcc-e9da788c505b9077a18ead1bb76372180e3d38d4.zip gcc-e9da788c505b9077a18ead1bb76372180e3d38d4.tar.gz gcc-e9da788c505b9077a18ead1bb76372180e3d38d4.tar.bz2 |
fold-const.c (fold_binary_op_with_conditional_arg): Take decomposed arguments code, type, op0, and op1 instead of t.
* fold-const.c (fold_binary_op_with_conditional_arg): Take
decomposed arguments code, type, op0, and op1 instead of t.
(fold_binary): Update a call to fold_range_test.
From-SVN: r95978
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/fold-const.c | 21 |
2 files changed, 15 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2a1da3c9..c570131 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -14,6 +14,10 @@ code, type, op0, and op1 instead of t. (fold_binary): Update a call to fold_range_test. + * fold-const.c (fold_binary_op_with_conditional_arg): Take + decomposed arguments code, type, op0, and op1 instead of t. + (fold_binary): Update a call to fold_range_test. + 2005-03-06 Kazu Hirata <kazu@cs.umass.edu> * fold-const.c (fold_binary): Avoid directly using the original diff --git a/gcc/fold-const.c b/gcc/fold-const.c index a82dbe3..d7d2358 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -121,7 +121,8 @@ static tree optimize_minmax_comparison (enum tree_code, tree, tree, tree); static tree extract_muldiv (tree, tree, enum tree_code, tree); static tree extract_muldiv_1 (tree, tree, enum tree_code, tree); static int multiple_of_p (tree, tree, tree); -static tree fold_binary_op_with_conditional_arg (tree, enum tree_code, +static tree fold_binary_op_with_conditional_arg (enum tree_code, tree, + tree, tree, tree, tree, int); static bool fold_real_zero_addition_p (tree, tree, int); static tree fold_mathfn_compare (enum built_in_function, enum tree_code, @@ -5453,14 +5454,12 @@ extract_array_ref (tree expr, tree *base, tree *offset) possible. */ static tree -fold_binary_op_with_conditional_arg (tree t, enum tree_code code, tree cond, - tree arg, int cond_first_p) +fold_binary_op_with_conditional_arg (enum tree_code code, + tree type, tree op0, tree op1, + tree cond, tree arg, int cond_first_p) { - const tree type = TREE_TYPE (t); - tree cond_type = cond_first_p ? TREE_TYPE (TREE_OPERAND (t, 0)) - : TREE_TYPE (TREE_OPERAND (t, 1)); - tree arg_type = cond_first_p ? TREE_TYPE (TREE_OPERAND (t, 1)) - : TREE_TYPE (TREE_OPERAND (t, 0)); + tree cond_type = cond_first_p ? TREE_TYPE (op0) : TREE_TYPE (op1); + tree arg_type = cond_first_p ? TREE_TYPE (op0) : TREE_TYPE (op1); tree test, true_value, false_value; tree lhs = NULL_TREE; tree rhs = NULL_TREE; @@ -7159,7 +7158,8 @@ fold_binary (tree expr) if (TREE_CODE (arg0) == COND_EXPR || COMPARISON_CLASS_P (arg0)) { - tem = fold_binary_op_with_conditional_arg (t, code, arg0, arg1, + tem = fold_binary_op_with_conditional_arg (code, type, op0, op1, + arg0, arg1, /*cond_first_p=*/1); if (tem != NULL_TREE) return tem; @@ -7167,7 +7167,8 @@ fold_binary (tree expr) if (TREE_CODE (arg1) == COND_EXPR || COMPARISON_CLASS_P (arg1)) { - tem = fold_binary_op_with_conditional_arg (t, code, arg1, arg0, + tem = fold_binary_op_with_conditional_arg (code, type, op0, op1, + arg1, arg0, /*cond_first_p=*/0); if (tem != NULL_TREE) return tem; |