summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Fix ScalarEvolution's tripcount computation for chains of loopsDan Gohman2010-06-291-41/+61
| | | | | | | where each loop's induction variable's start value is the exit value of a preceding loop. llvm-svn: 107224
* Fix whitespace style.Dan Gohman2010-06-291-2/+2
| | | | llvm-svn: 107175
* Remove a pointless variable.Duncan Sands2010-06-291-5/+1
| | | | llvm-svn: 107128
* Use a more obvious way to avoid compiling functions which are only used when ↵Benjamin Kramer2010-06-291-3/+2
| | | | | | XDEBUG is enabled. llvm-svn: 107125
* Jump through some silly hoops to make GCC accept that a function may not alwaysChandler Carruth2010-06-291-0/+3
| | | | | | be called. llvm-svn: 107124
* Just as its not safe to blindly transfer the nsw bit from an addDan Gohman2010-06-291-5/+9
| | | | | | | | instruction to an add scev, it's not safe to blindly transfer the inbounds flag from a gep instruction to an nsw on the scev for the gep. llvm-svn: 107117
* Add an Intraprocedural form of BasicAliasAnalysis, which aims toDan Gohman2010-06-292-34/+120
| | | | | | | properly handles instructions and arguments defined in different functions, or across recursive function iterations. llvm-svn: 107109
* Fix Value::stripPointerCasts and BasicAA to avoid trouble onDan Gohman2010-06-281-9/+29
| | | | | | | code in unreachable blocks, which have have use-def cycles. This fixes PR7514. llvm-svn: 107071
* Generalize AAEval so that it can be used both per-function andDan Gohman2010-06-281-38/+97
| | | | | | | interprocedurally. Note that as of this writing, existing alias analysis passes are not prepared to be used interprocedurally. llvm-svn: 107013
* Use named MDNode, llvm.dbg.sp, to collect subprogram info. This will be used ↵Devang Patel2010-06-281-11/+23
| | | | | | to emit local variable's debug info of deleted functions. llvm-svn: 106989
* Do not forget last element, function, while creating Subprogram definition ↵Devang Patel2010-06-271-1/+2
| | | | | | MDNode from subprogram declare MDNode. llvm-svn: 106985
* Eliminate a redundant FoldingSet lookup.Dan Gohman2010-06-251-3/+3
| | | | llvm-svn: 106872
* Don't try to preserve pointer types in SCEVConstants; the old codeDan Gohman2010-06-241-12/+8
| | | | | | was over-complicated. llvm-svn: 106760
* Make the trunc code consistent with the zext and sext code in itsDan Gohman2010-06-241-1/+2
| | | | | | handling of pointer types. llvm-svn: 106757
* use ArgOperand accessorsGabor Greif2010-06-232-13/+13
| | | | llvm-svn: 106697
* use the new isFreeCall API and ArgOperand accessorsGabor Greif2010-06-231-12/+13
| | | | llvm-svn: 106692
* minor enhancement to llvm::isFreeCall API: return CallInst; no functional changeGabor Greif2010-06-231-8/+8
| | | | llvm-svn: 106686
* use ArgOperand gettersGabor Greif2010-06-231-3/+3
| | | | llvm-svn: 106685
* Replace ScalarEvolution's private copy of getLoopPredecessorDan Gohman2010-06-221-19/+2
| | | | | | with LoopInfo's public copy. llvm-svn: 106603
* Use pre-increment instead of post-increment when the result is not used.Dan Gohman2010-06-221-2/+2
| | | | llvm-svn: 106542
* Allow "exhaustive" trip count evaluation on phi nodes with allDan Gohman2010-06-221-9/+7
| | | | | | constant operands. llvm-svn: 106537
* Use single interface, using twine, to get named metadata.Devang Patel2010-06-221-2/+1
| | | | | | getNamedMetadata(). llvm-svn: 106518
* Do not rely on Twine temporaries to survive.Devang Patel2010-06-221-4/+4
| | | | llvm-svn: 106515
* Use A.append(...) instead of A.insert(A.end(), ...) when A is aDan Gohman2010-06-212-11/+10
| | | | | | SmallVector, and other SmallVector simplifications. llvm-svn: 106452
* Do not directly use function names to construct new name for named metadata.Devang Patel2010-06-211-1/+8
| | | | | | "llvm.dbg.lv.~A" is not a valid name. llvm-svn: 106438
* Restore a call to rememberInstruction which was accidentally droppedDan Gohman2010-06-191-0/+1
| | | | | | in refactoring. llvm-svn: 106398
* Fix ScalarEvolution's "exhaustive" trip count evaluation code to avoidDan Gohman2010-06-191-2/+5
| | | | | | | | assuming that loops are in canonical form, as ScalarEvolution doesn't depend on LoopSimplify itself. Also, with indirectbr not all loops can be simplified. This fixes PR7416. llvm-svn: 106389
* Factor out duplicated code for reusing and inserting casts intoDan Gohman2010-06-191-54/+46
| | | | | | a helper function. llvm-svn: 106388
* Revert r106304 (105548 and friends), which are the SCEVComplexityCompareDan Gohman2010-06-181-38/+138
| | | | | | optimizations. There is still some nondeterminism remaining. llvm-svn: 106306
* Reapply 105540, 105542, and 105548, and revert r105732.Dan Gohman2010-06-181-138/+38
| | | | llvm-svn: 106304
* Reapply 105546.Dan Gohman2010-06-181-7/+13
| | | | llvm-svn: 106302
* Reapply 105544.Dan Gohman2010-06-181-2/+2
| | | | llvm-svn: 106301
* Remove getIntegerSCEV; it's redundant with getConstant, and getConstantDan Gohman2010-06-181-7/+0
| | | | | | is more consistent with the ConstantInt API. llvm-svn: 106281
* Eliminate unnecessary uses of getZExtValue().Dan Gohman2010-06-181-1/+1
| | | | llvm-svn: 106279
* Fix a typo in a comment.Dan Gohman2010-06-181-1/+1
| | | | llvm-svn: 106260
* Simplify this code.Dan Gohman2010-06-171-11/+3
| | | | llvm-svn: 106254
* A few more places where SCEVExpander bits need to skip over debug intrinsicsJim Grosbach2010-06-161-3/+4
| | | | | | when iterating through instructions. Yet more work for rdar://7797940 llvm-svn: 106149
* Check function pointer first, before comparing function names.Devang Patel2010-06-161-0/+2
| | | | llvm-svn: 106088
* Use separate named MDNode to hold each function's local variable info.Devang Patel2010-06-161-2/+6
| | | | | | This speeds up local variable handling in DwarfDebug. llvm-svn: 106075
* Support for nested functions/classes in debug output. (Again.) Radar 7424645.Stuart Hastings2010-06-111-3/+14
| | | | llvm-svn: 105828
* Delete duplicate function.Stuart Hastings2010-06-111-12/+0
| | | | llvm-svn: 105827
* Revert 105540, 105542, 105544, 105546, and 105548 to unbreak bootstrapping.Evan Cheng2010-06-091-53/+147
| | | | llvm-svn: 105740
* Pulled CodeMetrics out of InlineCost.h and made it a bit more general, so it ↵Kenneth Uildriks2010-06-091-7/+20
| | | | | | can be reused from PartialSpecializationCost llvm-svn: 105725
* The FoldingSet hash data includes pointer values, so it isn'tDan Gohman2010-06-071-21/+28
| | | | | | | determinstic. Instead, give SCEV objects an arbitrary sequence number. llvm-svn: 105548
* Optimize this code somewhat by taking advantage of the factDan Gohman2010-06-071-7/+13
| | | | | | that the operands are sorted. llvm-svn: 105546
* Micro-optimize this, to speed up this hotspot in debug builds a little.Dan Gohman2010-06-071-2/+2
| | | | llvm-svn: 105544
* Micro-optimize this.Dan Gohman2010-06-071-2/+4
| | | | llvm-svn: 105542
* Optimize ScalarEvolution's SCEVComplexityCompare predicate: don't goDan Gohman2010-06-071-123/+14
| | | | | | | | | | | scrounging through SCEVUnknown contents and SCEVNAryExpr operands; instead just do a simple deterministic comparison of the precomputed hash data. Also, since this is more precise, it eliminates the need for the slow N^2 duplicate detection code. llvm-svn: 105540
* Create new accessors to get arguments for call/invoke instructions. It breaksBill Wendling2010-06-071-4/+4
| | | | | | | | encapsulation to force the users of these classes to know about the internal data structure of the Operands structure. It also can lead to errors, like in the MSIL writer. llvm-svn: 105539
* Revert 105492 & 105493 due to a testcase regression. Radar 7424645.Stuart Hastings2010-06-051-18/+18
| | | | llvm-svn: 105511
OpenPOWER on IntegriCloud