summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Minor cleanups (use dyn_cast instead of testing manually)Chris Lattner2002-04-011-6/+7
| | | | | | Shadow nodes now don't explicitly know their parent. llvm-svn: 2083
* Allow merging of identical call nodes. Make the shadow node pointed toChris Lattner2002-04-011-4/+18
| | | | | | by the call node noncritical before the call is destroyed. llvm-svn: 2082
* Increase limit for perimeterChris Lattner2002-04-011-1/+1
| | | | llvm-svn: 2081
* Unify the destruction code used for node pairs vs normal nodes. This wasChris Lattner2002-03-311-35/+36
| | | | | | | | causing a problem before because global values with incoming edges didn't copy the incoming edges to the node they were being merged from, causing the poolalloc pass to die. llvm-svn: 2079
* 1. Fix a leftover bug in generating memory instructions.Vikram S. Adve2002-03-311-36/+38
| | | | | | 2. Fix type used for TmpInstruction holding the return address. llvm-svn: 2075
* Added function getCallInstIndirectAddrVal() to set call interferenceVikram S. Adve2002-03-312-1/+11
| | | | | | for that value. llvm-svn: 2074
* Minor cleanup in printing constants. I think this included a bugVikram S. Adve2002-03-311-32/+14
| | | | | | | fix related to putting a read-write variable in a read-only section, but I'm not sure now. llvm-svn: 2073
* Add method clearCallInterference().Vikram S. Adve2002-03-311-0/+3
| | | | llvm-svn: 2071
* Include temp. values when computing max. size of stack frame!Vikram S. Adve2002-03-311-3/+3
| | | | llvm-svn: 2070
* Fix a bug in previous bug fix.Vikram S. Adve2002-03-311-6/+14
| | | | llvm-svn: 2069
* Bug fix: address used by indirect call instruction should alsoVikram S. Adve2002-03-311-16/+21
| | | | | | | be marked as having a Call Interference, even though it may not be live after the call. llvm-svn: 2068
* Add debug outputChris Lattner2002-03-311-11/+19
| | | | llvm-svn: 2066
* * Fix nondeleted type handle which could cause type pool corruption (andChris Lattner2002-03-311-1/+4
| | | | | | | a memory leak) * Fix memory leak of Argument nodes on function prototypes llvm-svn: 2065
* * Move the isEquivalentTo implementations here. They can probably be putChris Lattner2002-03-311-1/+39
| | | | | | | someplace nicer in the file though. * Add new dump method for debugging llvm-svn: 2064
* Print out the instruction instead of just the address!Chris Lattner2002-03-311-1/+3
| | | | llvm-svn: 2063
* * Move isEquivalentTo implementations to NodeImplChris Lattner2002-03-311-56/+91
| | | | | | | * Implement a new form of node folding to catch cases missed in Addtree * Add removeIndistinguishableNodePairs to merge calls (todo) and globals llvm-svn: 2062
* * Convert CallMap to be a vector, because the keys can change, and the mapChris Lattner2002-03-311-8/+45
| | | | | | | | doesn't resort! * Be more generous with the cached matches that we allow now. * Recursive calls should all work now! llvm-svn: 2061
* Fix CreateUIntSetInstruction() to handle sign extensions correctly.Vikram S. Adve2002-03-311-7/+37
| | | | llvm-svn: 2059
* * Catch and ignore (for now) return instructions in tranformed functionsChris Lattner2002-03-301-31/+58
| | | | | | | | | | | * Add more debugging output * Fix problems refering to wrong versions of various graphs * Build the pool descriptor map! * Clear the nodemapping map after building pool descriptor to avoid assert * Transform the NEw function body, not the old one... * Matrix.ll now works! llvm-svn: 2058
* * Clean up data structures [AllocDSNode -> DSNode]Chris Lattner2002-03-301-74/+232
| | | | | | | | | | | | | * TransformFunctionInfo now has call field form field mapping. May be removed in the future. * Moved the computation of "Scalars" into transformFunctionBody so transformFunction didn't have to recompute it. * Implement the node mapping calculation in preparation to calculate PoolDescriptors to pass to transformFunctionBody * Print out the node mapping [it looks right!] * Other minor changes llvm-svn: 2056
* Maintain enough information so that the pools for all of the nodes ofChris Lattner2002-03-301-44/+66
| | | | | | the graph can be passed around. llvm-svn: 2053
* Implement the first batch of transformations to the methods. So far it:Chris Lattner2002-03-291-2/+172
| | | | | | | | | | | * Converts malloc instructions to poolalloc * Converts free instructions to poolfree * Convert calls to call the new cloned hacked up versions Note that this does not modify hacked up stuff yet, just the top level function llvm-svn: 2052
* * s/Method/FunctionChris Lattner2002-03-291-10/+14
| | | | | | | * Implement a check to make sure a function is not internal and external at the same time llvm-svn: 2050
* Correctly clone the function with the extra argument types. Now we needChris Lattner2002-03-291-6/+74
| | | | | | | | | to modify the function next. This also properly recycles functions so that we don't get exponential code blowup in the common case. llvm-svn: 2049
* s/Method/FunctionChris Lattner2002-03-291-6/+6
| | | | llvm-svn: 2048
* New clone function routineChris Lattner2002-03-291-0/+90
| | | | llvm-svn: 2045
* Find out which calls in the function we need to transform and how.Chris Lattner2002-03-291-15/+189
| | | | | | Next step is to start hacking functions up. llvm-svn: 2044
* s/Method/FunctionChris Lattner2002-03-292-5/+5
| | | | llvm-svn: 2043
* Modularize code a bitChris Lattner2002-03-291-2/+25
| | | | llvm-svn: 2040
* Implement the first step of pool allocation - Creating, initialization, andChris Lattner2002-03-291-8/+82
| | | | | | destruction of the pools. llvm-svn: 2039
* Add an insert method to VAlueHolder to allow batch insertionChris Lattner2002-03-291-0/+30
| | | | llvm-svn: 2038
* Add new addTypeName method to Module classChris Lattner2002-03-291-0/+15
| | | | llvm-svn: 2037
* s/Method/FunctionChris Lattner2002-03-292-49/+49
| | | | llvm-svn: 2036
* s/Method/FunctionChris Lattner2002-03-296-29/+30
| | | | llvm-svn: 2035
* s/Method/FunctionChris Lattner2002-03-294-45/+46
| | | | llvm-svn: 2034
* Implement new getFunction and getOrInsertFunction methodsChris Lattner2002-03-291-0/+31
| | | | llvm-svn: 2033
* Simplify code a bit by using Module::getOrInsertFunctionChris Lattner2002-03-291-11/+2
| | | | llvm-svn: 2032
* Flesh out a bunch more code, print allocations that are poolable.Chris Lattner2002-03-291-10/+149
| | | | llvm-svn: 2031
* s/method/functionChris Lattner2002-03-291-30/+26
| | | | llvm-svn: 2030
* s/Method/Function/gChris Lattner2002-03-291-66/+65
| | | | llvm-svn: 2029
* Simplify code a lot by using the Module::getFunction & getOrInsertFunctionChris Lattner2002-03-291-46/+24
| | | | llvm-svn: 2028
* Remove the reduceApply functions they are obsolete things from the days beforeChris Lattner2002-03-281-16/+0
| | | | | | we had a reasonable pass system llvm-svn: 2022
* Implement getEscapingAllocations & getNonEscapingAllocationsChris Lattner2002-03-281-24/+61
| | | | llvm-svn: 2021
* * Rename UnlinkUndistinguishableShadowNodes & RemoveUnreachableShadowNodesChris Lattner2002-03-283-15/+16
| | | | | | | | to reflect that they can eliminate arbitrary nodes. * Rename the ShadowNodeEliminate.cpp file to EliminateNodes.cpp for the same reason llvm-svn: 2020
* Ooops, I did such a great job pruning nodes, that I accidentally deletedChris Lattner2002-03-281-1/+2
| | | | | | ALL allocation nodes... hrm... bad. llvm-svn: 2018
* Initial checkin of Noop pass that will be the pool allocatorChris Lattner2002-03-281-0/+33
| | | | llvm-svn: 2014
* Many changesChris Lattner2002-03-286-317/+386
| | | | | | | | | | | | | * Simplify a lot of the inlining stuff. There are still problems, but not many * Break up the Function representation to have a vector for every different node type so it is fast to find nodes of a particular flavor. * Do more intelligent merging of call values * Allow elimination of unreachable shadow and allocation nodes * Generalize indistinguishability testing to allow merging of identical calls. * Increase shadow node merging power llvm-svn: 2010
* * Move classes aroundCameron Buschardt2002-03-271-29/+36
| | | | | | | * rename constructor function * Move stuff into anonymous namespaces llvm-svn: 2007
* Implemented promote mem->reg pass.Cameron Buschardt2002-03-271-64/+286
| | | | llvm-svn: 2005
* * Add #define to enabled debug messagesChris Lattner2002-03-271-12/+15
| | | | | | | | | * Move removeEdgesTo to be a member of DSNode * Implement (but #ifdef out) the new, spiffier, method of determining shadow node equivalence. This cannot be enabled until more is implemented. llvm-svn: 2004
OpenPOWER on IntegriCloud