Skip to content
  1. Mar 11, 2008
  2. Mar 10, 2008
  3. Mar 08, 2008
  4. Mar 06, 2008
  5. 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
  6. Feb 16, 2008
  7. Feb 14, 2008
  8. Feb 13, 2008
  9. Feb 05, 2008
  10. Jan 30, 2008
  11. 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
  12. Jan 17, 2008
    • Scott Michel's avatar
      Forward progress: crtbegin.c now compiles successfully! · e4d3e3c0
      Scott Michel authored
      Fixed CellSPU's A-form (local store) address mode, so that all globals,
      externals, constant pool and jump table symbols are now wrapped within
      a SPUISD::AFormAddr pseudo-instruction. This now identifies all local
      store memory addresses, although it requires a bit of legerdemain during
      instruction selection to properly select loads to and stores from local
      store, properly generating "LQA" instructions.
      
      Also added mul_ops.ll test harness for exercising integer multiplication.
      
      llvm-svn: 46142
      e4d3e3c0
    • Chris Lattner's avatar
      This commit changes: · 1ea55cf8
      Chris Lattner authored
      1. Legalize now always promotes truncstore of i1 to i8. 
      2. Remove patterns and gunk related to truncstore i1 from targets.
      3. Rename the StoreXAction stuff to TruncStoreAction in TLI.
      4. Make the TLI TruncStoreAction table a 2d table to handle from/to conversions.
      5. Mark a wide variety of invalid truncstores as such in various targets, e.g.
         X86 currently doesn't support truncstore of any of its integer types.
      6. Add legalize support for truncstores with invalid value input types.
      7. Add a dag combine transform to turn store(truncate) into truncstore when
         safe.
      
      The later allows us to compile CodeGen/X86/storetrunc-fp.ll to:
      
      _foo:
      	fldt	20(%esp)
      	fldt	4(%esp)
      	faddp	%st(1)
      	movl	36(%esp), %eax
      	fstps	(%eax)
      	ret
      
      instead of:
      
      _foo:
      	subl	$4, %esp
      	fldt	24(%esp)
      	fldt	8(%esp)
      	faddp	%st(1)
      	fstps	(%esp)
      	movl	40(%esp), %eax
      	movss	(%esp), %xmm0
      	movss	%xmm0, (%eax)
      	addl	$4, %esp
      	ret
      
      llvm-svn: 46140
      1ea55cf8
  13. Jan 12, 2008
  14. Jan 11, 2008
    • Scott Michel's avatar
      More CellSPU refinements: · a8f67e04
      Scott Michel authored
      - struct_2.ll: Completely unaligned load/store testing
      
      - call_indirect.ll, struct_1.ll: Add test lines to exercise
         X-form [$reg($reg)] addressing
      
      At this point, loads and stores should be under control (he says
      in an optimistic tone of voice.)
      
      llvm-svn: 45882
      a8f67e04
    • 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
  15. Dec 31, 2007
    • Chris Lattner's avatar
      Rename SSARegMap -> MachineRegisterInfo in keeping with the idea · a10fff51
      Chris Lattner authored
      that "machine" classes are used to represent the current state of
      the code being compiled.  Given this expanded name, we can start 
      moving other stuff into it.  For now, move the UsedPhysRegs and
      LiveIn/LoveOuts vectors from MachineFunction into it.
      
      Update all the clients to match.
      
      This also reduces some needless #includes, such as MachineModuleInfo
      from MachineFunction.
      
      llvm-svn: 45467
      a10fff51
  16. Dec 29, 2007
  17. Dec 22, 2007
  18. Dec 20, 2007
  19. Dec 19, 2007
  20. Dec 17, 2007
  21. Dec 05, 2007
  22. Dec 04, 2007
Loading