Skip to content
  1. Jul 29, 2004
  2. Jun 19, 2004
    • Chris Lattner's avatar
      Change to use the StableBasicBlockNumbering class · 4db0f826
      Chris Lattner authored
      llvm-svn: 14247
      4db0f826
    • Chris Lattner's avatar
      Do not let the numbering of PHI nodes placed in the function depend on · a52ab6f5
      Chris Lattner authored
      non-deterministic things like the ordering of blocks in the dominance
      frontier of a BB.  Unfortunately, I don't know of a better way to solve
      this problem than to explicitly sort the BB's in function-order before
      processing them.  This is guaranteed to slow the pass down a bit, but
      is absolutely necessary to get usable diffs between two different tools
      executing the mem2reg or scalarrepl pass.
      
      Before this, bazillions of spurious diff failures occurred all over the
      place due to the different order of processing PHIs:
      
      -       %tmp.111 = getelementptr %struct.Connector_struct* %upcon.0.0, uint 0, uint 0
      +       %tmp.111 = getelementptr %struct.Connector_struct* %upcon.0.1, uint 0, uint 0
      
      Now, the diffs match.
      
      llvm-svn: 14244
      a52ab6f5
  3. Apr 08, 2004
  4. Feb 03, 2004
  5. Jan 12, 2004
  6. Jan 09, 2004
  7. Nov 11, 2003
  8. Oct 20, 2003
  9. Oct 18, 2003
  10. Oct 06, 2003
    • Chris Lattner's avatar
      This changes the PromoteMemToReg function to create "pruned" SSA form, not · c30f22f5
      Chris Lattner authored
      "minimal" SSA form (in other words, it doesn't insert dead PHIs).  This
      speeds up the mem2reg pass very significantly because it doesn't have to
      do a lot of frivolous work in many common cases.
      
      In the 252.eon function I have been playing with, this doesn't even insert
      the 120 PHI nodes that it used to which were trivially dead (in the process
      of promoting 356 alloca instructions overall).  This speeds up the mem2reg
      pass from 1.2459s to 0.1284s.  More significantly, the DCE pass used to take
      2.4138s to remove the 120 dead PHI nodes that mem2reg constructed, now it
      takes 0.0134s (which is the time to scan the function and decide that there
      is nothing dead).  So overall, on this one function, we speed things up a
      total of 3.5179s, which is a 24.8x speedup!  :)
      
      This change is tested by the Mem2Reg/2003-10-05-DeadPHIInsertion.ll test,
      which now passes.
      
      llvm-svn: 8884
      c30f22f5
  11. Oct 05, 2003
  12. Aug 18, 2003
  13. Apr 25, 2003
  14. Apr 24, 2003
  15. Apr 21, 2003
  16. Apr 18, 2003
  17. Apr 10, 2003
  18. Mar 03, 2003
  19. Feb 23, 2003
  20. Feb 22, 2003
  21. Oct 21, 2002
  22. Oct 02, 2002
    • Chris Lattner's avatar
      Updates to work with recent Statistic's changes: · bf3a099a
      Chris Lattner authored
          * Renamed StatisticReporter.h/cpp to Statistic.h/cpp
          * Broke constructor to take two const char * arguments instead of one, so
            that indendation can be taken care of automatically.
          * Sort the list by pass name when printing
          * Make sure to print all statistics as a group, instead of randomly when
            the statistics dtors are called.
          * Updated ProgrammersManual with new semantics.
      
      llvm-svn: 4002
      bf3a099a
  23. Sep 24, 2002
  24. Sep 11, 2002
    • Chris Lattner's avatar
      · a239e687
      Chris Lattner authored
      Clean up code due to auto-insert constructors
      
      llvm-svn: 3665
      a239e687
  25. Aug 23, 2002
  26. Aug 08, 2002
    • Chris Lattner's avatar
      · f0ed55d1
      Chris Lattner authored
      - Cleaned up the interface to AnalysisUsage to take analysis class names
         instead of ::ID's.
       - Pass::getAnalysis<> now no longer takes an optional argument
      
      llvm-svn: 3265
      f0ed55d1
  27. Jul 26, 2002
    • Chris Lattner's avatar
      · c8b7092e
      Chris Lattner authored
      * Add support for different "PassType's"
      * Add new RegisterOpt/RegisterAnalysis templates for registering passes that
        are to show up in opt or analyze
      * Register Analyses now
      * Change optimizations to use RegisterOpt instead of RegisterPass
      * Add support for different "PassType's"
      * Add new RegisterOpt/RegisterAnalysis templates for registering passes that
        are to show up in opt or analyze
      * Register Analyses now
      * Change optimizations to use RegisterOpt instead of RegisterPass
      * Remove getPassName implementations from various subclasses
      
      llvm-svn: 3113
      c8b7092e
  28. Jul 23, 2002
Loading