On Tue, Jun 5, 2012 at 7:36 AM, Richard Guenther <rguent...@suse.de> wrote: > > This adds memcpy/memmove recognition to loop distribution (and > cleans it up some more). Issues are similar to memset and > not handled (and I just noticed we generate memset/memcpy even > with -fno-builtin ...). > > Bootstrapped on x86_64-unknown-linux-gnu, testing in progress. > > Richard. > > 2012-06-05 Richard Guenther <rguent...@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. >
This caused: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53616 -- H.J.