summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Fix a tiny bug that caused an incorrect assertion failure poolallocatingChris Lattner2004-03-131-4/+6
| | | | | | boxed-sim. llvm-svn: 12358
* Rename the intrinsic enum values for llvm.va_* from Intrinsic::va_* toChris Lattner2004-03-131-5/+3
| | | | | | Intrinsic::va*. This avoid conflicting with macros in the stdlib.h file. llvm-svn: 12356
* Fix a couple of minor problems. Because PHI nodes can use themselves, thisChris Lattner2004-03-121-4/+1
| | | | | | could cause infinite loops. Also, getUnderlyingObject can return null llvm-svn: 12351
* Implement mod/ref analysis for a trivial case where locals don't escape.Chris Lattner2004-03-121-0/+52
| | | | | | | This comes up when you have a local array on the stack and you never pass the address of elements around. llvm-svn: 12349
* Simplify code to process CallSites (thanks to Chris).Misha Brukman2004-03-121-4/+2
| | | | llvm-svn: 12334
* Evaluate ModRef information in addition to regular ol' pointer analysis.Misha Brukman2004-03-121-24/+93
| | | | llvm-svn: 12331
* Implement getModRefInfo() for DSA to calculate whether a function modifies orMisha Brukman2004-03-121-5/+39
| | | | | | references a pointer. llvm-svn: 12330
* Make code more readable.Misha Brukman2004-03-121-35/+31
| | | | llvm-svn: 12305
* Fix PR284: [indvars] Induction variable analysis violates LLVM invariantsChris Lattner2004-03-101-1/+5
| | | | llvm-svn: 12275
* implement new methodChris Lattner2004-03-091-0/+24
| | | | llvm-svn: 12264
* Switch to using edge profiling information as the basic source of profile infoChris Lattner2004-03-082-5/+73
| | | | | | from using basic block counts. llvm-svn: 12242
* Refactor implementationsChris Lattner2004-03-082-10/+3
| | | | llvm-svn: 12240
* Import the trace class from the reoptimizerChris Lattner2004-03-081-0/+50
| | | | llvm-svn: 12236
* If we have edge counts, we can produce block counts. I've verified thatChris Lattner2004-03-081-11/+67
| | | | | | | using an edge profile to produce block counts gives the exact same numbers as using a block count directly. llvm-svn: 12232
* Add initial support for reading edge counts. This will be improved to enableChris Lattner2004-03-081-0/+29
| | | | | | translation of edge counts into block/function counts when possible. llvm-svn: 12229
* Fix a bug handling globals that are constants, but are still externalChris Lattner2004-03-081-1/+1
| | | | llvm-svn: 12208
* Fix a minor bugChris Lattner2004-03-051-1/+2
| | | | llvm-svn: 12169
* Unbreak the build on Sparc.Misha Brukman2004-03-051-0/+2
| | | | llvm-svn: 12161
* Fix a bug in a previous checkin that broke 175.vprChris Lattner2004-03-041-1/+1
| | | | llvm-svn: 12128
* Add support for strto* and v*printfChris Lattner2004-03-041-0/+66
| | | | llvm-svn: 12127
* Add non-crappy support for varargsChris Lattner2004-03-041-6/+32
| | | | llvm-svn: 12126
* Implement a FIXME, improving the efficiency of DSA on povray.Chris Lattner2004-03-041-2/+16
| | | | | | | This reduces CBU time from 145s -> 122s (debug build), reduces # allocated nodes from 129420 to 116477. llvm-svn: 12125
* Speed up the cbu pass from taking somewhere near the age of the universe to ↵Chris Lattner2004-03-041-6/+28
| | | | | | about 90s on povray llvm-svn: 12123
* Fix BU datastructures with povray!Chris Lattner2004-03-041-11/+25
| | | | | | | | The problem was that we were merging a field of a node with a value that was deleted. Thanks to bugpoint for reducing povray to a nice small 3 function example. :) llvm-svn: 12116
* Minor changes, remove some debugging code that got checked in somehow.Chris Lattner2004-03-041-7/+10
| | | | | | | Make sure to scope the NodeMap passed into cloneInto so that it doesn't point to nodes that are deleted. Add some FIXME's for future performance enhancements. llvm-svn: 12115
* Only clone nodes that are needed in the caller, don't clone ALL aux calls. ↵Chris Lattner2004-03-041-20/+48
| | | | | | | | This improves povray from having ~600K nodes and 300K call nodes to 65K nodes and 25K call nodes. llvm-svn: 12109
* Fix a minor bug handling incomplete programsChris Lattner2004-03-031-1/+1
| | | | llvm-svn: 12105
* Fix a DSA bug that caused DSA to generate incredibly huge graphs and take ↵Chris Lattner2004-03-031-1/+34
| | | | | | | | | | forever to do it on povray. The problem is that we were not copying globals from callees to callers unless the existed in both graphs. We should have copied them in the case where the global pointed to a node that was copied as well. llvm-svn: 12104
* Deinline methods, add fast exitChris Lattner2004-03-031-0/+27
| | | | llvm-svn: 12102
* Fix a node mapping problem that was causing the pool allocator to locally ↵Chris Lattner2004-03-031-0/+3
| | | | | | | | allocate nodes that were globally live, thus breaking programs. llvm-svn: 12094
* FINALLY be able to get symbolic type names in the globals graph!Chris Lattner2004-03-021-1/+14
| | | | llvm-svn: 12082
* Really, only if reopenChris Lattner2004-03-021-1/+2
| | | | llvm-svn: 12080
* Correctly add an array marker on a node when appropriate!Chris Lattner2004-03-011-0/+4
| | | | llvm-svn: 12055
* Expand on my note-to-selfChris Lattner2004-03-011-1/+3
| | | | llvm-svn: 12029
* Only clone global nodes between graphs if both graphs have the global.Chris Lattner2004-02-272-13/+9
| | | | llvm-svn: 11928
* ADD MORE FUNCTIONS!Chris Lattner2004-02-271-14/+20
| | | | llvm-svn: 11927
* Be a good little compiler and handle direct calls efficiently, even if thereChris Lattner2004-02-261-10/+13
| | | | | | are beastly ConstantPointerRefs in the way... llvm-svn: 11883
* Fix typoChris Lattner2004-02-261-1/+1
| | | | llvm-svn: 11864
* The node doesn't have to be _no_ node flags, it just has to be complete andChris Lattner2004-02-261-2/+3
| | | | | | not have any globals. llvm-svn: 11863
* Add _more_ functionsChris Lattner2004-02-261-3/+20
| | | | llvm-svn: 11862
* Two changes:Chris Lattner2004-02-251-1/+4
| | | | | | | | | | | | | 1. Functions do not make things incomplete, only variables 2. Constant global variables no longer need to be marked incomplete, because we are guaranteed that the initializer for the global will be in the graph we are hacking on now. This makes resolution of indirect calls happen a lot more in the bu pass, supports things like vtables and the C counterparts (giant constant arrays of function pointers), etc... Testcase here: test/Regression/Analysis/DSGraph/constant_globals.ll llvm-svn: 11852
* When building local graphs, clone the initializer for constant globals into eachChris Lattner2004-02-251-7/+21
| | | | | | local graph that uses the global. llvm-svn: 11850
* Simplify the dead node elimination stuffChris Lattner2004-02-251-10/+12
| | | | | | | | | | Make the incompleteness marker faster by looping directly over the globals instead of over the scalars to find the globals Fix a bug where we didn't mark a global incomplete if it didn't have any outgoing edges. This wouldn't break any current clients but is still wrong. llvm-svn: 11848
* Add a bunch more functionsChris Lattner2004-02-251-8/+55
| | | | llvm-svn: 11847
* Try harder to get symbol infoChris Lattner2004-02-251-0/+3
| | | | llvm-svn: 11846
* Add a bunch more functions used by perlbmkChris Lattner2004-02-251-14/+50
| | | | llvm-svn: 11824
* Add support for 'rename'Chris Lattner2004-02-241-4/+9
| | | | llvm-svn: 11813
* Add support for remove, fwrite, and freadChris Lattner2004-02-241-22/+53
| | | | | | | Also fix problem where we didn't check to see if a node pointer was null. Though fclose(null) doesn't make a lot of sense, 300.twolf does it. llvm-svn: 11810
* Fix a soon-to-be-missing #includeChris Lattner2004-02-221-0/+1
| | | | llvm-svn: 11707
* Use isNull instead of getNode() to test for existence of a node, this is ↵Chris Lattner2004-02-221-6/+11
| | | | | | | | | cheaper. FIX MAJOR BUG, whereby we didn't merge null edges correctly. Correcting this fixes poolallocation on 175.vpr, and possibly others. llvm-svn: 11695
OpenPOWER on IntegriCloud