Merge memsets followed by neighboring memsets and other stores into
authorChris Lattner <sabre@nondot.org>
Sat, 8 Jan 2011 21:19:19 +0000 (21:19 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 8 Jan 2011 21:19:19 +0000 (21:19 +0000)
commitd90a192279c8580c4e80d1ee102d1317ce2aaffa
tree164ef7aa26f4beef9bc64e8f7c5adb4d217b1c92
parent9fa11e94b5a7709cf05396420b3b3eaad6fb8e37
Merge memsets followed by neighboring memsets and other stores into
larger memsets.  Among other things, this fixes rdar://8760394 and
allows us to handle "Example 2" from http://blog.regehr.org/archives/320,
compiling it into a single 4096-byte memset:

_mad_synth_mute:                        ## @mad_synth_mute
## BB#0:                                ## %entry
pushq %rax
movl $4096, %esi             ## imm = 0x1000
callq ___bzero
popq %rax
ret

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123089 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/MemCpyOptimizer.cpp
test/Transforms/MemCpyOpt/form-memset.ll