From 546513775069e93d5f33f7aae5f1cb26c77ca2c9 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Wed, 30 Aug 2017 11:12:14 +0000 Subject: [28/77] Use is_a for miscellaneous types of test This patch adds is_a checks to various places that were explicitly or implicitly restricted to integers already, in cases where adding an explicit is_a is useful for later patches. In simplify_if_then_else, the: GET_MODE (XEXP (XEXP (t, 0), N)) expressions were equivalent to: GET_MODE (XEXP (t, 0)) due to the type of operation. 2017-08-30 Richard Sandiford Alan Hayward David Sherwood gcc/ * combine.c (sign_extend_short_imm): Add is_a checks. (try_combine): Likewise. (simplify_if_then_else): Likewise. * cse.c (cse_insn): Likewise. * dwarf2out.c (mem_loc_descriptor): Likewise. * emit-rtl.c (gen_lowpart_common): Likewise. * simplify-rtx.c (simplify_truncation): Likewise. (simplify_binary_operation_1): Likewise. (simplify_const_relational_operation): Likewise. (simplify_ternary_operation): Likewise. * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise. Co-Authored-By: Alan Hayward Co-Authored-By: David Sherwood From-SVN: r251480 --- gcc/tree-ssa-loop-ivopts.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gcc/tree-ssa-loop-ivopts.c') diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c index b65cd96..008df2e 100644 --- a/gcc/tree-ssa-loop-ivopts.c +++ b/gcc/tree-ssa-loop-ivopts.c @@ -4011,6 +4011,7 @@ force_expr_to_var_cost (tree expr, bool speed) tree op0, op1; comp_cost cost0, cost1, cost; machine_mode mode; + scalar_int_mode int_mode; if (!costs_initialized) { @@ -4133,8 +4134,9 @@ force_expr_to_var_cost (tree expr, bool speed) mult = op0; if (mult != NULL_TREE + && is_a (mode, &int_mode) && cst_and_fits_in_hwi (TREE_OPERAND (mult, 1)) - && get_shiftadd_cost (expr, mode, cost0, cost1, mult, + && get_shiftadd_cost (expr, int_mode, cost0, cost1, mult, speed, &sa_cost)) return sa_cost; } -- cgit v1.1