summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix a scalar evolution bug. Reversing everythingDale Johannesen2008-04-181-2/+1
| | | | | | does not work because of 0; 2>0 but -2U is also >0. llvm-svn: 49928
* Make GVN able to remove unnecessary calls to read-only functions again.Owen Anderson2008-04-171-2/+1
| | | | llvm-svn: 49842
* Major repairs to the post-dominators implementation. Patch from Florian ↵Owen Anderson2008-04-161-0/+4
| | | | | | Brandner! llvm-svn: 49768
* Don't assume a tail call can't reference a byvalDale Johannesen2008-04-151-2/+4
| | | | | | argument to the outer function, this isn't correct. llvm-svn: 49731
* Teach AliasSetTracker about VAArgInst.Dan Gohman2008-04-141-0/+17
| | | | llvm-svn: 49674
* In the special case, call the comparison function instead ofDan Gohman2008-04-141-2/+2
| | | | | | | | manually performing the comparison. This allows the special case to work correctly even in the case where someone is experimenting with a different comparison function :-). llvm-svn: 49670
* add a new CallGraphNode::removeCallEdgeFor method, tidy some comments.Chris Lattner2008-04-131-0/+14
| | | | llvm-svn: 49617
* Fix a typo in a comment.Dan Gohman2008-04-101-1/+1
| | | | llvm-svn: 49504
* Fix for PR2190. Memdep's non-local caching was checking dirtied blocks in theOwen Anderson2008-04-101-2/+4
| | | | | | wrong order. llvm-svn: 49499
* Fix PR 2169.Daniel Berlin2008-04-071-0/+3
| | | | llvm-svn: 49339
* API changes for class Use size reduction, wave 1.Gabor Greif2008-04-061-3/+3
| | | | | | | | Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. llvm-svn: 49277
* Set blockBegin to point to the beginning of the block,Dan Gohman2008-03-311-2/+2
| | | | | | not the end. llvm-svn: 48999
* Expose Function::viewCFG and Function::viewCFGOnly to bindings.Erick Tryzelaar2008-03-311-0/+9
| | | | llvm-svn: 48982
* minor code cleanups, allow constant folding sinf/cosf.Chris Lattner2008-03-301-20/+26
| | | | llvm-svn: 48961
* Don't include <map> in Pass.h, which doesn't need it. This requiresDan Gohman2008-03-211-0/+1
| | | | | | adding <map> to many files that actually do need it. llvm-svn: 48667
* These passes preserve CFG.Devang Patel2008-03-203-4/+4
| | | | | | This patch fixes Benchmarks/Trimaran/enc-pc1/enc-pc1 failure reported by Grawp-PIC i386 nightly tester llvm-svn: 48623
* enable -analyze for andersensAndrew Lenharth2008-03-201-19/+39
| | | | llvm-svn: 48601
* Restore isCFGOnly property of various analysis passes.Devang Patel2008-03-2019-23/+23
| | | | llvm-svn: 48579
* PassInfo keep tracks whether a pass is an analysis pass or not.Devang Patel2008-03-1920-37/+39
| | | | llvm-svn: 48554
* Do not use virtual function to identify an analysis pass.Devang Patel2008-03-1910-53/+12
| | | | llvm-svn: 48520
* Fix PR 2160 by making sure arguments to external functions get marked as ↵Daniel Berlin2008-03-181-18/+36
| | | | | | pointing to anything llvm-svn: 48509
* Dial down gcc's warnings: don't use 0UL when 0U suffices (and when theScott Michel2008-03-181-4/+4
| | | | | | variables and methods themselves only use unsigned.) llvm-svn: 48492
* Identify Analysis pass.Devang Patel2008-03-1810-0/+41
| | | | | | | Do not run analysis pass again if analysis info is still available. This fixes PR1441. llvm-svn: 48476
* Add Hybrid Cycle Detection to Andersen's analysis.Daniel Berlin2008-03-051-32/+272
| | | | | | Patch by Curtis Dunham. llvm-svn: 47959
* Fix http://llvm.org/bugs/show_bug.cgi?id=2104 by ordering lexicographically ↵Gabor Greif2008-02-281-5/+12
| | | | | | what gets printed. Be const-correct in PrintResults and uninline it too llvm-svn: 47712
* De-tabify.Bill Wendling2008-02-261-8/+8
| | | | llvm-svn: 47598
* Temporarily reverting 46959.Evan Cheng2008-02-251-2/+2
| | | | llvm-svn: 47542
* Change a C-style cast to const_cast, to avoid a -Wcast-qual warning.Dan Gohman2008-02-211-1/+1
| | | | llvm-svn: 47437
* Simplify this code, no functionality change.Nick Lewycky2008-02-211-5/+2
| | | | llvm-svn: 47434
* GlobalValues are Constants, remove redundant code. Also fix typo in a comment.Nick Lewycky2008-02-211-3/+1
| | | | llvm-svn: 47433
* Unbreak build with gcc 4.3: provide missed includes and silence most ↵Anton Korobeynikov2008-02-204-4/+7
| | | | | | annoying warnings. llvm-svn: 47367
* Use getConstant for ConstantInts.Nick Lewycky2008-02-201-2/+2
| | | | llvm-svn: 47361
* Add 'umax' similar to 'smax' SCEV. Closes PR2003.Nick Lewycky2008-02-202-45/+156
| | | | | | | | | | | | | | | Parse reversed smax and umax as smin and umin and express them with negative or binary-not SCEVs (which are really just subtract under the hood). Parse 'xor %x, -1' as (-1 - %x). Remove dead code (ConstantInt::get always returns a ConstantInt). Don't use getIntegerSCEV(-1, Ty). The first value is an int, then it gets passed into a uint64_t. Instead, create the -1 directly from ConstantInt::getAllOnesValue(). llvm-svn: 47360
* Fix a compiler warning.Duncan Sands2008-02-191-1/+1
| | | | llvm-svn: 47328
* In addition to arguments passed to it, memcpy (and all other calls) can ↵Owen Anderson2008-02-191-1/+2
| | | | | | ModRef pointers that alias their arguments as well. This fixes PR2057. llvm-svn: 47317
* don't bother calling getUnderlyingObject for non-pointers.Chris Lattner2008-02-181-1/+2
| | | | llvm-svn: 47272
* Since we're not checking for the more general AllocationInst first, we need ↵Owen Anderson2008-02-181-1/+1
| | | | | | | | to explicitly check that Object is an Argument before casting it to one. llvm-svn: 47268
* This check is not correct for mallocs, so exclude them earlier.Owen Anderson2008-02-181-2/+2
| | | | llvm-svn: 47263
* Fix a comment, and a bug where we weren't applying the tail call logic in ↵Owen Anderson2008-02-181-6/+8
| | | | | | cases that failed the first test. llvm-svn: 47253
* Fix bugs that Chris noticed in my last patch.Owen Anderson2008-02-181-9/+17
| | | | llvm-svn: 47252
* bitcasts of pointers are always pointers.Chris Lattner2008-02-181-5/+2
| | | | | | | If we see a memcpy of a pointer, make sure to check later uses of the pointer as well. llvm-svn: 47250
* Teach getModRefInfo that memcpy, memmove, and memset don't "capture" memory ↵Owen Anderson2008-02-171-3/+13
| | | | | | | | | addresses. Also, noalias arguments are be considered "like" stack allocated ones for this purpose, because the only way they can be modref'ed is if they escape somewhere in the current function. llvm-svn: 47247
* Fix typo. Thanks to Duncan for noticing.Wojciech Matyjewicz2008-02-131-1/+1
| | | | llvm-svn: 47062
* Add comments as per review feedback.Wojciech Matyjewicz2008-02-131-5/+13
| | | | llvm-svn: 47061
* Re-apply the patch to improve the optimizations of memcpy's, with severalOwen Anderson2008-02-121-1/+41
| | | | | | bugs fixed. This now passes PPC bootstrap. llvm-svn: 47026
* Fix PR2002. Suppose n is the initial value for the induction Wojciech Matyjewicz2008-02-121-6/+4
| | | | | | | | | | variable (with step 1) and m is its final value. Then, the correct trip count is SMAX(m,n)-n. Previously, we used SMAX(0,m-n), but m-n may overflow and can't in general be interpreted as signed. Patch by Nick Lewycky. llvm-svn: 47007
* If the LHS of the comparison is a loop-invariant we also want to move it Wojciech Matyjewicz2008-02-111-2/+2
| | | | | | | | to the RHS. This simple change allows to compute loop iteration count for loops with condition similar to the one in the testcase (which seems to be quite common). llvm-svn: 46959
* Fix PR1798 - an error in the evaluation of SCEVAddRecExpr at an Wojciech Matyjewicz2008-02-111-49/+100
| | | | | | | | | | | | | | | | | | | | | | | | | arbitrary iteration. The patch: 1) changes SCEVSDivExpr into SCEVUDivExpr, 2) replaces PartialFact() function with BinomialCoefficient(); the computations (essentially, the division) in BinomialCoefficient() are performed with the apprioprate bitwidth necessary to avoid overflow; unsigned division is used instead of the signed one. Computations in BinomialCoefficient() require support from the code generator for APInts. Currently, we use a hack rounding up the neccessary bitwidth to the nearest power of 2. The hack is easy to turn off in future. One remaining issue: we assume the divisor of the binomial coefficient formula can be computed accurately using 16 bits. It means we can handle AddRecs of length up to 9. In future, we should use APInts to evaluate the divisor. Thanks to Nicholas for cooperation! llvm-svn: 46955
* We should check that existing cast operation has the appropriate opcode ↵Wojciech Matyjewicz2008-02-091-19/+21
| | | | | | before we reuse it. llvm-svn: 46908
* Throttle the non-local dependence analysis for basic blocks with more than ↵Tanya Lattner2008-02-061-7/+20
| | | | | | 50 predecessors. Added command line option to play with this threshold. llvm-svn: 46790
OpenPOWER on IntegriCloud