llvm-6502/lib
Ahmed Bougacha 7349765ddb [MemCpyOpt] Optimize double-storing by memset+memcpy.
A common idiom in some code is to do the following:

  memset(dst, 0, dst_size);
  memcpy(dst, src, src_size);

Some of the memset is redundant; instead, we can do:

  memcpy(dst, src, src_size);
  memset(dst + src_size, 0,
         dst_size <= src_size ? 0 : dst_size - src_size);

Original patch by: Joel Jones
Differential Revision: http://reviews.llvm.org/D498


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235232 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-17 22:20:57 +00:00
..
Analysis DebugInfo: Gut DIType and subclasses 2015-04-16 01:01:28 +00:00
AsmParser [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
Bitcode [opaque pointer types] Use the pointee type loaded from bitcode when constructing a LoadInst 2015-04-17 19:56:21 +00:00
CodeGen AsmPrinter: Create a unified .debug_loc stream 2015-04-17 21:34:47 +00:00
DebugInfo Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
ExecutionEngine Revert "[RuntimeDyldELF] Fold Placeholder into Addend" 2015-04-16 08:58:15 +00:00
Fuzzer Removing a spurious space; NFC. 2015-04-06 16:09:13 +00:00
IR [opaque pointer types] Use the pointee type loaded from bitcode when constructing a LoadInst 2015-04-17 19:56:21 +00:00
IRReader
LineEditor
Linker DebugInfo: Gut DISubprogram and DILexicalBlock* 2015-04-14 03:40:37 +00:00
LTO [LTO API] add lto_codegen_set_should_internalize. 2015-04-17 17:10:09 +00:00
MC Compute A-B when A or B is weak. 2015-04-17 21:15:17 +00:00
Object Change range-based for-loops to be -Wrange-loop-analysis clean. 2015-04-15 01:21:15 +00:00
Option Remove more superfluous .str() and replace std::string concatenation with Twine. 2015-03-30 15:42:36 +00:00
Passes
ProfileData Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
Support Revert r235177 as the Handle is used to fail GetExitCodeProcess on purpose. 2015-04-17 12:11:15 +00:00
TableGen Remove empty non-virtual destructors or mark them =default when non-public 2015-04-11 15:32:26 +00:00
Target [AArch64] Avoid vector->load dependency cycles when creating LD1*post. 2015-04-17 21:02:30 +00:00
Transforms [MemCpyOpt] Optimize double-storing by memset+memcpy. 2015-04-17 22:20:57 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile