Skip to content
  1. Jun 30, 2008
    • Evan Cheng's avatar
      Split scheduling from instruction selection. · 0711d68f
      Evan Cheng authored
      llvm-svn: 52923
      0711d68f
    • Duncan Sands's avatar
      Revert the SelectionDAG optimization that makes · 1ae6ef83
      Duncan Sands authored
      it impossible to create a MERGE_VALUES node with
      only one result: sometimes it is useful to be able
      to create a node with only one result out of one of
      the results of a node with more than one result, for
      example because the new node will eventually be used
      to replace a one-result node using ReplaceAllUsesWith,
      cf X86TargetLowering::ExpandFP_TO_SINT.  On the other
      hand, most users of MERGE_VALUES don't need this and
      for them the optimization was valuable.  So add a new
      utility method getMergeValues for creating MERGE_VALUES
      nodes which by default performs the optimization.
      Change almost everywhere to use getMergeValues (and
      tidy some stuff up at the same time).
      
      llvm-svn: 52893
      1ae6ef83
  2. Jun 22, 2008
  3. Jun 08, 2008
    • Duncan Sands's avatar
      Remove comparison methods for MVT. The main cause · 11dd4245
      Duncan Sands authored
      of apint codegen failure is the DAG combiner doing
      the wrong thing because it was comparing MVT's using
      < rather than comparing the number of bits.  Removing
      the < method makes this mistake impossible to commit.
      Instead, add helper methods for comparing bits and use
      them.
      
      llvm-svn: 52098
      11dd4245
  4. 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
  5. Jun 03, 2008
  6. May 29, 2008
  7. May 14, 2008
  8. May 13, 2008
  9. Apr 30, 2008
  10. Apr 27, 2008
  11. Apr 12, 2008
    • Dan Gohman's avatar
      Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal · 544ab2c5
      Dan Gohman authored
      on any current target and aren't optimized in DAGCombiner. Instead
      of using intermediate nodes, expand the operations, choosing between
      simple loads/stores, target-specific code, and library calls,
      immediately.
      
      Previously, the code to emit optimized code for these operations
      was only used at initial SelectionDAG construction time; now it is
      used at all times. This fixes some cases where rep;movs was being
      used for small copies where simple loads/stores would be better.
      
      This also cleans up code that checks for alignments less than 4;
      let the targets make that decision instead of doing it in
      target-independent code. This allows x86 to use rep;movs in
      low-alignment cases.
      
      Also, this fixes a bug that resulted in the use of rep;stos for
      memsets of 0 with non-constant memory size when the alignment was
      at least 4. It's better to use the library in this case, which
      can be significantly faster when the size is large.
      
      This also preserves more SourceValue information when memory
      intrinsics are lowered into simple loads/stores.
      
      llvm-svn: 49572
      544ab2c5
  12. Mar 31, 2008
  13. Mar 25, 2008
  14. Mar 20, 2008
  15. Mar 11, 2008
  16. Mar 10, 2008
  17. Mar 09, 2008
  18. Mar 08, 2008
  19. Mar 06, 2008
  20. Feb 28, 2008
  21. Feb 26, 2008
  22. Feb 23, 2008
    • Scott Michel's avatar
      Merge current work back to tree to minimize diffs and drift. Major highlights · 7d5eaec6
      Scott Michel authored
      for CellSPU modifications:
      
      - SPUInstrInfo.td refactoring: "multiclass" really is _your_ friend.
      - Other improvements based on refactoring effort in SPUISelLowering.cpp,
        esp. in SPUISelLowering::PerformDAGCombine(), where zero amount shifts and
        rotates are now eliminiated, other scalar-to-vector-to-scalar silliness
        is also eliminated.
      - 64-bit operations are being implemented, _muldi3.c gcc runtime now
        compiles and generates the right code. More work still needs to be done.
      
      llvm-svn: 47532
      7d5eaec6
  23. Feb 20, 2008
  24. Feb 16, 2008
  25. Feb 15, 2008
    • Dale Johannesen's avatar
      Rewrite tblgen handling of subtarget features so · 6ca3ccf5
      Dale Johannesen authored
      it follows the order of the enum, not alphabetical.
      The motivation is to make -mattr=+ssse3,+sse41
      select SSE41 as it ought to.  Added "ignored"
      enum values of 0 to PPC and SPU to avoid compiler
      warnings.
      
      llvm-svn: 47143
      6ca3ccf5
  26. Feb 14, 2008
  27. Feb 13, 2008
  28. Feb 10, 2008
  29. Feb 08, 2008
  30. Feb 05, 2008
Loading