llvm-6502/test/Transforms
Chandler Carruth 70d3bebc8b Add support to ValueTracking for determining that a pointer is non-null
by virtue of inbounds GEPs that preclude a null pointer.

This is a very common pattern in the code generated by std::vector and
other standard library routines which use allocators that test for null
pervasively. This is one step closer to teaching Clang+LLVM to be able
to produce an empty function for:

  void f() {
    std::vector<int> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    v.push_back(4);
  }

Which is related to getting them to completely fold SmallVector
push_back sequences into constants when inlining and other optimizations
make that a possibility.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169573 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-07 02:08:58 +00:00
..
ADCE
ArgumentPromotion
BBVectorize BBVectorize: Correctly merge SubclassOptionalData 2012-11-28 03:04:10 +00:00
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare
ConstantMerge
ConstProp llvm/ConstantFolding.cpp: Make ReadDataFromGlobal() and FoldReinterpretLoadFromConstPtr() Big-endian-aware. 2012-11-08 20:34:25 +00:00
CorrelatedValuePropagation
DeadArgElim
DeadStoreElimination
EarlyCSE
FunctionAttrs
GlobalDCE
GlobalOpt Revert previous check in r168581, r169079 as they are still in code review status. 2012-12-01 10:54:28 +00:00
GVN Add error handling in getInt. 2012-11-28 12:13:12 +00:00
IndVarSimplify Follow up to 168711: It's safe to base this analysis on the found compare, just return the value for the right predicate. 2012-11-29 19:07:57 +00:00
Inline Remove the dependent libraries feature. 2012-11-27 09:55:56 +00:00
InstCombine Fix typos in CHECK lines. 2012-12-06 21:24:47 +00:00
InstSimplify Add support to ValueTracking for determining that a pointer is non-null 2012-12-07 02:08:58 +00:00
Internalize
IPConstantProp
JumpThreading Add a test case for PR14233. 2012-11-01 10:26:36 +00:00
LCSSA
LICM Set %defaultjit to use MCJIT for PowerPC targets. 2012-10-30 18:07:58 +00:00
LoopDeletion
LoopIdiom rdar://12100355 (part 1) 2012-11-29 19:38:54 +00:00
LoopRotate
LoopSimplify
LoopStrengthReduce
LoopUnroll
LoopUnswitch
LoopVectorize Fix a bug in vectorization of if-converted reduction variables. If the 2012-12-04 22:40:22 +00:00
LowerAtomic
LowerExpectIntrinsic
LowerInvoke
LowerSwitch
Mem2Reg
MemCpyOpt
MergeFunc
MetaRenamer
ObjCARC
PhaseOrdering
PruneEH
Reassociate Fix PR14060, an infinite loop in reassociate. The problem was that one of the 2012-11-18 19:27:01 +00:00
ScalarRepl
SCCP llvm/ConstantFolding.cpp: Make ReadDataFromGlobal() and FoldReinterpretLoadFromConstPtr() Big-endian-aware. 2012-11-08 20:34:25 +00:00
SimplifyCFG Fix logic to determine whether to turn a switch into a lookup table. When 2012-11-30 02:02:42 +00:00
SimplifyLibCalls instcombine: Migrate puts optimizations 2012-11-29 19:15:17 +00:00
Sink
SROA Fix typos in CHECK lines. 2012-12-06 21:24:47 +00:00
StripSymbols
TailCallElim
TailDup