llvm-6502/lib/Transforms/InstCombine
Nuno Lopes 9969458b16 teach instcombine to remove allocated buffers even if there are stores, memcpy/memmove/memset, and objectsize users.
This means we can do cheap DSE for heap memory.
Nothing is done if the pointer excapes or has a load.

The churn in the tests is mostly due to objectsize, since we want to make sure we
don't delete the malloc call before evaluating the objectsize (otherwise it becomes -1/0)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159876 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-06 23:09:25 +00:00
..
CMakeLists.txt llvm/lib: [CMake] Add explicit dependency to intrinsics_gen. 2012-06-24 13:32:01 +00:00
InstCombine.h Move llvm/Support/IRBuilder.h -> llvm/IRBuilder.h 2012-06-29 12:38:19 +00:00
InstCombineAddSub.cpp Remove a instcombine transform that (no longer?) makes sense: 2012-06-26 22:03:13 +00:00
InstCombineAndOrXor.cpp InstCombine: fix a bug when combining (fcmp cc0 x, y) && (fcmp cc1 x, y). 2012-06-14 05:57:42 +00:00
InstCombineCalls.cpp instcombine: disable optimization of 'invoke null/undef'. I'll move this functionality to SimplifyCFG (since we cannot make changes to the CFG here). 2012-06-21 23:52:14 +00:00
InstCombineCasts.cpp Revert remaining part of r93200: "Disable folding sext(trunc(x)) -> x" 2012-06-22 16:36:43 +00:00
InstCombineCompares.cpp InstCombine: factor code better. 2012-06-11 08:01:25 +00:00
InstCombineLoadStoreAlloca.cpp Replacing zero-sized alloca's with a null pointer is too aggressive, instead 2012-06-26 13:39:21 +00:00
InstCombineMulDivRem.cpp Look pass zext to strength reduce an udiv. Patch by David Majnemer. rdar://11721329 2012-06-21 22:52:49 +00:00
InstCombinePHI.cpp
InstCombineSelect.cpp Fix a bug in FoldSelectOpOp. Bitcast ops may change the number of vector elements, which may disagree with the select condition type. 2012-06-07 20:28:57 +00:00
InstCombineShifts.cpp PR12967: Don't crash when trying to fold a shift that's larger than the type's size. 2012-05-27 22:03:32 +00:00
InstCombineSimplifyDemanded.cpp Always compute all the bits in ComputeMaskedBits. 2012-04-04 12:51:34 +00:00
InstCombineVectorOps.cpp continue making the world safe for ConstantDataVector. At this point, 2012-01-27 03:08:05 +00:00
InstCombineWorklist.h Use an iterator instead of calling .size() on the worklist every time, which is wasteful. 2012-03-15 11:19:41 +00:00
InstructionCombining.cpp teach instcombine to remove allocated buffers even if there are stores, memcpy/memmove/memset, and objectsize users. 2012-07-06 23:09:25 +00:00
LLVMBuild.txt
Makefile