OSDN Git Service

PR bootstrap/51134
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Nov 2011 02:18:28 +0000 (02:18 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Nov 2011 02:18:28 +0000 (02:18 +0000)
commited34e98a89a31584530197425659a717cbe17ee3
tree64a73a0ee2ea3895ec62cd12754303cd51ecc8e8
parent0916684528733c1e592804d128db23a5bd160f20
PR bootstrap/51134
* i386.c (atom_cost): Fix 32bit memset description.
(expand_set_or_movmem_via_loop_with_iter): Output proper bounds check for epilogue loops.
(expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing byte loop.
(decide_alg): sse_loop is not useable wthen SSE2 is disabled; when not optimizing always
use rep movsb or lincall; do not produce word sized loops when optimizing memset for
size (to avoid need for large constants).
(ix86_expand_movmem): Get into sync with ix86_expand_setmem; choose unroll factors
better; always do 128bit moves when producing SSE loops; do not produce loopy epilogue
when size is too small.
(promote_duplicated_reg_to_size): Do not look into desired alignments when
doing vector expansion.
(ix86_expand_setmem): Track better when promoted value is available; choose unroll factors
more sanely.; output loopy epilogue only when needed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181466 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/i386/i386.c