summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove context sensitivity concerns from interprocedural-basic-aa, andDan Gohman2010-07-011-35/+55
| | | | | | | make it more aggressive in cases where both pointers are known to live in the same function. llvm-svn: 107420
* In ScalarEvolution::forgetValue, eliminate any SCEVUnknownDan Gohman2010-06-301-0/+20
| | | | | | | | | | | entries associated with the value being erased in the folding set map. These entries used to be harmless, because a SCEVUnknown doesn't store any information about its Value*, so having a new Value allocated at the old Value's address wasn't a problem. But now that ScalarEvolution is storing more information about values, this is no longer safe. llvm-svn: 107316
* Revert the part of r107257 which introduced new logic for usingDan Gohman2010-06-301-82/+11
| | | | | | | nsw and nuw flags from IR Instructions. On further consideration, this isn't valid. llvm-svn: 107298
* Improve ScalarEvolution's nsw and nuw preservation.Dan Gohman2010-06-301-31/+105
| | | | llvm-svn: 107257
* When computing a new ConservativeResult, intersect it withDan Gohman2010-06-301-1/+2
| | | | | | the old one instead of replacing it, to be more precise. llvm-svn: 107256
* Rework scev-aa's basic computation so that it doesn't dependDan Gohman2010-06-301-7/+31
| | | | | | | | on ScalarEvolution successfully folding and preserving range information for both A-B and B-A. Now, if it gets either one, it's sufficient. llvm-svn: 107249
* Simplify.Dan Gohman2010-06-301-2/+1
| | | | llvm-svn: 107248
* 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
OpenPOWER on IntegriCloud