Skip to content
  1. Oct 18, 2008
    • Dan Gohman's avatar
      Teach DAGCombine to fold constant offsets into GlobalAddress nodes, · 2fe6bee5
      Dan Gohman authored
      and add a TargetLowering hook for it to use to determine when this
      is legal (i.e. not in PIC mode, etc.)
      
      This allows instruction selection to emit folded constant offsets
      in more cases, such as the included testcase, eliminating the need
      for explicit arithmetic instructions.
      
      This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp
      that attempted to achieve the same effect, but wasn't as effective.
      
      Also, fix handling of offsets in GlobalAddressSDNodes in several
      places, including changing GlobalAddressSDNode's offset from
      int to int64_t.
      
      The Mips, Alpha, Sparc, and CellSPU targets appear to be
      unaware of GlobalAddress offsets currently, so set the hook to
      false on those targets.
      
      llvm-svn: 57748
      2fe6bee5
  2. Sep 24, 2008
  3. Sep 23, 2008
  4. Jul 27, 2008
  5. 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
  6. Jun 03, 2008
  7. Apr 30, 2008
  8. Apr 27, 2008
  9. Mar 10, 2008
  10. 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
  11. Feb 14, 2008
  12. Feb 13, 2008
  13. Jan 30, 2008
    • Evan Cheng's avatar
      Even though InsertAtEndOfBasicBlock is an ugly hack it still deserves a proper... · 29cfb67e
      Evan Cheng authored
      Even though InsertAtEndOfBasicBlock is an ugly hack it still deserves a proper name. Rename it to EmitInstrWithCustomInserter since it does not necessarily insert
      instruction at the end.
      
      llvm-svn: 46562
      29cfb67e
    • Scott Michel's avatar
      More cleanups for CellSPU: · bb713ae0
      Scott Michel authored
      - Expand tabs... (poss 80-col violations, will get them later...)
      - Consolidate logic for SelectDFormAddr and SelectDForm2Addr into a single
        function, simplifying maintenance. Also reduced custom instruction
        generation for SPUvecinsert/INSERT_MASK.
      
      llvm-svn: 46544
      bb713ae0
  14. Jan 29, 2008
    • Scott Michel's avatar
      Overhaul Cell SPU's addressing mode internals so that there are now · ceae3bbf
      Scott Michel authored
      only two addressing mode nodes, SPUaform and SPUindirect (vice the
      three previous ones, SPUaform, SPUdform and SPUxform). This improves
      code somewhat because we now avoid using reg+reg addressing when
      it can be avoided. It also simplifies the address selection logic,
      which was the main point for doing this.
      
      Also, for various global variables that would be loaded using SPU's
      A-form addressing, prefer D-form offs[reg] addressing, keeping the
      base in a register if the variable is used more than once.
      
      llvm-svn: 46483
      ceae3bbf
  15. Jan 11, 2008
    • Scott Michel's avatar
      More CellSPU refinement and progress: · 8d5841ae
      Scott Michel authored
      - Cleaned up custom load/store logic, common code is now shared [see note
        below], cleaned up address modes
      
      - More test cases: various intrinsics, structure element access (load/store
        test), updated target data strings, indirect function calls.
      
      Note: This patch contains a refactoring of the LoadSDNode and StoreSDNode
      structures: they now share a common base class, LSBaseSDNode, that
      provides an interface to their common functionality. There is some hackery
      to access the proper operand depending on the derived class; otherwise,
      to do a proper job would require finding and rearranging the SDOperands
      sent to StoreSDNode's constructor. The current refactor errs on the
      side of being conservatively and backwardly compatible while providing
      functionality that reduces redundant code for targets where loads and
      stores are custom-lowered.
      
      llvm-svn: 45851
      8d5841ae
  16. Dec 29, 2007
  17. Dec 05, 2007
  18. Dec 04, 2007
Loading