diff options
author | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-06 17:23:03 +0000 |
---|---|---|
committer | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-06 17:23:03 +0000 |
commit | 1ebe9a83e2dc4bd8fc436ccc8fc46e60080f674e (patch) | |
tree | aa7034910386e6fc4d8ead4b1c753bf91a4359c1 /gcc | |
parent | 2c17ebb2ec190b62e2efc50d2a1de9f5f3cafcee (diff) | |
download | gcc-1ebe9a83e2dc4bd8fc436ccc8fc46e60080f674e.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95978 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-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 2a1da3c9af5..c5701315207 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 a82dbe381f7..d7d23582599 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; |