aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/LoopDependenceAnalysis.cpp
AgeCommit message (Collapse)AuthorFilesLines
2011-01-02split dom frontier handling stuff out to its own DominanceFrontier header,Chris Lattner1-0/+1
so that Dominators.h is *just* domtree. Also prune #includes a bit. llvm-svn: 122714
2010-12-15Move Value::getUnderlyingObject to be a standaloneDan Gohman1-2/+3
function so that it can live in Analysis instead of VMCore. llvm-svn: 121885
2010-12-10Minimally update this code to handle PartialAlias.Dan Gohman1-0/+1
llvm-svn: 121518
2010-11-17Move SCEV::isLoopInvariant and hasComputableLoopEvolution to be memberDan Gohman1-1/+1
functions of ScalarEvolution, in preparation for memoization and other optimizations. llvm-svn: 119562
2010-10-12Begin adding static dependence information to passes, which will allow us toOwen Anderson1-1/+5
perform initialization without static constructors AND without explicit initialization by the client. For the moment, passes are required to initialize both their (potential) dependencies and any passes they preserve. I hope to be able to relax the latter requirement in the future. llvm-svn: 116334
2010-10-07Now with fewer extraneous semicolons!Owen Anderson1-1/+1
llvm-svn: 115996
2010-07-21Fix batch of converting RegisterPass<> to INTIALIZE_PASS().Owen Anderson1-2/+2
llvm-svn: 109045
2010-03-18Define placement new wrappers for BumpPtrAllocator andDan Gohman1-2/+1
RecyclingAllocator to allow client code to be simpler, and simplify several clients. llvm-svn: 98847
2009-12-23Convert debug messages to use dbgs(). Generally this meansDavid Greene1-7/+7
s/errs/dbgs/g except for certain special cases. llvm-svn: 92042
2009-08-24remove a few dead insertion methods.Chris Lattner1-5/+0
llvm-svn: 79882
2009-08-13Push LLVMContexts through the IntegerType APIs.Owen Anderson1-1/+1
llvm-svn: 78948
2009-08-07SIV/MIV classification for LDA.Andreas Bolka1-6/+35
LoopDependenceAnalysis::getLoops is currently O(N*M) for a loop-nest of depth N and a compound SCEV of M atomic SCEVs. As both N and M will typically be very small, this should not be a problem. If it turns out to be one, rewriting getLoops as SCEVVisitor will reduce complexity to O(M). llvm-svn: 78394
2009-08-06Simplify the ZIV tester to the max.Andreas Bolka1-3/+2
As suggested by Nick Lewycky. llvm-svn: 78277
2009-08-05ZIV tester for LDA.Andreas Bolka1-1/+17
llvm-svn: 78157
2009-08-05Restrict LDA to GEPs with the same pointer offset.Andreas Bolka1-11/+27
We can not simply apply ZIV testing to the pointer offsets, as this would incorrectly return independence for e.g. (GEP x,0,i; GEP x,1,-i). llvm-svn: 78155
2009-08-03Restrict LDA to affine subscripts.Andreas Bolka1-0/+18
llvm-svn: 77932
2009-07-30Equal SCEVs of a subscript give rise to dependence.Andreas Bolka1-1/+11
llvm-svn: 77570
2009-07-29Skeleton for pairwise subscript testing.Andreas Bolka1-3/+45
llvm-svn: 77437
2009-07-28Simplify LDA-internal interface.Andreas Bolka1-12/+8
llvm-svn: 77359
2009-07-28Add LDA statistics.Andreas Bolka1-0/+14
llvm-svn: 77358
2009-07-28Minor factoring, naming and formatting cleanups.Andreas Bolka1-24/+29
llvm-svn: 77357
2009-07-25Convert DOUT to DEBUG.Andreas Bolka1-5/+5
llvm-svn: 77065
2009-07-25Make AliasAnalysis and related classes useDan Gohman1-2/+2
getAnalysisIfAvailable<TargetData>(). llvm-svn: 77028
2009-07-24Forward-declare raw_ostream.Andreas Bolka1-0/+2
llvm-svn: 77014
2009-07-23Cache dependence computation using FoldingSet.Andreas Bolka1-23/+65
This introduces an LDA-internal DependencePair class. The intention is, that this is a place where dependence testers can store various results such as SCEVs describing conflicting iterations, breaking conditions, distance/direction vectors, etc. llvm-svn: 76877
2009-07-23Minor cosmetics: indentation, formatting, naming.Andreas Bolka1-18/+18
llvm-svn: 76839
2009-07-14llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.Torok Edwin1-1/+1
This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). llvm-svn: 75640
2009-07-11assert(0) -> LLVM_UNREACHABLE.Torok Edwin1-1/+2
Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. llvm-svn: 75379
2009-07-03Minor improvement to the LDA debug output.Andreas Bolka1-2/+7
llvm-svn: 74754
2009-07-01Use AA to check objects before LDA.Andreas Bolka1-15/+14
llvm-svn: 74647
2009-06-30Array accesses are independent if the underlying arrays differ.Andreas Bolka1-0/+47
llvm-svn: 74499
2009-06-29Relax LDA memory instruction checks.Andreas Bolka1-4/+7
llvm-svn: 74439
2009-06-29Missed one.Andreas Bolka1-1/+1
llvm-svn: 74416
2009-06-29Fix case in LDA util function names.Andreas Bolka1-4/+4
llvm-svn: 74415
2009-06-28Print pairwise dependence results, add testcases.Andreas Bolka1-2/+26
llvm-svn: 74402
2009-06-28Minimal LDA interface, maximally conservative tester.Andreas Bolka1-0/+24
llvm-svn: 74401
2009-06-28LDA analysis output scaffolding.Andreas Bolka1-1/+19
llvm-svn: 74400
2009-06-24Scaffolding for LDA pass.Andreas Bolka1-0/+47
llvm-svn: 74120