Skip to content
  1. Aug 27, 2009
    • Chris Lattner's avatar
      Implement a new optimization in the inliner: if inlining multiple · d3374e8d
      Chris Lattner authored
      calls into a function and if the calls bring in arrays, try to merge
      them together to reduce stack size.  For example, in the testcase
      we'd previously end up with 4 allocas, now we end up with 2 allocas.
      
      As described in the comments, this is not really the ideal solution
      to this problem, but it is surprisingly effective.  For example, on
      176.gcc, we end up eliminating 67 arrays at "gccas" time and another
      24 at "llvm-ld" time.
      
      One piece of concern that I didn't look into: at -O0 -g with
      forced inlining this will almost certainly result in worse debug
      info.  I think this is acceptable though given that this is a case
      of "debugging optimized code", and we don't want debug info to
      prevent the optimizer from doing things anyway.
      
      llvm-svn: 80215
      d3374e8d
    • Chris Lattner's avatar
      reduce header #include'age · b9d0a961
      Chris Lattner authored
      llvm-svn: 80204
      b9d0a961
    • Chris Lattner's avatar
      reduce inlining factor some stuff out to a static helper function, · 5eef6ad6
      Chris Lattner authored
      and other code cleanups.  No functionality change.
      
      llvm-svn: 80199
      5eef6ad6
  2. Aug 26, 2009
    • Devang Patel's avatar
      f08e35d9
    • Dan Gohman's avatar
      Rename Instruction::isIdenticalTo to Instruction::isIdenticalToWhenDefined, · c8a27f2a
      Dan Gohman authored
      and introduce a new Instruction::isIdenticalTo which tests for full
      identity, including the SubclassOptionalData flags. Also, fix the
      Instruction::clone implementations to preserve the SubclassOptionalData
      flags. Finally, teach several optimizations how to handle
      SubclassOptionalData correctly, given these changes.
      
      This fixes the counterintuitive behavior of isIdenticalTo not comparing
      the full value, and clone not returning an identical clone, as well as
      some subtle bugs that could be caused by these.
      
      Thanks to Nick Lewycky for reporting this, and for an initial patch!
      
      llvm-svn: 80038
      c8a27f2a
  3. Aug 25, 2009
  4. Aug 24, 2009
  5. Aug 23, 2009
  6. Aug 19, 2009
  7. Aug 18, 2009
  8. Aug 17, 2009
    • Duncan Sands's avatar
      Don't access the first element of a potentially empty · c4ce58d8
      Duncan Sands authored
      vector (&Formals[0]).  With this change llvm-gcc builds
      with expensive checking enabled for C, C++ and Fortran.
      While there, change a std::vector into a SmallVector.
      This is partly gratuitous, but mostly because not all
      STL vector implementations define the data method (and
      it should be faster).
      
      llvm-svn: 79237
      c4ce58d8
  9. Aug 14, 2009
  10. Aug 13, 2009
  11. Aug 12, 2009
  12. Aug 11, 2009
  13. Aug 07, 2009
  14. Aug 06, 2009
  15. Jul 31, 2009
  16. Jul 30, 2009
  17. Jul 29, 2009
  18. Jul 28, 2009
  19. Jul 26, 2009
  20. Jul 25, 2009
  21. Jul 24, 2009
  22. Jul 22, 2009
Loading