Commit 68162a97 by Ian Lance Taylor Committed by David Edelsohn

re PR target/25662 (Unrecognizable insn with -O on PPC)

2005-01-07  Ian Lance Taylor  <ian@airs.com>
            David Edelsohn  <edelsohn@gnu.org>

        PR rtl-optimization/25662
        * optabs.c (simplify_expand_binop): Use simplify_binary_operation
        for constant operands instead of simplify_gen_binary.
        * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
        after trying simplify_binary_operation

Co-Authored-By: David Edelsohn <edelsohn@gnu.org>

From-SVN: r109456
parent 8c7ffa93
2005-01-07 Ian Lance Taylor <ian@airs.com>
David Edelsohn <edelsohn@gnu.org>
PR rtl-optimization/25662
* optabs.c (simplify_expand_binop): Use simplify_binary_operation
for constant operands instead of simplify_gen_binary.
* simplify-rtx.c (simplify_gen_binary): Swap commutative operands
after trying simplify_binary_operation
2006-01-06 Daniel Berlin <dberlin@dberlin.org>
* tree.c (iterative_hash_expr): Hash decls based on UID.
......
......@@ -427,9 +427,14 @@ simplify_expand_binop (enum machine_mode mode, optab binoptab,
enum optab_methods methods)
{
if (CONSTANT_P (op0) && CONSTANT_P (op1))
return simplify_gen_binary (binoptab->code, mode, op0, op1);
else
return expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods);
{
rtx x = simplify_binary_operation (binoptab->code, mode, op0, op1);
if (x)
return x;
}
return expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods);
}
/* Like simplify_expand_binop, but always put the result in TARGET.
......
......@@ -114,16 +114,16 @@ simplify_gen_binary (enum rtx_code code, enum machine_mode mode, rtx op0,
{
rtx tem;
/* Put complex operands first and constants second if commutative. */
if (GET_RTX_CLASS (code) == RTX_COMM_ARITH
&& swap_commutative_operands_p (op0, op1))
tem = op0, op0 = op1, op1 = tem;
/* If this simplifies, do it. */
tem = simplify_binary_operation (code, mode, op0, op1);
if (tem)
return tem;
/* Put complex operands first and constants second if commutative. */
if (GET_RTX_CLASS (code) == RTX_COMM_ARITH
&& swap_commutative_operands_p (op0, op1))
tem = op0, op0 = op1, op1 = tem;
return gen_rtx_fmt_ee (code, mode, op0, op1);
}
......
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