Skip to content
  1. Feb 27, 2004
  2. Feb 26, 2004
    • Chris Lattner's avatar
      Fix typo · 36ab728f
      Chris Lattner authored
      llvm-svn: 11864
      36ab728f
    • Chris Lattner's avatar
      The node doesn't have to be _no_ node flags, it just has to be complete and · 128e8419
      Chris Lattner authored
      not have any globals.
      
      llvm-svn: 11863
      128e8419
    • Chris Lattner's avatar
      Two changes: · 71626b8f
      Chris Lattner authored
       1. Functions do not make things incomplete, only variables
       2. Constant global variables no longer need to be marked incomplete, because
          we are guaranteed that the initializer for the global will be in the
          graph we are hacking on now.  This makes resolution of indirect calls happen
          a lot more in the bu pass, supports things like vtables and the C counterparts
          (giant constant arrays of function pointers), etc...
      
      Testcase here: test/Regression/Analysis/DSGraph/constant_globals.ll
      
      llvm-svn: 11852
      71626b8f
    • Chris Lattner's avatar
      Simplify the dead node elimination stuff · 6ce59b4a
      Chris Lattner authored
      Make the incompleteness marker faster by looping directly over the globals
      instead of over the scalars to find the globals
      
      Fix a bug where we didn't mark a global incomplete if it didn't have any
      outgoing edges.  This wouldn't break any current clients but is still wrong.
      
      llvm-svn: 11848
      6ce59b4a
  3. Feb 22, 2004
  4. Feb 21, 2004
  5. Feb 09, 2004
  6. Feb 08, 2004
  7. Feb 07, 2004
  8. Jan 29, 2004
  9. Jan 28, 2004
  10. 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
  11. Jan 23, 2004
  12. Jan 22, 2004
  13. Nov 13, 2003
  14. Nov 12, 2003
  15. Nov 11, 2003
  16. Nov 02, 2003
Loading