stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
2005-02-18 James A. Morrison <phython@gcc.gnu.org> * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert. (estimate_case_costs): Don't call convert. * expmed.c (expand_shift): Likewise. (make_tree): Call fold_convert instead of convert. From-SVN: r95224
This commit is contained in:
parent
87bd0274cc
commit
aeba6c285a
@ -1,3 +1,10 @@
|
||||
2005-02-18 James A. Morrison <phython@gcc.gnu.org>
|
||||
|
||||
* stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
|
||||
(estimate_case_costs): Don't call convert.
|
||||
* expmed.c (expand_shift): Likewise.
|
||||
(make_tree): Call fold_convert instead of convert.
|
||||
|
||||
2005-02-18 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/19813
|
||||
|
35
gcc/expmed.c
35
gcc/expmed.c
@ -2231,9 +2231,8 @@ expand_shift (enum tree_code code, enum machine_mode mode, rtx shifted,
|
||||
tree type = TREE_TYPE (amount);
|
||||
tree new_amount = make_tree (type, op1);
|
||||
tree other_amount
|
||||
= fold (build2 (MINUS_EXPR, type, convert
|
||||
(type, build_int_cst
|
||||
(NULL_TREE, GET_MODE_BITSIZE (mode))),
|
||||
= fold (build2 (MINUS_EXPR, type,
|
||||
build_int_cst (type, GET_MODE_BITSIZE (mode)),
|
||||
amount));
|
||||
|
||||
shifted = force_reg (mode, shifted);
|
||||
@ -4871,17 +4870,15 @@ make_tree (tree type, rtx x)
|
||||
|
||||
case LSHIFTRT:
|
||||
t = lang_hooks.types.unsigned_type (type);
|
||||
return fold (convert (type,
|
||||
build2 (RSHIFT_EXPR, t,
|
||||
make_tree (t, XEXP (x, 0)),
|
||||
make_tree (type, XEXP (x, 1)))));
|
||||
return fold_convert (type, build2 (RSHIFT_EXPR, t,
|
||||
make_tree (t, XEXP (x, 0)),
|
||||
make_tree (type, XEXP (x, 1))));
|
||||
|
||||
case ASHIFTRT:
|
||||
t = lang_hooks.types.signed_type (type);
|
||||
return fold (convert (type,
|
||||
build2 (RSHIFT_EXPR, t,
|
||||
make_tree (t, XEXP (x, 0)),
|
||||
make_tree (type, XEXP (x, 1)))));
|
||||
return fold_convert (type, build2 (RSHIFT_EXPR, t,
|
||||
make_tree (t, XEXP (x, 0)),
|
||||
make_tree (type, XEXP (x, 1))));
|
||||
|
||||
case DIV:
|
||||
if (TREE_CODE (type) != REAL_TYPE)
|
||||
@ -4889,22 +4886,20 @@ make_tree (tree type, rtx x)
|
||||
else
|
||||
t = type;
|
||||
|
||||
return fold (convert (type,
|
||||
build2 (TRUNC_DIV_EXPR, t,
|
||||
make_tree (t, XEXP (x, 0)),
|
||||
make_tree (t, XEXP (x, 1)))));
|
||||
return fold_convert (type, build2 (TRUNC_DIV_EXPR, t,
|
||||
make_tree (t, XEXP (x, 0)),
|
||||
make_tree (t, XEXP (x, 1))));
|
||||
case UDIV:
|
||||
t = lang_hooks.types.unsigned_type (type);
|
||||
return fold (convert (type,
|
||||
build2 (TRUNC_DIV_EXPR, t,
|
||||
make_tree (t, XEXP (x, 0)),
|
||||
make_tree (t, XEXP (x, 1)))));
|
||||
return fold_convert (type, build2 (TRUNC_DIV_EXPR, t,
|
||||
make_tree (t, XEXP (x, 0)),
|
||||
make_tree (t, XEXP (x, 1))));
|
||||
|
||||
case SIGN_EXTEND:
|
||||
case ZERO_EXTEND:
|
||||
t = lang_hooks.types.type_for_mode (GET_MODE (XEXP (x, 0)),
|
||||
GET_CODE (x) == ZERO_EXTEND);
|
||||
return fold (convert (type, make_tree (t, XEXP (x, 0))));
|
||||
return fold_convert (type, make_tree (t, XEXP (x, 0)));
|
||||
|
||||
default:
|
||||
t = build_decl (VAR_DECL, NULL_TREE, type);
|
||||
|
@ -2239,8 +2239,8 @@ emit_case_bit_tests (tree index_type, tree index_expr, tree minval,
|
||||
qsort (test, count, sizeof(*test), case_bit_test_cmp);
|
||||
|
||||
index_expr = fold (build2 (MINUS_EXPR, index_type,
|
||||
convert (index_type, index_expr),
|
||||
convert (index_type, minval)));
|
||||
fold_convert (index_type, index_expr),
|
||||
fold_convert (index_type, minval)));
|
||||
index = expand_expr (index_expr, NULL_RTX, VOIDmode, 0);
|
||||
do_pending_stack_adjust ();
|
||||
|
||||
@ -2612,8 +2612,7 @@ static int
|
||||
estimate_case_costs (case_node_ptr node)
|
||||
{
|
||||
tree min_ascii = integer_minus_one_node;
|
||||
tree max_ascii = convert (TREE_TYPE (node->high),
|
||||
build_int_cst (NULL_TREE, 127));
|
||||
tree max_ascii = build_int_cst (TREE_TYPE (node->high), 127);
|
||||
case_node_ptr n;
|
||||
int i;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user