re PR tree-optimization/18589 (could optimize FP multiplies better)
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Thu, 12 Apr 2012 16:15:13 +0000 (16:15 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Thu, 12 Apr 2012 16:15:13 +0000 (16:15 +0000)
commita6f8851e3efa0157bf28631e2d296430b4dbc472
tree46ca9b251c6bcce042ae014fc4bbc5136990a8d8
parent452aa9c5105180110e7e80aa74044426ca8271cf
re PR tree-optimization/18589 (could optimize FP multiplies better)

gcc:

2012-04-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/18589
* tree-ssa-reassoc.c (reassociate_stats): Add two fields.
(operand_entry): Add count field.
(add_repeat_to_ops_vec): New function.
(completely_remove_stmt): Likewise.
(remove_def_if_absorbed_call): Likewise.
(remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
(acceptable_pow_call): New function.
(linearize_expr_tree): Look for builtin pow/powi calls and add operand
entries with repeat counts when found.
(repeat_factor_d): New struct and associated typedefs.
(repeat_factor_vec): New static vector variable.
(compare_repeat_factors): New function.
(get_reassoc_pow_ssa_name): Likewise.
(attempt_builtin_powi): Likewise.
(reassociate_bb): Call attempt_builtin_powi.
(fini_reassoc): Two new calls to statistics_counter_event.

gcc/testsuite:

2012-04-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/18589
* gcc.dg/tree-ssa/pr18589-1.c: New test.
* gcc.dg/tree-ssa/pr18589-2.c: Likewise.
* gcc.dg/tree-ssa/pr18589-3.c: Likewise.
* gcc.dg/tree-ssa/pr18589-4.c: Likewise.
* gcc.dg/tree-ssa/pr18589-5.c: Likewise.
* gcc.dg/tree-ssa/pr18589-6.c: Likewise.
* gcc.dg/tree-ssa/pr18589-7.c: Likewise.
* gcc.dg/tree-ssa/pr18589-8.c: Likewise.
* gcc.dg/tree-ssa/pr18589-9.c: Likewise.
* gcc.dg/tree-ssa/pr18589-10.c: Likewise.

From-SVN: r186384
13 files changed:
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/pr18589-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr18589-10.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr18589-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr18589-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr18589-4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr18589-5.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr18589-6.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr18589-7.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr18589-8.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr18589-9.c [new file with mode: 0644]
gcc/tree-ssa-reassoc.c