Skip to content
  1. Aug 13, 2008
  2. Aug 11, 2008
  3. Aug 06, 2008
  4. Jul 30, 2008
  5. Jul 28, 2008
  6. Jul 27, 2008
  7. Jul 23, 2008
  8. Jul 21, 2008
  9. Jul 17, 2008
    • Dan Gohman's avatar
      Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk · 17059681
      Dan Gohman authored
      replacement of multiple values. This is slightly more efficient
      than doing multiple ReplaceAllUsesOfValueWith calls, and theoretically
      could be optimized even further. However, an important property of this
      new function is that it handles the case where the source value set and
      destination value set overlap. This makes it feasible for isel to use
      SelectNodeTo in many very common cases, which is advantageous because
      SelectNodeTo avoids a temporary node and it doesn't require CSEMap
      updates for users of values that don't change position.
      
      Revamp MorphNodeTo, which is what does all the work of SelectNodeTo, to
      handle operand lists more efficiently, and to correctly handle a number
      of corner cases to which its new wider use exposes it.
      
      This commit also includes a change to the encoding of post-isel opcodes
      in SDNodes; now instead of being sandwiched between the target-independent
      pre-isel opcodes and the target-dependent pre-isel opcodes, post-isel
      opcodes are now represented as negative values. This makes it possible
      to test if an opcode is pre-isel or post-isel without having to know
      the size of the current target's post-isel instruction set.
      
      These changes speed up llc overall by 3% and reduce memory usage by 10%
      on the InstructionCombining.cpp testcase with -fast and -regalloc=local.
      
      llvm-svn: 53728
      17059681
  10. Jul 12, 2008
  11. Jul 08, 2008
  12. Jul 07, 2008
    • Dan Gohman's avatar
      Refactor the tablegen DAGISelEmitter code for outputing calls to · d6ec0507
      Dan Gohman authored
      getTargetNode and SelectNodeTo to reduce duplication, and to
      make some of the getTargetNode code available to SelectNodeTo.
      Use SelectNodeTo instead of getTargetNode in several new
      interesting cases, as it mutates nodes in place instead of
      creating new ones.
      
      This triggers some scheduling behavior differences due to nodes
      being presented to the scheduler in a different order. Some of the
      arbitrary scheduling decisions it makes are now arbitrarily made
      differently. This is visible in CodeGen/PowerPC/LargeAbsoluteAddr.ll,
      where a trivial scheduling difference led to a trivial register
      allocation difference.
      
      llvm-svn: 53203
      d6ec0507
    • Dan Gohman's avatar
      Add explicit keywords. · 56e3f63e
      Dan Gohman authored
      llvm-svn: 53179
      56e3f63e
  13. Jul 03, 2008
  14. Jul 01, 2008
  15. Jun 30, 2008
  16. Jun 26, 2008
    • Dale Johannesen's avatar
      Fixes the last x86-64 test failure in compat.exp: · a2de8eab
      Dale Johannesen authored
      <16 x float> is 64-byte aligned (for some reason),
      which gets us into the stack realignment code.  The
      computation changing FP-relative offsets to SP-relative
      was broken, assiging a spill temp to a location
      also used for parameter passing.  This
      fixes it by rounding up the stack frame to a multiple
      of the largest alignment (I concluded it wasn't fixable
      without doing this, but I'm not very sure.)
      
      llvm-svn: 52750
      a2de8eab
  17. Jun 25, 2008
  18. Jun 24, 2008
  19. Jun 16, 2008
  20. Jun 10, 2008
  21. Jun 09, 2008
  22. Jun 06, 2008
    • Duncan Sands's avatar
      Wrap MVT::ValueType in a struct to get type safety · 13237ac3
      Duncan Sands authored
      and better control the abstraction.  Rename the type
      to MVT.  To update out-of-tree patches, the main
      thing to do is to rename MVT::ValueType to MVT, and
      rewrite expressions like MVT::getSizeInBits(VT) in
      the form VT.getSizeInBits().  Use VT.getSimpleVT()
      to extract a MVT::SimpleValueType for use in switch
      statements (you will get an assert failure if VT is
      an extended value type - these shouldn't exist after
      type legalization).
      This results in a small speedup of codegen and no
      new testsuite failures (x86-64 linux).
      
      llvm-svn: 52044
      13237ac3
  23. Jun 05, 2008
  24. Jun 04, 2008
  25. Jun 02, 2008
  26. Jun 01, 2008
  27. May 31, 2008
  28. May 30, 2008
Loading