summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
...
* Change 'while' loop to 'do' loop.Wojciech Matyjewicz2008-06-141-4/+11
| | | | | | | | | Add a safety measure. It isn't safe to assume in ScalarEvolutionExpander that all loops are in canonical form (but it should be safe for loops that have AddRecs). xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx llvm-svn: 52275
* Crash less. The i64 restriction in BinomialCoefficient caused some problemsNick Lewycky2008-06-131-24/+30
| | | | | | | | with code that was expecting different bit widths for different values. Make getTruncateOrZeroExtend a method on ScalarEvolution, and use it. llvm-svn: 52248
* Expose a public interface to this pass.Chris Lattner2008-06-051-40/+12
| | | | llvm-svn: 52029
* Let libcall semantics decide whether it knows about functions Chris Lattner2008-06-051-2/+2
| | | | | | with definitions or not. llvm-svn: 52028
* Update comments and documentation to reflect that GCSE and ValueNumbering areMatthijs Kooijman2008-06-051-0/+4
| | | | | | deprecated by the GVN and GVNPRE passes. llvm-svn: 51983
* Replace two manual loops with calls to CallSite::hasArguments (no functional ↵Matthijs Kooijman2008-06-041-3/+1
| | | | | | changes). llvm-svn: 51947
* Add #includes required by GCC 4.3, thanks for Zhongxing XuChris Lattner2008-06-041-0/+1
| | | | | | for reporting this. llvm-svn: 51926
* Remove unneeded code I added.Chris Lattner2008-06-021-6/+3
| | | | llvm-svn: 51878
* Fixes PR2395. Looking for a constant in a GEP tail (when the first GEP Wojciech Matyjewicz2008-06-021-1/+7
| | | | | | | | is longer than the second one) should stop after finding one. Added break instruction guarantees it. It also changes difference between offsets to absolute value of this difference in the condition. llvm-svn: 51875
* move CannotBeNegativeZero to ValueTracking. Simplify some signbit comparisons.Chris Lattner2008-06-021-0/+50
| | | | llvm-svn: 51864
* move ComputeMaskedBits, MaskedValueIsZero, and ComputeNumSignBitsChris Lattner2008-06-021-0/+709
| | | | | | | out of instcombine into a new file in libanalysis. This also teaches ComputeNumSignBits about the number of sign bits in a constantint. llvm-svn: 51863
* Remember to update the reverse non-local cache when cleaning up dirty ↵Owen Anderson2008-06-011-0/+5
| | | | | | entries. This fixes PR2397. llvm-svn: 51846
* Make ping more aggressive in finding nonlocal caching errors.Owen Anderson2008-06-011-0/+3
| | | | llvm-svn: 51845
* Fix a typo in a comment.Dan Gohman2008-05-301-1/+1
| | | | llvm-svn: 51718
* Fix a copy+paste error in a comment.Dan Gohman2008-05-301-1/+1
| | | | llvm-svn: 51717
* Add newline at end of file.Owen Anderson2008-05-291-1/+1
| | | | llvm-svn: 51701
* Force postdom to be linked into opt and bugpoint, even though it is no ↵Owen Anderson2008-05-291-0/+8
| | | | | | longer used by any passes. llvm-svn: 51686
* convert another operand loop to iterator formulationGabor Greif2008-05-291-3/+3
| | | | llvm-svn: 51661
* Use Function::getEntryBlock instead of Function::begin, for clarity.Dan Gohman2008-05-271-1/+1
| | | | llvm-svn: 51613
* Print debug output when any edge becomes executable, includingDan Gohman2008-05-271-3/+3
| | | | | | the first visited edge. llvm-svn: 51612
* Fix some constructs that gcc-4.4 warns about.Duncan Sands2008-05-271-1/+2
| | | | llvm-svn: 51591
* Don't treat values as signed when looking at loop steppings in HowForToNonZero.Nick Lewycky2008-05-251-2/+2
| | | | llvm-svn: 51560
* "ret (constexpr)" can't be folded into a Constant. Add a method toNick Lewycky2008-05-251-16/+45
| | | | | | | | | | Analysis/ConstantFolding to fold ConstantExpr's, then make instcombine use it to try to use targetdata to fold constant expressions on void instructions. Also extend the icmp(inttoptr, inttoptr) folding to handle the case where int size != ptr size. llvm-svn: 51559
* Use isSingleValueType instead of isFirstClassType toDan Gohman2008-05-221-1/+1
| | | | | | exclude struct and array types. llvm-svn: 51452
* transform more loops to iterator form, detabifyGabor Greif2008-05-222-7/+8
| | | | llvm-svn: 51436
* Rewrite operand loops to use iterators. This shrinks .o file (at gcc4.0.1 ↵Gabor Greif2008-05-221-4/+5
| | | | | | -O3 x86) substantially (>500 bytes). Reason still unknown. llvm-svn: 51423
* Free and vaarg are not really volatile.Chris Lattner2008-05-221-9/+2
| | | | llvm-svn: 51407
* suppress gcc3.4.6's <no value returned> warningsGabor Greif2008-05-211-0/+2
| | | | llvm-svn: 51372
* Fix PR2346 by marking vaarg as volatile so that licm doesn't try toChris Lattner2008-05-201-1/+4
| | | | | | hoist them. llvm-svn: 51356
* Add a bool to isEdgeFeasible that tells it whether to treat unknownChris Lattner2008-05-201-7/+19
| | | | | | value as undef or untracked. llvm-svn: 51295
* API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. ↵Gabor Greif2008-05-161-4/+4
| | | | | | Legacy interfaces will be in place for some time. (Merge from use-diet branch.) llvm-svn: 51200
* Use static and anonymous namespaces consistently with other passes.Dan Gohman2008-05-151-8/+8
| | | | llvm-svn: 51156
* Fix memdep's handling of invokes when finding the dependency of another callOwen Anderson2008-05-131-1/+1
| | | | | | instruction. This fixes some Ada miscompiles reported in PR2324. llvm-svn: 51069
* Clean up the use of static and anonymous namespaces. This turned upDan Gohman2008-05-1318-136/+143
| | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
* prune #includes.Chris Lattner2008-05-121-3/+0
| | | | llvm-svn: 50962
* Add a new SparsePropagation analysis utility, which allows you to doChris Lattner2008-05-121-0/+320
| | | | | | | | SCCP like sparse lattice analysis with relative ease. Just pick your lattice function and implement the transfer function and you're good. Just make sure you don't break monotonicity ;-) llvm-svn: 50961
* put LibCallAliasAnalysis into anonymous namespace to avoidTorok Edwin2008-05-091-1/+1
| | | | | | clashes on ::X llvm-svn: 50912
* Remove dead return. Thanks to Bill for the review!Chris Lattner2008-05-081-2/+0
| | | | llvm-svn: 50863
* Add support for constant folding the 'offsetof' pattern even if theChris Lattner2008-05-081-16/+23
| | | | | | base is not zero. This fixes test/C++Frontend/2008-05-07-CrazyOffsetOf.cpp llvm-svn: 50840
* Add a new LibCallAliasAnalysis pass, which is parameterizedChris Lattner2008-05-071-0/+169
| | | | | | | | | | by an instance of LibCallInfo to provide mod/ref info of standard library functions. This is powerful enough to say that 'sqrt' is readonly except that it modifies errno, or that "printf doesn't store to memory unless the %n constraint is present" etc. llvm-svn: 50827
* Add a new interface for describing the behavior of library calls. ThisChris Lattner2008-05-071-0/+65
| | | | | | | | | Currently is sufficient to describe mod/ref behavior but will hopefully eventually be extended for other purposes. This isn't used by anything yet. llvm-svn: 50820
* Fix typo and indentation.Nick Lewycky2008-05-061-2/+2
| | | | llvm-svn: 50706
* Make several variable declarations static.Dan Gohman2008-05-064-13/+14
| | | | llvm-svn: 50696
* Remove uses of llvm/System/IncludeFile.h that are no longer needed.Dan Gohman2008-05-063-9/+0
| | | | llvm-svn: 50695
* Implement destructor for PostDominatorTree to eliminate a memory leak.Torok Edwin2008-05-031-0/+5
| | | | llvm-svn: 50607
* Add assert.Devang Patel2008-05-021-0/+1
| | | | llvm-svn: 50596
* Fix the way AliasSet::print prints "may alias".Dan Gohman2008-04-211-1/+1
| | | | llvm-svn: 50051
* Fix a "large integer implicitly truncated to unsigned type"Duncan Sands2008-04-211-1/+1
| | | | | | warning. llvm-svn: 50033
* (re)fix handling of UGT. Pointed out by Nick Lewycky.Dale Johannesen2008-04-201-1/+2
| | | | llvm-svn: 49991
* Switch to using Simplified ConstantFP::get API.Chris Lattner2008-04-202-13/+11
| | | | llvm-svn: 49977
OpenPOWER on IntegriCloud