re PR tree-optimization/53081 (memcpy/memset loop recognition)
authorRichard Guenther <rguenther@suse.de>
Wed, 6 Jun 2012 09:45:27 +0000 (09:45 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 6 Jun 2012 09:45:27 +0000 (09:45 +0000)
commitd0582dc1815c0fb684b97dc88f3a3152d5f517f7
tree9f8f31aa67b331c5ef8513c22367a259275a267c
parent4ad4fa63349426505aecfea69a8e54aae3f88870
re PR tree-optimization/53081 (memcpy/memset loop recognition)

2012-06-06  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/53081
* tree-data-ref.h (adjacent_store_dr_p): Rename to ...
(adjacent_dr_p): ... this and make it work for reads, too.
* tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMCPY.
(struct partition_s): Change main_stmt to main_dr, add
secondary_dr member.
(build_size_arg_loc): Change to date data-reference and not
gimplify here.
(build_addr_arg_loc): New function split out from ...
(generate_memset_builtin): ... here.  Use it and simplify.
(generate_memcpy_builtin): New function.
(generate_code_for_partition): Adjust.
(classify_partition): Streamline pattern detection.  Detect
memcpy.
(ldist_gen): Adjust.
(tree_loop_distribution): Adjust seed statements for memcpy
recognition.

* gcc.dg/tree-ssa/ldist-20.c: New testcase.
* gcc.dg/tree-ssa/loop-19.c: Add -fno-tree-loop-distribute-patterns.

From-SVN: r188261
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/ldist-20.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/loop-19.c
gcc/tree-data-ref.h
gcc/tree-loop-distribution.c