llvm-6502/lib/Transforms/InstCombine
Chandler Carruth a768c4a096 [IC] Fix a bug with the instcombine canonicalizing of loads and
propagating of metadata.

We were propagating !nonnull metadata even when the newly formed load is
no longer of a pointer type. This is clearly broken and results in LLVM
failing the verifier and aborting. This patch just restricts the
propagation of !nonnull metadata to when we actually have a pointer
type.

This bug report and the initial version of this patch was provided by
Charles Davis! Many thanks for finding this!

We still need to add logic to round-trip the metadata correctly if we
combine from pointer types to integer types and then back by using range
metadata for the integer type loads. But this is the minimal and safe
version of the patch, which is important so we can backport it into 3.6.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229029 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-13 02:30:01 +00:00
..
CMakeLists.txt Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
InstCombineAddSub.cpp [PM] Rename InstCombine.h to InstCombineInternal.h in preparation for 2015-01-22 05:25:13 +00:00
InstCombineAndOrXor.cpp InstCombine: Allow folding of xor into icmp by changing the predicate for vectors 2015-02-12 20:26:46 +00:00
InstCombineCalls.cpp Revert r228556: InstCombine: propagate nonNull through assume 2015-02-10 08:07:32 +00:00
InstCombineCasts.cpp [PM] Rename InstCombine.h to InstCombineInternal.h in preparation for 2015-01-22 05:25:13 +00:00
InstCombineCompares.cpp [PM] Rename InstCombine.h to InstCombineInternal.h in preparation for 2015-01-22 05:25:13 +00:00
InstCombineInternal.h [PM] Port instcombine to the new pass manager! 2015-01-24 04:19:17 +00:00
InstCombineLoadStoreAlloca.cpp [IC] Fix a bug with the instcombine canonicalizing of loads and 2015-02-13 02:30:01 +00:00
InstCombineMulDivRem.cpp [PM] Rename InstCombine.h to InstCombineInternal.h in preparation for 2015-01-22 05:25:13 +00:00
InstCombinePHI.cpp [PM] Rename InstCombine.h to InstCombineInternal.h in preparation for 2015-01-22 05:25:13 +00:00
InstCombineSelect.cpp InstCombine: Combine select sequences into a single select 2015-02-06 17:49:36 +00:00
InstCombineShifts.cpp [PM] Rename InstCombine.h to InstCombineInternal.h in preparation for 2015-01-22 05:25:13 +00:00
InstCombineSimplifyDemanded.cpp [PM] Rename InstCombine.h to InstCombineInternal.h in preparation for 2015-01-22 05:25:13 +00:00
InstCombineVectorOps.cpp [PM] Rename InstCombine.h to InstCombineInternal.h in preparation for 2015-01-22 05:25:13 +00:00
InstructionCombining.cpp Don't promote asynch EH invokes of nounwind functions to calls 2015-02-11 01:23:16 +00:00
LLVMBuild.txt Update libdeps since TLI was moved from Target to Analysis in r226078. 2015-01-15 05:21:00 +00:00
Makefile