summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
...
* Use iterators instead of indices in a few more places.Dan Gohman2010-08-161-6/+9
| | | | llvm-svn: 111143
* Micro-optimize SCEVConstant comparison.Dan Gohman2010-08-161-4/+4
| | | | llvm-svn: 111142
* Move SCEVNAryExpr's virtual member functions out of line, and convertDan Gohman2010-08-161-0/+33
| | | | | | them to iterators. llvm-svn: 111140
* Use iterators instead of indices in simple cases.Dan Gohman2010-08-161-6/+4
| | | | llvm-svn: 111138
* Avoid gratuitous inefficiency in ifndef NDEBUG code.Dan Gohman2010-08-161-8/+8
| | | | llvm-svn: 111137
* Make one getAddExpr call when analyzing a+b+c+d+e+... instead of oneDan Gohman2010-08-161-6/+31
| | | | | | for each add instruction. Ditto for Mul. llvm-svn: 111136
* Delete an unused function.Dan Gohman2010-08-161-35/+0
| | | | llvm-svn: 111135
* Revert r111058, the lint check for indirectbr successors that aren'tDan Gohman2010-08-161-6/+0
| | | | | | | address-taken. This can occur normally, if the code which took the address got DCEd. llvm-svn: 111121
* Revert r111082. No warnings for this common pattern.Argyrios Kyrtzidis2010-08-151-1/+1
| | | | llvm-svn: 111102
* Add ATTRIBUTE_UNUSED to methods that are not supposed to be used.Argyrios Kyrtzidis2010-08-141-1/+1
| | | | llvm-svn: 111082
* Add a lint check for an indirectbr destination which has notDan Gohman2010-08-131-0/+6
| | | | | | had its address taken. llvm-svn: 111058
* Various optimizations. Don't compare two loops' depthsDan Gohman2010-08-131-18/+26
| | | | | | | when they are the same loop. Don't compare two instructions' loop depths when they are in the same block. llvm-svn: 111045
* When testing whether one loop contains another, test this directlyDan Gohman2010-08-131-2/+2
| | | | | | rather than testing whether the loop contains the other's header. llvm-svn: 111039
* Add a const.Dan Gohman2010-08-131-1/+1
| | | | llvm-svn: 111038
* When creating a symmetric SCEV with a constant operand, putDan Gohman2010-08-131-4/+4
| | | | | | | the constant operand on the left, as that's where ScalarEvolution will end up canonicalizing to. llvm-svn: 111037
* An add recurrence is loop-invariant in any loop inside of itsDan Gohman2010-08-131-0/+4
| | | | | | | associated loop. This avoids potentially expensive traversals of the add recurrence's operands. llvm-svn: 111034
* Optimize ScalarEvolution::getAddExpr's operand factoring code byDan Gohman2010-08-121-4/+7
| | | | | | | | having it finish processing all of the muliply operands before starting the whole getAddExpr process over again, instead of immediately after the first simplification. llvm-svn: 110916
* Hoist some loop-invariant code out of a hot loop.Dan Gohman2010-08-121-2/+4
| | | | llvm-svn: 110915
* Optimize ScalarEvolution::getAddExpr's duplicate operand detectionDan Gohman2010-08-121-3/+7
| | | | | | | | by having it finish processing the whole operand list before starting the whole getAddExpr process over again, instead of immediately after the first duplicate is found. llvm-svn: 110914
* Even if a variable has constant value all the time, it is still a variable ↵Devang Patel2010-08-111-1/+1
| | | | | | | | in gdb's eyes. Tested by scope.exp in gdb testsuite. llvm-svn: 110876
* Fix a subtle use-after-free issue.Owen Anderson2010-08-111-1/+4
| | | | llvm-svn: 110863
* Make LoopPass::getContainedPass return a LoopPass* instead of a Pass*Dan Gohman2010-08-111-5/+5
| | | | | | and remove casts from all its callers. llvm-svn: 110848
* Improve indentation.Owen Anderson2010-08-111-27/+28
| | | | llvm-svn: 110778
* When analyzing loop exit conditions combined with and and or, don'tDan Gohman2010-08-111-14/+12
| | | | | | | make any assumptions about when the two conditions will agree on when to permit the loop to exit. This fixes PR7845. llvm-svn: 110758
* Rename and reorder the arguments to isImpliedCond, for consistency and clarity.Dan Gohman2010-08-101-10/+12
| | | | llvm-svn: 110750
* Now that we're using ConstantRange to represent potential values, make use ↵Owen Anderson2010-08-101-8/+35
| | | | | | | | of that represenation to create constraints from comparisons other than eq/neq. llvm-svn: 110742
* Add missing argument. CreateCompositeTypeEx() users, please verify.Devang Patel2010-08-101-4/+5
| | | | llvm-svn: 110717
* Switch over to using ConstantRange to track integral values.Owen Anderson2010-08-101-7/+44
| | | | llvm-svn: 110714
* Do not forget debug info for enums. Use named mdnode to keep track of these ↵Devang Patel2010-08-101-2/+15
| | | | | | types. llvm-svn: 110712
* RegionInfo: Do not assert if a BB is not part of the dominance tree.Tobias Grosser2010-08-101-2/+4
| | | | llvm-svn: 110665
* Handle TAG_constant for integers.Devang Patel2010-08-101-2/+3
| | | | llvm-svn: 110656
* Refactor.Devang Patel2010-08-091-1/+42
| | | | llvm-svn: 110607
* Add ConstantRange information to the debugging output.Owen Anderson2010-08-091-0/+3
| | | | llvm-svn: 110598
* Reapply r110396, with fixes to appease the Linux buildbot gods.Owen Anderson2010-08-0629-75/+75
| | | | llvm-svn: 110460
* Implement a proper getModRefInfo for va_arg.Dan Gohman2010-08-061-0/+17
| | | | llvm-svn: 110458
* Be more conservative in the face of volatile.Dan Gohman2010-08-061-8/+8
| | | | llvm-svn: 110456
* Fix a comment.Dan Gohman2010-08-061-2/+2
| | | | llvm-svn: 110455
* Move all the logic for function attributes and call attributes out of theDan Gohman2010-08-062-179/+238
| | | | | | | | | | | | | AliasAnalysis base class and into BasicAliasAnalyais. This avoids confusion about where such logic is happening when there are other AliasAnalysis implementations present. Move the logic for translating two-callsite getModRefInfo queries into other AliasAnalysis queries out of BasicAliasAnalysis and into the AliasAnalysis base class, as it is useful for other AliasAnalysis implementations. llvm-svn: 110421
* Fix botched revert.Owen Anderson2010-08-061-4/+4
| | | | llvm-svn: 110416
* Revert r110396 to fix buildbots.Owen Anderson2010-08-0629-71/+71
| | | | llvm-svn: 110410
* Fix 80-column violations.Dan Gohman2010-08-051-6/+6
| | | | llvm-svn: 110401
* Don't use PassInfo* as a type identifier for passes. Instead, use the ↵Owen Anderson2010-08-0529-75/+75
| | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
* Implement AccessesArguments checking in the two-callsite formDan Gohman2010-08-051-2/+32
| | | | | | | of BasicAA::getModRefInfo. This allows BasicAA to say that two memset calls to non-aliasing memory locations don't interfere. llvm-svn: 110393
* Yes, we can do better, but this is not the place for it.Dan Gohman2010-08-051-1/+0
| | | | llvm-svn: 110391
* Add the beginnings of infrastructure for range tracking.Owen Anderson2010-08-051-6/+60
| | | | llvm-svn: 110388
* Split the tag and value members of LVILatticeVal in preparation for ↵Owen Anderson2010-08-051-14/+14
| | | | | | expanding the lattice to something that won't fit in two bits. llvm-svn: 110383
* Fix memdep's code for reasoning about dependences between two calls. A RefDan Gohman2010-08-052-20/+14
| | | | | | | | | | response from getModRefInfo is not useful here. Instead, check for identical calls only in the NoModRef case. Reapply r110270, and strengthen it to compensate for the memdep changes. When both calls are readonly, there is no dependence between them. llvm-svn: 110382
* Revert r110270 for now. It appears to uncover a memdep bug.Dan Gohman2010-08-051-2/+2
| | | | llvm-svn: 110293
* The trouble with testing for "ModRef" and "NoModRef" is thatDan Gohman2010-08-041-6/+6
| | | | | | | one is a suffix of the other, and FileCheck accepts superstrings. Adjust the output to avoid this problem. llvm-svn: 110280
* The two-callsite form of AliasAnalysis::getModRefInfo is documentedDan Gohman2010-08-042-2/+34
| | | | | | | | | | to return Ref if the left callsite only reads memory read or written by the right callsite; fix BasicAliasAnalysis to implement this. Add AliasAnalysisEvaluator support for testing the two-callsite form of getModRefInfo. llvm-svn: 110270
OpenPOWER on IntegriCloud