http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51134
--- Comment #8 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-11-18 02:18:32 UTC --- Author: hubicka Date: Fri Nov 18 02:18:28 2011 New Revision: 181466 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=181466 Log: 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. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c