summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename DSGraph::ScalarMapTy -> DSScalarMapChris Lattner2004-01-282-9/+9
| | | | llvm-svn: 11001
* Fix a bugChris Lattner2004-01-281-1/+1
| | | | llvm-svn: 11000
* Eliminate the call to removeTriviallyDeadNodes from updateFromGlobals graph,Chris Lattner2004-01-281-4/+1
| | | | | | | moving it to the start of removeDeadNodes. This speeds up DSA by 2s on perlbmk from 41s llvm-svn: 10999
* In the TD pass, iterate over globals directly instead of through the whole ↵Chris Lattner2004-01-281-9/+8
| | | | | | | | scalar map. This saves 5s in the TD pass, from 22->17s on perlbmk llvm-svn: 10998
* In the TD pass, don't iterate over the scalar map to find the globals, ↵Chris Lattner2004-01-281-3/+2
| | | | | | | | | iterate over the globals directly. This doesn't save any substantial time, however, because the globals graph only contains globals! llvm-svn: 10997
* In updateFromGlobalsGraph, instead of iterating over all of the scalars in theChris Lattner2004-01-281-8/+7
| | | | | | | | function to find the globals, iterate over all of the globals directly. This speeds the function up from 14s to 6.3s on perlbmk, reducing DSA time from 53->46s. llvm-svn: 10996
* Minor tweaks, eliminate useless integer pruning optimziation, turn onChris Lattner2004-01-281-4/+6
| | | | | | timers by default llvm-svn: 10993
* Further reduce the number of nodes cloned with getClonedNH, using merge instead.Chris Lattner2004-01-281-1/+1
| | | | | | | | This reduces the number of nodes allocated, then immediately merged and DNE'd from 2193852 to 1298049. unfortunately this only speeds DSA up by ~1.5s (of 53s), because it's spending most of its time waddling through the scalar map :( llvm-svn: 10992
* Add a timer, fix a minor bug.Chris Lattner2004-01-281-4/+12
| | | | | | Also, use RC::merge when possible, reducing the number of nodes allocated, then immediately merged away from 2985444 to 2193852 on perlbmk. llvm-svn: 10991
* Another bugfix, disable "spurious" output.Chris Lattner2004-01-281-1/+4
| | | | | | You gotta love spurious llvm-svn: 10990
* fix bug in previous checkinChris Lattner2004-01-271-1/+0
| | | | llvm-svn: 10989
* * Add a new commandline argument to control the "global roots hack". DefaultChris Lattner2004-01-271-454/+407
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | it to be off. If it looks like it's completely unnecessary after testing, I will remove it completely (which is the hope). * Callers of the DSNode "copy ctor" can not choose to not copy links. * Make node collapsing not create a garbage node in some cases, avoiding a memory allocation, and a subsequent DNE. * When merging types, allow two functions of different types to be merged without collapsing. * Use DSNodeHandle::isNull more often instead of DSNodeHandle::getNode() == 0, as it is much more efficient. *** Implement the new, more efficient reachability cloner class In addition to only cloning nodes that are reachable from interesting roots, this also fixes the huge inefficiency we had where we cloned lots of nodes, only to merge them away immediately after they were cloned. Now we only actually allocate a node if there isn't one to merge it into. * Eliminate the now-obsolete cloneReachable* and clonePartiallyInto methods * Rewrite updateFromGlobalsGraph to use the reachability cloner * Rewrite mergeInGraph to use the reachability cloner * Disable the scalar map scanning code in removeTriviallyDeadNodes. In large SCC's, this is extremely expensive. We need a better data structure for the scalar map, because we really want to scan the unique node handles, not ALL of the scalars. * Remove the incorrect SANER_CODE_FOR_CHECKING_IF_ALL_REFERRERS_ARE_FROM_SCALARMAP code. * Move the code for eliminating integer nodes from the trivially dead eliminator to the dead node eliminator. * removeDeadNodes no longer uses removeTriviallyDeadNodes, as it contains a superset of the node removal power. * Only futz around with the globals graph in removeDeadNodes if it is modified llvm-svn: 10987
* Rewrite to use the reachability cloner interface. Also, make this much moreChris Lattner2004-01-271-58/+39
| | | | | | | | efficient in the case where a function calls into the same graph multiple times (ie, it either contains multiple calls to the same function, or multiple calls to functions in the same SCC graph) llvm-svn: 10986
* minor cleanupsChris Lattner2004-01-272-7/+5
| | | | llvm-svn: 10985
* Get clone flags right, so we don't build InlinedGlobals only to clear themChris Lattner2004-01-272-8/+5
| | | | llvm-svn: 10984
* Fixes for PR214. Use the SHLIBEXT variable instead of hardcoding .so intoJohn Criswell2004-01-262-2/+2
| | | | | | every file. llvm-svn: 10976
* Fix failing test cases with joined live intervals. It turns out thatAlkis Evlogimenos2004-01-231-3/+24
| | | | | | | | | when joining we need to check if we overlap with the second interval or any of its aliases. Also make joining intervals the default. llvm-svn: 10973
* Add the JITInfo object, accessor & initializer.Brian Gaeke2004-01-231-1/+1
| | | | llvm-svn: 10972
* Add CodeEmitter and JITInfo stubs. Dump the oldBrian Gaeke2004-01-232-4/+51
| | | | | | | PowerPCTargetMachine::addPassesToJITCompile() method, in favor of the TargetJITInfo interface. llvm-svn: 10971
* Initial support for implementing clonePartiallyInto in terms of ↵Chris Lattner2004-01-234-60/+128
| | | | | | cloneReachableSubgraph, though this support is currently disabled. llvm-svn: 10970
* Fix a problem brian ran into with the bytecode reader asserting. It turnsChris Lattner2004-01-231-0/+5
| | | | | | | | out that the problem was actually the writer writing out a 'null' value because it didn't normalize it. This fixes: test/Regression/Assembler/2004-01-22-FloatNormalization.ll llvm-svn: 10967
* Add option to join live intervals. Two intervals are joined if thereAlkis Evlogimenos2004-01-222-44/+232
| | | | | | | | | | | | | | is a move between two registers, at least one of the registers is virtual and the two live intervals do not overlap. This results in about 40% reduction in intervals, 30% decrease in the register allocators running time and a 20% increase in peephole optimizations (mainly move eliminations). The option can be enabled by passing -join-liveintervals where appropriate. llvm-svn: 10965
* Remove unneeded check. An interval in active, by definition overlapsAlkis Evlogimenos2004-01-221-4/+1
| | | | | | with the current one. llvm-svn: 10959
* Improve debugging output. Remove unneeded virtReg->0 mapping whenAlkis Evlogimenos2004-01-221-20/+31
| | | | | | | | virtReg lives on the stack. Now a virtual register has an entry in the virtual->physical map or the virtual->stack slot map but never in both. llvm-svn: 10958
* Revert previous change. The code was correct...Alkis Evlogimenos2004-01-221-1/+1
| | | | llvm-svn: 10957
* Fix incorrect negatives in LiveIntervals::Interval::liveAt().Alkis Evlogimenos2004-01-221-1/+1
| | | | llvm-svn: 10956
* Eliminated the CompletedNodes argument to the cloneReachable* methods. ThisChris Lattner2004-01-222-43/+21
| | | | | | | | map was only used to implement a marginal GlobalsGraph optimization, and it actually slows the analysis down (due to the overhead of keeping it), so just eliminate it entirely. llvm-svn: 10955
* Ok, I'm tired of pulling out all my timers to check stuff in, just do it.Chris Lattner2004-01-221-0/+18
| | | | llvm-svn: 10954
* Bug fix: X.mergeWith(Y) was not updating Y if Y was a null node handle!Chris Lattner2004-01-221-2/+9
| | | | llvm-svn: 10953
* Start implementing DSGraph::clonePartiallyInto and implement mergeInGraphChris Lattner2004-01-221-66/+176
| | | | | | | | | | | in terms of it. Though clonePartiallyInto is not cloning partial graphs yet, this change dramatically speeds up inlining of graphs with many scalars. For example, this change speeds up the BU pass on 253.perlbmk from 69s to 36s, because it avoids iteration over the scalar map, which can get pretty large. llvm-svn: 10951
* Allow disabling of ALL printing overhead when performing timingsChris Lattner2004-01-221-0/+5
| | | | llvm-svn: 10948
* Implement ModuleProvider::materializeModule() by only materializing functionsMisha Brukman2004-01-211-0/+10
| | | | | | that are still left in the lazy reader map. llvm-svn: 10944
* Let subclasses implement ModuleProvider::materializeModule() which is based onMisha Brukman2004-01-211-12/+0
| | | | | | | their implementation of book-keeping for which functions need to be materialized and which don't. llvm-svn: 10943
* Build the PowerPC directory, so it is less likely to bit-rot (again)Brian Gaeke2004-01-211-1/+1
| | | | llvm-svn: 10938
* Import of skeletal PowerPC backend I have had laying around for months...Brian Gaeke2004-01-214-0/+208
| | | | llvm-svn: 10937
* SlotCalculator.h movedChris Lattner2004-01-203-6/+6
| | | | llvm-svn: 10931
* Fix PR212 - Bytecode reader misreads 'long -9223372036854775808'!Chris Lattner2004-01-201-3/+7
| | | | | | Fix testcase test/Regression/Assembler/2004-01-20-MaxLongLong.llx llvm-svn: 10928
* Moved iterators around.Tanya Lattner2004-01-201-2/+0
| | | | llvm-svn: 10926
* Moved iterators to common file.Tanya Lattner2004-01-201-62/+0
| | | | llvm-svn: 10925
* Fix bogus warning and simplify codeChris Lattner2004-01-201-11/+5
| | | | llvm-svn: 10924
* Major changes. Now we only compactify individual type planes if it is inChris Lattner2004-01-201-50/+196
| | | | | | | | | | | | | | fact "profitable" to do so. This makes compactification "free" for small programs (ie, it is completely disabled) and even helps large programs by not having to encode pointless compactification planes. On 176.gcc, this saves 50K from the bytecode file, which is, alas only a couple percent. This concludes my head bashing against the bytecode format, at least for now. llvm-svn: 10922
* Bugfixes for dealing with partially compactified functionsChris Lattner2004-01-202-14/+29
| | | | llvm-svn: 10920
* Save another 30K from 176.gcc by encoding the compaction table a bit moreChris Lattner2004-01-182-7/+32
| | | | | | intelligently. llvm-svn: 10918
* Remove -debug outputChris Lattner2004-01-181-7/+0
| | | | llvm-svn: 10917
* Add support for writing bytecode files with compactiontables for bytecode files.Chris Lattner2004-01-184-36/+73
| | | | | | | | This shrinks the bytecode file for 176.gcc by about 200K (10%), and 254.gap by about 167K, a 25% reduction. There is still a lot of room for improvement in the encoding of the compaction table. llvm-svn: 10915
* Add support for reading bytecode files with compactiontables for bytecode files.Chris Lattner2004-01-183-41/+186
| | | | | | | | This shrinks the bytecode file for 176.gcc by about 200K (10%), and 254.gap by about 167K, a 25% reduction. There is still a lot of room for improvement in the encoding of the compaction table. llvm-svn: 10914
* Add support for building the compactiontable for bytecode files. This shrinksChris Lattner2004-01-181-54/+221
| | | | | | | | the bytecode file for 176.gcc by about 200K (10%), and 254.gap by about 167K, a 25% reduction. There is still a lot of room for improvement in the encoding of the compaction table. llvm-svn: 10913
* Eliminate special case handling for CPR'sChris Lattner2004-01-181-17/+6
| | | | | | | Fix some problem cases where I was building the slot calculator in bytecode writer mode instead of asmwriter mode. llvm-svn: 10911
* Bytecode format for LLVM 1.2 no longer explicitly encodes zeros in primitiveChris Lattner2004-01-174-12/+33
| | | | | | | type planes. This saves about 5k on 176.gcc, and is needed for a subsequent patch of mine I'm working on. llvm-svn: 10908
* This file goes awayChris Lattner2004-01-171-24/+0
| | | | llvm-svn: 10905
OpenPOWER on IntegriCloud