-
- Downloads
sw-1.c: Force rep;movsb.
* gcc.target/i386/sw-1.c: Force rep;movsb.
* config/i386/i386.h (processor_costs): Add second dimension to
stringop_algs array.
* config/i386/i386.c (cost models): Initialize second dimension of
stringop_algs arrays.
(core_cost): New costs based on generic64 costs with updated stringop
values.
(promote_duplicated_reg): Add support for vector modes, add
declaration.
(promote_duplicated_reg_to_size): Likewise.
(processor_target): Set core costs for core variants.
(expand_set_or_movmem_via_loop_with_iter): New function.
(expand_set_or_movmem_via_loop): Enable reuse of the same iters in
different loops, produced by this function.
(emit_strset): New function.
(expand_movmem_epilogue): Add epilogue generation for bigger sizes,
use SSE-moves where possible.
(expand_setmem_epilogue): Likewise.
(expand_movmem_prologue): Likewise for prologue.
(expand_setmem_prologue): Likewise.
(expand_constant_movmem_prologue): Likewise.
(expand_constant_setmem_prologue): Likewise.
(decide_alg): Add new argument align_unknown. Fix algorithm of
strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
(decide_alignment): Update desired alignment according to chosen move
mode.
(ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
(ix86_expand_setmem): Likewise.
(ix86_slow_unaligned_access): Implementation of new hook
slow_unaligned_access.
* config/i386/i386.md (strset): Enable half-SSE moves.
* config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
(vec_dupv2di): Add expand for vec_dupv2di.
Co-Authored-By:
Jan Hubicka <jh@suse.cz>
From-SVN: r181357
Showing
- gcc/ChangeLog 36 additions, 0 deletionsgcc/ChangeLog
- gcc/cgraph.h 2 additions, 0 deletionsgcc/cgraph.h
- gcc/config/i386/i386-opts.h 2 additions, 1 deletiongcc/config/i386/i386-opts.h
- gcc/config/i386/i386.c 806 additions, 240 deletionsgcc/config/i386/i386.c
- gcc/config/i386/i386.h 6 additions, 2 deletionsgcc/config/i386/i386.h
- gcc/config/i386/i386.opt 3 additions, 0 deletionsgcc/config/i386/i386.opt
- gcc/config/i386/sse.md 20 additions, 0 deletionsgcc/config/i386/sse.md
- gcc/ipa.c 1 addition, 1 deletiongcc/ipa.c
- gcc/testsuite/ChangeLog 5 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gcc.target/i386/sw-1.c 1 addition, 1 deletiongcc/testsuite/gcc.target/i386/sw-1.c
- gcc/tree-emutls.c 2 additions, 2 deletionsgcc/tree-emutls.c
- gcc/varpool.c 14 additions, 0 deletionsgcc/varpool.c
Loading
Please register or sign in to comment