llvm/lib
Ahmed Bougacha 8081057fca [MemCpyOpt] Turn memcpy from just-memset'd source into memset.
There's no point in copying around constants, so, when all else fails,
we can still transform memcpy of memset into two independent memsets.

To quote the example, we can turn:
  memset(dst1, c, dst1_size);
  memcpy(dst2, dst1, dst2_size);
into:
  memset(dst1, c, dst1_size);
  memset(dst2, c, dst2_size);
When dst2_size <= dst1_size.

Like r235232 for copy constructors, this can occur in move constructors.

Differential Revision: http://reviews.llvm.org/D9682


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237506 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-16 01:32:26 +00:00
..
Analysis Allow min/max detection to see through casts. 2015-05-15 16:04:50 +00:00
AsmParser [opaque pointer type] Use the value type of the GlobalVariable rather than accessing it through the pointee's type 2015-05-13 22:55:01 +00:00
Bitcode [BitcodeReader] Don't allow INSERTVAL/EXTRACTVAL with 0 indices 2015-05-16 00:33:12 +00:00
CodeGen [SDAGBuilder] Make the AArch64 builder happier. 2015-05-15 17:41:29 +00:00
DebugInfo MC: MCCodeGenInfo naming update. NFC. 2015-05-15 19:13:31 +00:00
ExecutionEngine [RuntimeDyld] Use isInt to assert that a relocation didn't overflow 2015-05-15 20:32:25 +00:00
Fuzzer [lib/Fuzzer] Add SHA1 implementation from public domain. 2015-05-14 22:41:49 +00:00
IR While in GlobalValue fix the function(s) that don't follow the 2015-05-15 18:20:14 +00:00
IRReader Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
LineEditor Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
Linker While in GlobalValue fix the function(s) that don't follow the 2015-05-15 18:20:14 +00:00
LTO LTO: Add API to choose whether to embed uselists 2015-04-27 23:38:54 +00:00
MC MC: Use MCSymbol in RelAndSymbol, NFC 2015-05-16 01:14:19 +00:00
Object Remove MCAssembler.h include from MCStreamer.h and fix users of MCStreamer.h 2015-05-15 22:19:42 +00:00
Option Option parsing: properly handle flag aliases for joined options (PR23394) 2015-05-04 18:00:13 +00:00
Passes [PM] Fixup for r231556 where I missed a dependency on intrinsics 2015-03-07 09:08:20 +00:00
ProfileData InstrProf: Treat functions with a coverage map but no profile as unreached 2015-05-13 22:03:04 +00:00
Support YAML: Add support for literal block scalar I/O. 2015-05-14 23:08:22 +00:00
TableGen TableGen: Avoid undefined behaviour by doing this shift in int64 2015-05-14 06:47:02 +00:00
Target MC: Use MCSymbol in RelAndSymbol, NFC 2015-05-16 01:14:19 +00:00
Transforms [MemCpyOpt] Turn memcpy from just-memset'd source into memset. 2015-05-16 01:32:26 +00:00
CMakeLists.txt [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00
LLVMBuild.txt Reflow long lines of some LLVMBuild files 2015-05-14 15:38:27 +00:00
Makefile [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00