diff options
author | Michael Zolotukhin <michael.v.zolotukhin@gmail.com> | 2013-07-08 06:48:15 +0000 |
---|---|---|
committer | Kirill Yukhin <kyukhin@gcc.gnu.org> | 2013-07-08 06:48:15 +0000 |
commit | 930b700ba28617ea074b0f4e54d3b00b8d9be0a2 (patch) | |
tree | ba89b5940f5318ef03d3bc4262cca5673f95b354 /gcc/config/i386/i386-opts.h | |
parent | c8dfadf8f35a6d636f8dbc51590f7b530ef34d4f (diff) | |
download | gcc-930b700ba28617ea074b0f4e54d3b00b8d9be0a2.tar.gz |
i386-opts.h (enum stringop_alg): Add vector_loop.
ChangeLog:
* config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
* config/i386/i386.c (expand_set_or_movmem_via_loop): Use
adjust_address instead of change_address to keep info about alignment.
(emit_strmov): Remove.
(emit_memmov): New function.
(expand_movmem_epilogue): Refactor to properly handle bigger sizes.
(expand_movmem_epilogue): Likewise and return updated rtx for
destination.
(expand_constant_movmem_prologue): Likewise and return updated rtx for
destination and source.
(decide_alignment): Refactor, handle vector_loop.
(ix86_expand_movmem): Likewise.
(ix86_expand_setmem): Likewise.
* config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
testsuite/ChangeLog:
* gcc.target/i386/memcpy-vector_loop-1.c: New.
* gcc.target/i386/memcpy-vector_loop-2.c: New.
From-SVN: r200751
Diffstat (limited to 'gcc/config/i386/i386-opts.h')
-rw-r--r-- | gcc/config/i386/i386-opts.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/i386/i386-opts.h b/gcc/config/i386/i386-opts.h index 61f04ced53b..bea1c257830 100644 --- a/gcc/config/i386/i386-opts.h +++ b/gcc/config/i386/i386-opts.h @@ -35,7 +35,8 @@ enum stringop_alg rep_prefix_8_byte, loop_1_byte, loop, - unrolled_loop + unrolled_loop, + vector_loop }; /* Available call abi. */ |