- Jan 31, 2004
-
-
Chris Lattner authored
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
-
Chris Lattner authored
fixes the crash in 176.gcc. llvm-svn: 11033
-
Alkis Evlogimenos authored
any test cases :-) llvm-svn: 11032
-
Chris Lattner authored
FirstVirtualRegister llvm-svn: 11031
-
Alkis Evlogimenos authored
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
-
Alkis Evlogimenos authored
llvm-svn: 11029
-
Alkis Evlogimenos authored
Simplification of LiveIntervals::Interval::overlaps() and addition of examples to overlaps() and liveAt() to make them clearer. llvm-svn: 11028
-
- Jan 30, 2004
-
-
Chris Lattner authored
llvm-svn: 11027
-
Chris Lattner authored
llvm-svn: 11026
-
Chris Lattner authored
llvm-svn: 11025
-
Chris Lattner authored
llvm-svn: 11024
-
Chris Lattner authored
llvm-svn: 11023
-
Chris Lattner authored
llvm-svn: 11022
-
Chris Lattner authored
llvm-svn: 11021
-
Chris Lattner authored
which can be implemented to improve the quality of mod-ref information. llvm-svn: 11020
-
Chris Lattner authored
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
-
Chris Lattner authored
Implement LiveVariables::getIndexMachineBasicBlock llvm-svn: 11018
-
Chris Lattner authored
llvm-svn: 11017
-
Brian Gaeke authored
choose an ostream. llvm-svn: 11016
-
Misha Brukman authored
llvm-svn: 11015
-
Misha Brukman authored
llvm-svn: 11014
-
- Jan 29, 2004
-
-
Chris Lattner authored
llvm-svn: 11006
-
Chris Lattner authored
llvm-svn: 11005
-
- Jan 28, 2004
-
-
Brian Gaeke authored
llvm-svn: 11004
-
Misha Brukman authored
llvm-svn: 11003
-
Brian Gaeke authored
llvm-svn: 11002
-
Chris Lattner authored
llvm-svn: 11001
-
Chris Lattner authored
llvm-svn: 11000
-
Chris Lattner authored
moving it to the start of removeDeadNodes. This speeds up DSA by 2s on perlbmk from 41s llvm-svn: 10999
-
Chris Lattner authored
map. This saves 5s in the TD pass, from 22->17s on perlbmk llvm-svn: 10998
-
Chris Lattner authored
the globals directly. This doesn't save any substantial time, however, because the globals graph only contains globals! llvm-svn: 10997
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 10995
-
Chris Lattner authored
before. This allows us to have a place to implement optimizations in a structured way. llvm-svn: 10994
-
Chris Lattner authored
timers by default llvm-svn: 10993
-
Chris Lattner authored
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
-
Chris Lattner authored
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
-
Chris Lattner authored
You gotta love spurious llvm-svn: 10990
-
- Jan 27, 2004
-
-
Chris Lattner authored
llvm-svn: 10989
-
Chris Lattner authored
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
-