1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
llvm-mirror/test/Transforms
Chandler Carruth cbd5e9d8c2 [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.

llvm-svn: 229029
2015-02-13 02:30:01 +00:00
..
ADCE
AddDiscriminators IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
AlignmentFromAssumptions
ArgumentPromotion IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
AtomicExpand/ARM
BBVectorize This patch teaches IndVarSimplify to add nuw and nsw to certain kinds 2015-01-06 19:02:56 +00:00
BranchFolding
CodeExtractor
CodeGenPrepare [GC] CodeGenPrep transform: simplify offsetable relocate 2015-01-14 23:27:07 +00:00
ConstantHoisting
ConstantMerge
ConstProp
CorrelatedValuePropagation LazyValueInfo: Actually re-visit partially solved block-values in solveBlockValue() 2014-11-25 17:23:05 +00:00
DeadArgElim DeadArgElim: aggregate Return assessment properly. 2015-02-11 23:13:11 +00:00
DeadStoreElimination IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
EarlyCSE EarlyCSE: Add check lines for test added in r228760 2015-02-10 23:11:02 +00:00
FunctionAttrs
GCOVProfiling IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
GlobalDCE Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
GlobalOpt IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
GVN Allow PRE to insert no-cost phi nodes 2015-02-03 20:37:08 +00:00
IndVarSimplify Fix PR22222 2015-01-15 01:46:09 +00:00
Inline Fix a crash in the assumption cache when inlining indirect function calls 2015-02-12 21:04:22 +00:00
InstCombine [IC] Fix a bug with the instcombine canonicalizing of loads and 2015-02-13 02:30:01 +00:00
InstMerge Added 5 more tests related to sink store revision 224247 2014-12-17 08:12:59 +00:00
InstSimplify Fold fcmp in cases where value is provably non-negative. By Arch Robison. 2015-01-28 08:03:58 +00:00
Internalize
IPConstantProp
IRCE Teach IRCE to look at branch weights when recognizing range checks 2015-01-27 21:38:12 +00:00
JumpThreading ValueTracking: ComputeNumSignBits should tolerate misshapen phi nodes 2015-01-04 07:06:53 +00:00
LCSSA [LCSSA] Handle PHI insertion in disjoint loops 2014-12-22 22:35:46 +00:00
LICM Teach isDereferenceablePointer() to look through bitcast constant expressions. 2015-02-05 09:15:37 +00:00
LoadCombine
LoopDeletion
LoopIdiom IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
LoopReroll [LoopRerolling] Be more forgiving with instruction order. 2015-02-12 15:54:14 +00:00
LoopRotate LoopRotate: Don't walk the uses of a Constant 2015-01-27 06:21:43 +00:00
LoopSimplify Teach SplitBlockPredecessors how to handle landingpad blocks. 2015-01-28 23:06:47 +00:00
LoopStrengthReduce Reverting VLD1/VST1 base-updating/post-incrementing combining 2015-02-04 10:11:59 +00:00
LoopUnroll Testcase for r228988. 2015-02-13 00:35:45 +00:00
LoopUnswitch
LoopVectorize Check interleaving without relying on debug output. 2015-02-13 02:13:57 +00:00
LowerAtomic
LowerExpectIntrinsic [PM] Port LowerExpectIntrinsic to the new pass manager. 2015-01-24 11:13:02 +00:00
LowerInvoke
LowerSwitch LowerSwitch: replace unreachable default with popular case destination 2015-01-23 20:43:51 +00:00
Mem2Reg IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
MemCpyOpt ValueTracking: Make isBytewiseValue simpler and more powerful at the same time. 2015-02-07 19:29:02 +00:00
MergeFunc IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
MetaRenamer
ObjCARC IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
PartiallyInlineLibCalls
PhaseOrdering
PlaceSafepoints PlaceSafepoints: modernize gc.result.* -> gc.result 2015-02-09 23:00:40 +00:00
PruneEH Fix invalid LLVM IR in PruneEH tests 2015-02-11 02:06:47 +00:00
Reassociate Reassociate: cannot negate a INT_MIN value 2015-02-11 19:54:44 +00:00
Reg2Mem
SampleProfile IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
Scalarizer IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
ScalarRepl IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
SCCP
SeparateConstOffsetFromGEP/NVPTX
SimplifyCFG [TTI] Teach the cost heuristic how to query TLI to check if a zext/trunc is 'free' for the target. 2015-02-12 14:17:24 +00:00
Sink
SLPVectorizer [slp] Fix a nasty bug in the SLP vectorizer that Joerg pointed out. 2015-02-12 02:30:56 +00:00
SROA [SROA] Apply a somewhat heavy and unpleasant hammer to fix PR22093, an 2015-01-05 04:17:53 +00:00
StraightLineStrengthReduce Add straight-line strength reduction to LLVM 2015-02-03 19:37:06 +00:00
StripSymbols IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
StructurizeCFG StructurizeCFG: Use a reverse post-order traversal 2015-02-04 20:49:44 +00:00
TailCallElim
TailDup
Util Correctly combine alias.scope metadata by a union instead of intersecting 2015-02-08 17:07:14 +00:00