[PATCH][RFC] Recognize memcpy/memmove - fix PR53081

H.J. Lu hjl.tools@gmail.com
Fri Jun 8 22:33:00 GMT 2012


On Tue, Jun 5, 2012 at 7:36 AM, Richard Guenther <rguenther@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  <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.
>

This caused:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53616

-- 
H.J.



More information about the Gcc-patches mailing list