Skip to content
  1. Jan 28, 2004
  2. Jan 27, 2004
    • Chris Lattner's avatar
      fix bug in previous checkin · 26acc890
      Chris Lattner authored
      llvm-svn: 10989
      26acc890
    • Chris Lattner's avatar
      * Add a new commandline argument to control the "global roots hack". Default · 54a52e53
      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
      54a52e53
  3. Jan 23, 2004
  4. Jan 22, 2004
  5. Nov 13, 2003
  6. Nov 12, 2003
  7. Nov 11, 2003
  8. Nov 02, 2003
  9. Oct 20, 2003
  10. Sep 20, 2003
  11. Sep 11, 2003
  12. Aug 05, 2003
  13. Aug 02, 2003
  14. Jul 22, 2003
  15. Jul 16, 2003
    • Vikram S. Adve's avatar
      Implement 2 important changes: (1) rematerialization from the globals graph, · dce6694f
      Vikram S. Adve authored
      and (2) faster inlining by cloning only reachable nodes.  In particular:
      (1) Added DSGraph::cloneReachableSubgraph and DSGraph::cloneReachableNodes
          to clone the subgraph reachable from a set of root nodes, into the
          current graph, merging the global nodes into thos in the current graph.
          The TD pass now uses this for faster inlining, and so does the
          next function.
      (2) Added DSGraph::updateFromGlobalGraph() to rematerialize nodes from the
          globals graph into the current graph in both BU and TD passes.
      (3) `I' flags are removed from all nodes in the globals graph, because they
          are difficult to maintain correctly and are not needed anyway.
      (4) Aux. function calls are only removed to the globals graph if they
          will never be resovled.  (This is what fixed gap.)  The immediate
          reason is that if we took these out of a function (and moved them to
          the globals graph) we would need to rematerialize these nodes into the
          function graph for every function in the BU pass.  The longer term
          problem is that we would need to find a way to remove them from the
          globals graph iff they have been resolved on all paths through the
          call graph.
      
      llvm-svn: 7187
      dce6694f
  16. Jul 03, 2003
  17. Jul 02, 2003
  18. Jul 01, 2003
  19. Jun 30, 2003
  20. Jun 29, 2003
  21. Jun 28, 2003
  22. Jun 22, 2003
  23. Jun 19, 2003
Loading