re PR middle-end/63743 (Thumb1: big regression for float operators by r216728)
2015-03-09 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ PR tree-optimization/63743 * cfgexpand.c (reorder_operands): Also reorder if only second operand had its definition forwarded by TER. gcc/testsuite/ PR tree-optimization/63743 * gcc.dg/pr63743.c: New test. From-SVN: r221276
This commit is contained in:
parent
609570b49e
commit
68ca4ac90b
4 changed files with 24 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
|||
2015-03-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||||
|
||||
PR tree-optimization/63743
|
||||
* cfgexpand.c (reorder_operands): Also reorder if only second operand
|
||||
had its definition forwarded by TER.
|
||||
|
||||
2015-03-08 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
PR lto/65316
|
||||
|
|
|
@ -5124,13 +5124,11 @@ reorder_operands (basic_block bb)
|
|||
continue;
|
||||
/* Swap operands if the second one is more expensive. */
|
||||
def0 = get_gimple_for_ssa_name (op0);
|
||||
if (!def0)
|
||||
continue;
|
||||
def1 = get_gimple_for_ssa_name (op1);
|
||||
if (!def1)
|
||||
continue;
|
||||
swap = false;
|
||||
if (lattice[gimple_uid (def1)] > lattice[gimple_uid (def0)])
|
||||
if (!def0 || lattice[gimple_uid (def1)] > lattice[gimple_uid (def0)])
|
||||
swap = true;
|
||||
if (swap)
|
||||
{
|
||||
|
@ -5139,7 +5137,7 @@ reorder_operands (basic_block bb)
|
|||
fprintf (dump_file, "Swap operands in stmt:\n");
|
||||
print_gimple_stmt (dump_file, stmt, 0, TDF_SLIM);
|
||||
fprintf (dump_file, "Cost left opnd=%d, right opnd=%d\n",
|
||||
lattice[gimple_uid (def0)],
|
||||
def0 ? lattice[gimple_uid (def0)] : 0,
|
||||
lattice[gimple_uid (def1)]);
|
||||
}
|
||||
swap_ssa_operands (stmt, gimple_assign_rhs1_ptr (stmt),
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2015-03-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||||
|
||||
PR tree-optimization/63743
|
||||
* gcc.dg/pr63743.c: New test.
|
||||
|
||||
2015-03-08 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
PR lto/65316
|
||||
|
|
11
gcc/testsuite/gcc.dg/pr63743.c
Normal file
11
gcc/testsuite/gcc.dg/pr63743.c
Normal file
|
@ -0,0 +1,11 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O1 -fdump-rtl-expand-details" } */
|
||||
|
||||
double
|
||||
libcall_dep (double x, double y)
|
||||
{
|
||||
return x * (x + y);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-rtl-dump-times "Swap operands" 1 "expand" } } */
|
||||
/* { dg-final { cleanup-rtl-dump "expand" } } */
|
Loading…
Add table
Reference in a new issue