summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Fix PR681 by using the standard Lengauer and Tarjan algorithm for dominatorNate Begeman2006-03-111-142/+191
| | | | | | | | | | set construction, rather than intersecting various std::sets. This reduces the memory usage for the testcase in PR681 from 496 to 26MB of ram on my darwin system, and reduces the runtime from 32.8 to 0.8 seconds on a 2.5GHz G5. This also enables future code sharing between Dom and PostDom now that they share near-identical implementations. llvm-svn: 26707
* Use autogenerated mod/ref info for intrinsics.Chris Lattner2006-03-091-22/+26
| | | | llvm-svn: 26670
* Fix a crash compiling ObsequiChris Lattner2006-03-041-5/+12
| | | | llvm-svn: 26529
* Be more conservative with our symbolic alias analysis. In particular,Chris Lattner2006-03-041-6/+35
| | | | | | | | | | don't assume that A[1][0] and A[0][i] can't alias. "i" might be out of range, or even negative. This fixes a miscompilation of 188.ammp (which does bad pointer tricks) with the new CFE. Testcase here: Analysis/BasicAA/2006-03-03-BadArraySubscript.ll llvm-svn: 26515
* updates for recent changesChris Lattner2006-03-031-2/+4
| | | | llvm-svn: 26481
* Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolvingChris Lattner2006-03-031-3/+6
| | | | | | PR709, and paving the way for future progress. llvm-svn: 26476
* add an assertChris Lattner2006-02-141-1/+2
| | | | llvm-svn: 26178
* Pull the InsertCastOfTo out of the header, implement CSE'ing of arguments.Chris Lattner2006-02-041-0/+51
| | | | llvm-svn: 25973
* Value# select instructions, allowing -gcse to remove duplicatesChris Lattner2006-02-041-1/+36
| | | | llvm-svn: 25969
* Add explicit iostream #includesChris Lattner2006-01-229-1/+9
| | | | llvm-svn: 25513
* Add explicit #includes of <iostream>Chris Lattner2006-01-222-0/+2
| | | | llvm-svn: 25509
* For PR411:Reid Spencer2006-01-161-7/+18
| | | | | | | | | | | | | | | | This patch is an incremental step towards supporting a flat symbol table. It de-overloads the intrinsic functions by providing type-specific intrinsics and arranging for automatically upgrading from the old overloaded name to the new non-overloaded name. Specifically: llvm.isunordered -> llvm.isunordered.f32, llvm.isunordered.f64 llvm.sqrt -> llvm.sqrt.f32, llvm.sqrt.f64 llvm.ctpop -> llvm.ctpop.i8, llvm.ctpop.i16, llvm.ctpop.i32, llvm.ctpop.i64 llvm.ctlz -> llvm.ctlz.i8, llvm.ctlz.i16, llvm.ctlz.i32, llvm.ctlz.i64 llvm.cttz -> llvm.cttz.i8, llvm.cttz.i16, llvm.cttz.i32, llvm.cttz.i64 New code should not use the overloaded intrinsic names. Warnings will be emitted if they are used. llvm-svn: 25366
* Change ET-Forest to automatically recalculate its DFSnum's if too many slowChris Lattner2006-01-141-2/+2
| | | | | | | | queries are made. Patch by Daniel Berlin! llvm-svn: 25323
* Add a new CallGraph::getOrInsertFunction for clients to use when updatingChris Lattner2006-01-141-16/+19
| | | | | | the callgraph. llvm-svn: 25317
* add a dump method to CallGraphChris Lattner2006-01-141-0/+4
| | | | llvm-svn: 25314
* Add bswap intrinsics as documented in the Language ReferenceNate Begeman2006-01-142-1/+17
| | | | llvm-svn: 25309
* Switch loopinfo to using ETForest instead of DominatorSet to compute itself.Chris Lattner2006-01-111-9/+9
| | | | | | Patch by Daniel Berlin! llvm-svn: 25199
* Remove unused inclusion of SymbolTable.hReid Spencer2006-01-101-1/+0
| | | | llvm-svn: 25170
* Fix a problem exposed by the et-forest work. Load-vn needs these passes liveChris Lattner2006-01-081-3/+3
| | | | | | whenever it is live, not just when load-vn is computed initially llvm-svn: 25146
* Initial implementation of the ET-Forest data structure for dominators andChris Lattner2006-01-081-0/+63
| | | | | | post-dominators. This code was written/adapted by Daniel Berlin! llvm-svn: 25144
* Make the -print-alias-sets pass work for printing out something other thanChris Lattner2006-01-031-11/+3
| | | | | | the default aa impl results. llvm-svn: 25062
* Separate the call graph implementation from its interface. This implementsChris Lattner2005-12-221-105/+178
| | | | | | | | | the rough idea sketched out in http://nondot.org/sabre/LLVMNotes/CallGraphClass.txt, allowing new spiffy implementations of the callgraph interface to be built. Many thanks to Saem Ghani for contributing this! llvm-svn: 24944
* Prefix DSA specific options with dsa.John Criswell2005-12-191-4/+4
| | | | | | Make the dsa-alloc-list and dsa-free-list options hidden. llvm-svn: 24864
* Added an option to specify the names of heap freeing functions.John Criswell2005-12-191-0/+20
| | | | llvm-svn: 24863
* Added a command line option that allows the user to specify a list ofJohn Criswell2005-12-191-0/+19
| | | | | | functions that allocate memory. llvm-svn: 24862
* Collapsing node if variable length struct with final field of length zeroSumant Kowshik2005-12-061-1/+18
| | | | llvm-svn: 24621
* post-dom-frontiers requires proper post-dominanceChris Lattner2005-11-181-1/+1
| | | | llvm-svn: 24409
* prevent cse of readcyclecounterAndrew Lenharth2005-11-111-1/+0
| | | | llvm-svn: 24303
* continued readcyclecounter supportAndrew Lenharth2005-11-111-0/+1
| | | | llvm-svn: 24300
* Fix a problem that Nate noticed with LSR:Chris Lattner2005-10-301-1/+26
| | | | | | | | | | | | | | | | | | | | When inserting code for an addrec expression with a non-unit stride, be more careful where we insert the multiply. In particular, insert the multiply in the outermost loop we can, instead of the requested insertion point. This allows LSR to notice the mul in the right loop, reducing it when it gets to it. This allows it to reduce the multiply, where before it missed it. This happens quite a bit in the test suite, for example, eliminating 2 multiplies in art, 3 in ammp, 4 in apsi, reducing from 1050 multiplies to 910 muls in galgel (!), from 877 to 859 in applu, and 36 to 30 in bzip2. This speeds up galgel from 16.45s to 16.01s, applu from 14.21 to 13.94s and fourinarow from 66.67s to 63.48s. This implements Transforms/LoopStrengthReduce/nested-reduce.ll llvm-svn: 24102
* remove a dead fileChris Lattner2005-10-291-355/+0
| | | | llvm-svn: 24085
* Move some constant folding functions into LLVMAnalysis since they are usedJohn Criswell2005-10-271-0/+172
| | | | | | by Analysis and Transformation passes. llvm-svn: 24038
* Move some constant folding code shared by Analysis and Transform passesJohn Criswell2005-10-271-1/+1
| | | | | | | | into the LLVMAnalysis library. This allows LLVMTranform and LLVMTransformUtils to be archives and linked with LLVMAnalysis.a, which provides any missing definitions. llvm-svn: 24036
* Remove this pass, it is not usefulChris Lattner2005-10-241-106/+0
| | | | llvm-svn: 23949
* DONT_BUILD_RELINKED is gone and implied by BUILD_ARCHIVE nowChris Lattner2005-10-242-3/+1
| | | | llvm-svn: 23940
* Only build .a file versions of these libraries, instead of .a and .o versions.Chris Lattner2005-10-242-0/+2
| | | | | | This should speed up build times. llvm-svn: 23933
* don't bother building the archive version of this libraryChris Lattner2005-10-241-1/+1
| | | | llvm-svn: 23927
* expose a ctorChris Lattner2005-10-241-0/+3
| | | | llvm-svn: 23924
* implement some prototypesChris Lattner2005-10-242-0/+10
| | | | llvm-svn: 23920
* move this to the analyze toolChris Lattner2005-10-241-105/+0
| | | | llvm-svn: 23918
* wrap a long lineChris Lattner2005-09-281-1/+2
| | | | llvm-svn: 23507
* Add a new getLoopLatch() method.Chris Lattner2005-09-121-1/+25
| | | | llvm-svn: 23315
* floor/ceil don't read/write memory. This allows gcse to eliminate 6 callsChris Lattner2005-08-241-0/+2
| | | | | | in mesa. llvm-svn: 23015
* Fix Transforms/LoopStrengthReduce/2005-08-15-AddRecIV.llChris Lattner2005-08-161-2/+3
| | | | llvm-svn: 22797
* Teach LLVM to know how many times a loop executes when constructed withChris Lattner2005-08-151-2/+110
| | | | | | a < expression, e.g.: for (i = m; i < n; ++i) llvm-svn: 22793
* Fix an obvious oopsChris Lattner2005-08-101-1/+1
| | | | llvm-svn: 22742
* implement two helper methodsChris Lattner2005-08-091-0/+28
| | | | llvm-svn: 22736
* * Unbreak optimized build (noticed by Eric van Riet Paap)Misha Brukman2005-08-041-3/+5
| | | | | | * Comment #endif clauses for readability llvm-svn: 22646
* add support for Graphviz when viewing CFGsChris Lattner2005-08-031-0/+20
| | | | llvm-svn: 22620
* Break SCEVExpander out of IndVarSimplify into its own .h/.cpp file so thatNate Begeman2005-07-301-0/+105
| | | | | | other passes may use it. llvm-svn: 22557
OpenPOWER on IntegriCloud