]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/builtins.c
* config/i386/i386.c (expand_setmem_via_rep_stos): Add ORIG_VALUE
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Dec 2008 23:34:07 +0000 (23:34 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Dec 2008 23:34:07 +0000 (23:34 +0000)
commitad0a178f65bb4cf3be066dcc451820d15687c213
tree5971e3d6c2cd233e84f89d0395f6d5c1beecc681
parenta1fd6678441313c9641660ee48a40d8d01afb1db
* config/i386/i386.c (expand_setmem_via_rep_stos): Add ORIG_VALUE
argument.  If ORIG_VALUE is const0_rtx and COUNT is constant,
set MEM_SIZE on DESTMEM.
(ix86_expand_setmem): Adjust callers.

PR target/38488
* expr.h (get_mem_align_offset): New prototype.
* emit-rtl.c (get_mem_align_offset): New function.
* config/i386/i386.c (expand_movmem_via_rep_mov): Set MEM_SIZE correctly.
(expand_constant_movmem_prologue, expand_constant_setmem_prologue):
New functions.
(ix86_expand_movmem): Optimize if COUNT_EXP
is constant, desired_align > align and dst & (desired_align - 1)
is computable at compile time.
(ix86_expand_setmem): Likewise.

* builtins.c (get_memory_rtx): Try to derive MEM_ATTRS from not yet
resolved SAVE_EXPR or POINTER_PLUS_EXPR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142891 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/builtins.c
gcc/config/i386/i386.c
gcc/emit-rtl.c
gcc/expr.h