llvm-6502/lib/Transforms
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
..
Hello
InstCombine [IC] Fix a bug with the instcombine canonicalizing of loads and 2015-02-13 02:30:01 +00:00
Instrumentation tsan: do not instrument not captured values 2015-02-12 09:55:28 +00:00
IPO DeadArgElim: aggregate Return assessment properly. 2015-02-11 23:13:11 +00:00
ObjCARC Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
Scalar [unroll] Avoid the "Insn" abbreviation of Instruction. This is quite 2015-02-13 02:17:39 +00:00
Utils [SimplifyCFG] Swap to using TargetTransformInfo for cost 2015-02-11 12:15:41 +00:00
Vectorize [slp] Fix a nasty bug in the SLP vectorizer that Joerg pointed out. 2015-02-12 02:30:56 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile