Skip to content
  1. Feb 06, 2007
  2. Feb 05, 2007
  3. Aug 27, 2006
  4. Jun 29, 2006
  5. Apr 27, 2006
  6. Nov 18, 2005
  7. Aug 05, 2005
  8. Jul 27, 2005
  9. Jun 30, 2005
  10. Apr 22, 2005
  11. Nov 30, 2004
  12. Oct 18, 2004
  13. Oct 17, 2004
  14. Oct 16, 2004
  15. Sep 19, 2004
  16. Sep 18, 2004
  17. Sep 15, 2004
  18. Sep 03, 2004
  19. Sep 02, 2004
    • Reid Spencer's avatar
      Changes For Bug 352 · 7c16caa3
      Reid Spencer authored
      Move include/Config and include/Support into include/llvm/Config,
      include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
      public header files must be under include/llvm/.
      
      llvm-svn: 16137
      7c16caa3
  20. Jul 29, 2004
  21. 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
  22. Apr 08, 2004
  23. Feb 03, 2004
  24. Jan 12, 2004
  25. Jan 09, 2004
  26. Nov 11, 2003
  27. Oct 20, 2003
  28. Oct 18, 2003
  29. 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
  30. Oct 05, 2003
    • Chris Lattner's avatar
      a906bacf
    • Chris Lattner's avatar
      Speed up the mem2reg transform for allocas which are only read/written in a single · 80471529
      Chris Lattner authored
      basic block.  This is amazingly common in code generated by the C/C++ front-ends.
      This change makes it not have to insert ANY phi nodes, whereas before it would insert
      a ton of dead ones which DCE would have to clean up.
      
      Thus, this fix improves compile-time performance of these trivial allocas in two ways:
        1. It doesn't have to do the walking and book-keeping for renaming
        2. It does not insert dead phi nodes for them which would have to
           subsequently be cleaned up.
      
      On my favorite testcase from 252.eon, this special case handles 305 out of
      356 promoted allocas in the function.  It speeds up the mem2reg pass from 7.5256s
      to 1.2505s.  It inserts 677 fewer dead PHI nodes, which speeds up a subsequent
      -dce pass from 18.7524s to 2.4806s.
      
      There are still 120 trivially dead PHI nodes being inserted for variables used
      in multiple basic blocks, but they are not handled by this patch.
      
      llvm-svn: 8881
      80471529
    • Chris Lattner's avatar
      The first PHI node may be null, scan for the first non-null one · a5721d3d
      Chris Lattner authored
      llvm-svn: 8865
      a5721d3d
Loading