summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Change xor to ^.Alkis Evlogimenos2004-02-011-1/+1
| | | | llvm-svn: 11054
* Disable tail duplication in any "hard" cases, where it might break SSA form.Chris Lattner2004-02-011-1/+27
| | | | llvm-svn: 11052
* Fix a bug in a recent checkinChris Lattner2004-02-011-1/+1
| | | | llvm-svn: 11050
* Fix the count of the number of instructions removedChris Lattner2004-02-011-0/+1
| | | | llvm-svn: 11049
* Missed one silly assert :-)Alkis Evlogimenos2004-02-011-1/+1
| | | | llvm-svn: 11048
* Simplify joinIntervals() code.Alkis Evlogimenos2004-02-011-62/+57
| | | | llvm-svn: 11047
* Remove all of the annoying statistics now that I'm finished (for the nearChris Lattner2004-02-013-89/+0
| | | | | | term) working on bytecode size stuff. llvm-svn: 11046
* Use MRegisterInfo::isPhysicalRegister andAlkis Evlogimenos2004-02-012-33/+33
| | | | | | MRegisterInfo::isVirtualRegister. llvm-svn: 11045
* Fix a crasher bug in my constant folding rewriteChris Lattner2004-02-011-3/+10
| | | | llvm-svn: 11044
* Print an error message if we can't materialize the bytecode fileChris Lattner2004-02-011-5/+11
| | | | llvm-svn: 11043
* Print an error message if there is an error materialize the bc file.Chris Lattner2004-02-011-1/+6
| | | | llvm-svn: 11041
* Apply final part of Chris' patch.Alkis Evlogimenos2004-01-311-11/+9
| | | | llvm-svn: 11040
* Be a little smarter on the way we handle physical register defs.Alkis Evlogimenos2004-01-311-26/+13
| | | | llvm-svn: 11038
* Finegrainify namespacification, use new MRegisterInfo::isVirtualRegisterChris Lattner2004-01-312-9/+7
| | | | | | method llvm-svn: 11037
* Fix, correctly this time, the computation of the return valueChris Lattner2004-01-311-15/+16
| | | | | | | | | Fix a spello Tighten up the assertion checking No functionality changes. llvm-svn: 11036
* * Fix incorrect computation of the runOnMachineFunction return valueChris Lattner2004-01-311-30/+23
| | | | | | * Turn a bunch of instance variables into automatic variables llvm-svn: 11035
* Remove unneeded #includesChris Lattner2004-01-311-12/+10
| | | | | | | | Move Passes.h (which defines the interface to this file) to the top. Move statistics to the top of the file. Add a comment llvm-svn: 11034
* Avoid referencing deleted DSgraphs when merging an SCC into a larger SCC. ThisChris Lattner2004-01-311-9/+11
| | | | | | fixes the crash in 176.gcc. llvm-svn: 11033
* Merge safe parts from last night's buggy commit. These do not breakAlkis Evlogimenos2004-01-311-47/+71
| | | | | | any test cases :-) llvm-svn: 11032
* Optimize liveAt() and overlaps(). We now use a binary search insteadAlkis Evlogimenos2004-01-311-20/+30
| | | | | | | | of a linear search to find the first range for comparisons. This cuts down the linear scan register allocator running time by a factor of 3 in 254.perlbmk and by a factor of 2.2 in 176.gcc. llvm-svn: 11030
* Revert last night's changes as they broke some tests. Will remerge parts of ↵Alkis Evlogimenos2004-01-311-105/+105
| | | | | | the patch. llvm-svn: 11029
* Several performance enhancements and cleanups from Chris.Alkis Evlogimenos2004-01-311-105/+105
| | | | | | | Simplification of LiveIntervals::Interval::overlaps() and addition of examples to overlaps() and liveAt() to make them clearer. llvm-svn: 11028
* Fix thinkoChris Lattner2004-01-301-3/+3
| | | | llvm-svn: 11027
* Add some comments sketching out how this is to work eventually.Chris Lattner2004-01-301-6/+49
| | | | llvm-svn: 11026
* Add a new flag, which is only used for symmetry.Chris Lattner2004-01-301-0/+3
| | | | llvm-svn: 11025
* Forward method request to chained aa implementationChris Lattner2004-01-302-0/+8
| | | | llvm-svn: 11024
* Implement the pointsToConstantMemory() method.Chris Lattner2004-01-301-3/+14
| | | | llvm-svn: 11022
* Improve mod/ref information based on the pointsToConstantMemory method.Chris Lattner2004-01-301-2/+9
| | | | llvm-svn: 11021
* Add (currently disabled) support to the instruction selector to only insertChris Lattner2004-01-301-4/+47
| | | | | | | | | FP_REG_KILL instructions at the end of blocks involved with critical edges. Fix a bug where FP_REG_KILL instructions weren't inserted in fall through unconditional branches. Perhaps this will fix some linscan problems? llvm-svn: 11019
* Finegrainify namespacificationChris Lattner2004-01-301-4/+17
| | | | | | Implement LiveVariables::getIndexMachineBasicBlock llvm-svn: 11018
* Give clients of MachineFunctionPrinter the ability to specify a banner andBrian Gaeke2004-01-301-3/+14
| | | | | | choose an ostream. llvm-svn: 11016
* Order #includes alphabetically, per style guide.Misha Brukman2004-01-301-2/+2
| | | | llvm-svn: 11015
* Fix a bug aflicting 265.gapChris Lattner2004-01-291-4/+18
| | | | llvm-svn: 11006
* Minor bugfixesChris Lattner2004-01-291-8/+12
| | | | llvm-svn: 11005
* Hyphenate `target-dependent'Misha Brukman2004-01-281-1/+1
| | | | llvm-svn: 11003
* Add a new (static inline) std::ostream& << AllocInfo& method. Use it.Brian Gaeke2004-01-282-6/+9
| | | | llvm-svn: 11002
* 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
OpenPOWER on IntegriCloud