- Jan 28, 2004
-
-
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
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 10985
-
Chris Lattner authored
llvm-svn: 10984
-
Chris Lattner authored
llvm-svn: 10983
-
Chris Lattner authored
structured access to the globals list, add a couple helper methods. llvm-svn: 10982
-
Chris Lattner authored
* Make AssertNodeInGraph not be HORRIBLY time consuming * Eliminate the dead mergeInGlobalsGraph method *** Add the definition for the new ReachabilityCloner class llvm-svn: 10981
-
Chris Lattner authored
llvm-svn: 10980
-
John Criswell authored
when creating native executables. llvm-svn: 10979
-
- Jan 26, 2004
-
-
John Criswell authored
llvm-svn: 10978
-
John Criswell authored
llvm-svn: 10977
-
John Criswell authored
every file. llvm-svn: 10976
-
- Jan 24, 2004
-
-
Brian Gaeke authored
llvm-svn: 10974
-
- Jan 23, 2004
-
-
Alkis Evlogimenos authored
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
-
Brian Gaeke authored
llvm-svn: 10972
-
Brian Gaeke authored
PowerPCTargetMachine::addPassesToJITCompile() method, in favor of the TargetJITInfo interface. llvm-svn: 10971
-
Chris Lattner authored
Initial support for implementing clonePartiallyInto in terms of cloneReachableSubgraph, though this support is currently disabled. llvm-svn: 10970
-
Chris Lattner authored
llvm-svn: 10969
-
Chris Lattner authored
llvm-svn: 10968
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 10966
-
Alkis Evlogimenos authored
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
-
- Jan 22, 2004
-
-
Brian Gaeke authored
lives near the other installation dirs (like libdir, bindir, etc.). Move the rule for making bytecode_libdir out of the ifdef LIBRARYNAME...endif. llvm-svn: 10964
-
Brian Gaeke authored
appropriate "force C++" command-line option. llvm-svn: 10963
-
Brian Gaeke authored
llvm-svn: 10962
-
Brian Gaeke authored
llvm-svn: 10961
-
Brian Gaeke authored
it's only used in the top-level directory. llvm-svn: 10960
-
Alkis Evlogimenos authored
with the current one. llvm-svn: 10959
-
Alkis Evlogimenos authored
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
-
Alkis Evlogimenos authored
llvm-svn: 10957
-
Alkis Evlogimenos authored
llvm-svn: 10956
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 10954
-
Chris Lattner authored
llvm-svn: 10953
-
Chris Lattner authored
llvm-svn: 10952
-
Chris Lattner authored
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
-
Chris Lattner authored
why this one was) Add new method proto llvm-svn: 10950
-
Chris Lattner authored
llvm-svn: 10949
-