llvm-6502/lib
Philip Reames b835f3446f Remove dead zero store to calloc initialized memory
Optimize the following IR:

%1 = tail call noalias i8* @calloc(i64 1, i64 4)
%2 = bitcast i8* %1 to i32*
; This store is dead and should be removed
store i32 0, i32* %2, align 4

Memory returned by calloc is guaranteed to be zero initialized. If the value being stored is the constant zero (and the store is not otherwise observable across threads), we can delete the store.  If the store is to an out of bounds address, it is undefined and thus also removable.

Reviewed By: nicholas

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




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214897 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-05 17:48:20 +00:00
..
Analysis Teach the SLP Vectorizer that keeping some values live over a callsite can have a cost. 2014-08-05 12:30:34 +00:00
AsmParser
Bitcode
CodeGen Optimize vector fabs of bitcasted constant integer values. 2014-08-05 17:35:22 +00:00
DebugInfo
ExecutionEngine
IR Provide convenient access to the zext/sext attributes of function arguments. NFC. 2014-08-05 05:43:41 +00:00
IRReader
LineEditor
Linker
LTO
MC
Object
Option
ProfileData
Support
TableGen Allow binary and for tblgen math. 2014-08-05 09:43:25 +00:00
Target Revert r214881 because it broke lots of build-bots 2014-08-05 17:36:05 +00:00
Transforms Remove dead zero store to calloc initialized memory 2014-08-05 17:48:20 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile