Skip to content
  1. Jun 27, 2009
  2. Jun 26, 2009
  3. Jun 25, 2009
  4. Jun 23, 2009
  5. Jun 19, 2009
  6. Jun 12, 2009
  7. May 13, 2009
  8. Apr 07, 2009
    • Jim Grosbach's avatar
      PR2985 / <rdar://problem/6584986> · fde2110a
      Jim Grosbach authored
      When compiling in Thumb mode, only the low (R0-R7) registers are available
      for most instructions. Breaking the low registers into a new register class
      handles this. Uses of R12, SP, etc, are handled explicitly where needed
      with copies inserted to move results into low registers where the rest of
      the code generator can deal with them.
      
      llvm-svn: 68545
      fde2110a
  9. Mar 28, 2009
  10. Dec 03, 2008
  11. Sep 12, 2008
  12. Aug 29, 2008
  13. Jan 17, 2008
    • 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
  14. Jan 10, 2008
  15. Jan 08, 2008
  16. Jan 07, 2008
  17. Jan 06, 2008
  18. Dec 29, 2007
  19. Nov 13, 2007
    • Bill Wendling's avatar
      Unify CALLSEQ_{START,END}. They take 4 parameters: the chain, two stack · f359fed9
      Bill Wendling authored
      adjustment fields, and an optional flag. If there is a "dynamic_stackalloc" in
      the code, make sure that it's bracketed by CALLSEQ_START and CALLSEQ_END. If
      not, then there is the potential for the stack to be changed while the stack's
      being used by another instruction (like a call).
      
      This can only result in tears...
      
      llvm-svn: 44037
      f359fed9
  20. Sep 11, 2007
  21. Aug 07, 2007
  22. Jul 21, 2007
  23. Jul 19, 2007
    • Evan Cheng's avatar
      Change instruction description to split OperandList into OutOperandList and · 94b5a80b
      Evan Cheng authored
      InOperandList. This gives one piece of important information: # of results
      produced by an instruction.
      An example of the change:
      def ADD32rr  : I<0x01, MRMDestReg, (ops GR32:$dst, GR32:$src1, GR32:$src2),
                       "add{l} {$src2, $dst|$dst, $src2}",
                       [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
      =>
      def ADD32rr  : I<0x01, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
                       "add{l} {$src2, $dst|$dst, $src2}",
                       [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
      
      llvm-svn: 40033
      94b5a80b
  24. Jul 10, 2007
  25. Jul 07, 2007
  26. Jul 05, 2007
  27. Jun 26, 2007
  28. Jun 19, 2007
  29. Jun 08, 2007
  30. Jun 06, 2007
  31. May 16, 2007
  32. May 15, 2007
  33. May 08, 2007
  34. May 01, 2007
Loading