Add value range support into memcpy/memset expansion

H.J. Lu hjl.tools@gmail.com
Mon Nov 18 15:45:00 GMT 2013


On Sun, Nov 17, 2013 at 3:38 PM, Jan Hubicka <hubicka@ucw.cz> wrote:
> Hi,
> this is version I comitted. It also adds a testcase and enables the support in i386 backend.
>
> Honza
>
>         * doc/md.texi (setmem, movstr): Update documentation.
>         * builtins.c (determine_block_size): New function.
>         (expand_builtin_memcpy): Use it and pass it to
>         emit_block_move_hints.
>         (expand_builtin_memset_args): Use it and pass it to
>         set_storage_via_setmem.
>         * expr.c (emit_block_move_via_movmem): Add min_size/max_size parameters;
>         update call to expander.
>         (emit_block_move_hints): Add min_size/max_size parameters.
>         (clear_storage_hints): Likewise.
>         (set_storage_via_setmem): Likewise.
>         (clear_storage): Update.
>         * expr.h (emit_block_move_hints, clear_storage_hints,
>         set_storage_via_setmem): Update prototype.
>         * i386.c (ix86_expand_set_or_movmem): Add bounds; export.
>         (ix86_expand_movmem, ix86_expand_setmem): Remove.
>         (ix86_expand_movmem, ix86_expand_setmem): Remove.
>         * i386.md (movmem, setmem): Pass parameters.
>
>         * testsuite/gcc.target/i386/memcpy-2.c: New testcase.

The new testcase fails for me on x86 and x86-64:

FAIL: gcc.target/i386/memcpy-2.c scan-assembler-not memcpy
FAIL: gcc.target/i386/memcpy-2.c (test for excess errors)

-- 
H.J.



More information about the Gcc-patches mailing list