aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ScalarEvolution.cpp
AgeCommit message (Expand)AuthorFilesLines
2015-01-04[PM] Split the AssumptionTracker immutable pass into two separate APIs:Chandler Carruth1-12/+18
2014-12-15Teach ScalarEvolution to exploit min and max expressions when provingSanjoy Das1-8/+93
2014-12-15Clarify HowFarToZero computation when the step is a positive power of two. F...Mark Heffernan1-8/+13
2014-12-14ScalarEvolution: Remove SCEVUDivision, it's unusedDavid Majnemer1-93/+26
2014-12-10Fix PR21694. r219517 added a use of SCEV divide in HowFarToZero computation. ...Mark Heffernan1-10/+8
2014-12-09IR: Split Metadata from ValueDuncan P. N. Exon Smith1-2/+4
2014-12-06Canonicalize multiplies by looking at whether the operands have any constants...Nick Lewycky1-5/+26
2014-11-19Update SetVector to rely on the underlying set's insert to return a pair<iter...David Blaikie1-5/+9
2014-11-17ScalarEvolution: Construct SCEVDivision's Derived type instead of itselfDavid Majnemer1-12/+21
2014-11-16ScalarEvolution: Introduce SCEVSDivision and SCEVUDivisionDavid Majnemer1-15/+58
2014-11-16ScalarEvolution: HowFarToZero was wrongly using signed divisionDavid Majnemer1-10/+10
2014-11-13Teach ScalarEvolution to sharpen range information.Sanjoy Das1-0/+60
2014-11-11Revert "IR: MDNode => Value"Duncan P. N. Exon Smith1-1/+1
2014-11-01IR: MDNode => Value: Instruction::getMetadata()Duncan P. N. Exon Smith1-1/+1
2014-10-31[SCEV] Improve Scalar Evolution's use of no {un,}signed wrap flagsBradley Smith1-6/+26
2014-10-15Revert "r219834 - Teach ScalarEvolution to sharpen range information"Sanjoy Das1-38/+0
2014-10-15Teach ScalarEvolution to sharpen range information.Sanjoy Das1-0/+38
2014-10-11[SCEV] Add some asserts to the recently improved trip count computationChandler Carruth1-0/+22
2014-10-10This patch teaches ScalarEvolution to pick and use !range metadata.Sanjoy Das1-0/+41
2014-10-10This patch de-pessimizes the calculation of loop trip counts inMark Heffernan1-353/+325
2014-09-07Make use @llvm.assume for loop guards in ScalarEvolutionHal Finkel1-6/+24
2014-09-07Make use of @llvm.assume in ValueTracking (computeKnownBits, etc.)Hal Finkel1-5/+10
2014-09-01Remove an errant outer loop that contains nothing but an inner loop over exac...Nick Lewycky1-58/+53
2014-07-21Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) ite...Duncan P. N. Exon Smith1-4/+5
2014-07-20[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ra...Manuel Jacob1-5/+4
2014-06-08ScalarEvolution: Derive element size from the type of the loaded elementTobias Grosser1-1/+1
2014-05-29implement missing SCEVDivision caseSebastian Pop1-0/+9
2014-05-29fail to find dimensions when ElementSize is nullptrSebastian Pop1-1/+1
2014-05-27avoid type mismatch when building SCEVsSebastian Pop1-0/+26
2014-05-27do not use the GCD to compute the delinearization stridesSebastian Pop1-59/+8
2014-05-27remove BasePointer before delinearizingSebastian Pop1-18/+17
2014-05-27remove constant termsSebastian Pop1-17/+71
2014-05-26Some cleanup for r209568.Michael Zolotukhin1-9/+7
2014-05-24Implement sext(C1 + C2*X) --> sext(C1) + sext(C2*X) andMichael Zolotukhin1-0/+35
2014-05-23Fix and improve SCEV ComputeBackedgeTankCount.Andrew Trick1-19/+46
2014-05-23ScalarEvolution: Fix handling of AddRecs in isKnownPredicateJustin Bogner1-12/+24
2014-05-22Fix a bug in SCEV's backedge taken count computation from my prior fix in Jan.Andrew Trick1-8/+6
2014-05-14Rename ComputeMaskedBits to computeKnownBits. "Masked" has beenJay Foad1-4/+4
2014-05-12use nullptr instead of NULLSebastian Pop1-4/+4
2014-05-12do not assert when delinearization failsSebastian Pop1-8/+30
2014-05-12use isZero()Sebastian Pop1-6/+5
2014-05-10SCEV: Use range-based for loop and fold variable into assert.Benjamin Kramer1-6/+4
2014-05-09move findArrayDimensions to ScalarEvolutionSebastian Pop1-9/+9
2014-05-09fix typo in debug messageSebastian Pop1-2/+2
2014-05-08Correct formatting.Tobias Grosser1-4/+4
2014-05-08Use std::remove_if to remove elements from a vectorTobias Grosser1-5/+4
2014-05-08Revert "SCEV: Use I = vector<>.erase(I) to iterate and delete at the same time"Tobias Grosser1-3/+6
2014-05-08SCEV: Use I = vector<>.erase(I) to iterate and delete at the same timeTobias Grosser1-6/+3
2014-05-07avoid segfaultingSebastian Pop1-2/+1
2014-05-07do not collect undef termsSebastian Pop1-1/+36