Skip to content
  1. Sep 11, 2007
  2. Aug 30, 2007
  3. Aug 02, 2007
    • Dan Gohman's avatar
      Mark the SSE and MMX load instructions that · fa3eeeed
      Dan Gohman authored
      X86InstrInfo::isReallyTriviallyReMaterializable knows how to handle
      with the isReMaterializable flag so that it is given a chance to handle
      them. Without hoisting constant-pool loads from loops this isn't very
      visible, though it does keep CodeGen/X86/constant-pool-remat-0.ll from
      making a copy of the constant pool on the stack.
      
      llvm-svn: 40736
      fa3eeeed
  4. Jul 31, 2007
  5. 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
  6. Jul 04, 2007
  7. Jun 26, 2007
  8. Jun 19, 2007
    • Dan Gohman's avatar
      Replace M_REMATERIALIZIBLE and the newly-added isOtherReMaterializableLoad · 9e820649
      Dan Gohman authored
      with a general target hook to identify rematerializable instructions. Some
      instructions are only rematerializable with specific operands, such as loads
      from constant pools, while others are always rematerializable. This hook
      allows both to be identified as being rematerializable with the same
      mechanism.
      
      llvm-svn: 37644
      9e820649
  9. May 16, 2007
  10. Apr 24, 2007
  11. Apr 04, 2007
  12. Apr 03, 2007
  13. Mar 28, 2007
  14. Mar 27, 2007
  15. Mar 26, 2007
    • Bill Wendling's avatar
      Add support for the v1i64 type. This makes better code for this: · 98d2104c
      Bill Wendling authored
      #include <mmintrin.h>
      
      extern __m64 C;
      
      void baz(__v2si *A, __v2si *B)
      {
        *A = C;
        _mm_empty();
      }
      
      We get this:
      
      _baz:
              call "L1$pb"
      "L1$pb":
              popl %eax
              movl L_C$non_lazy_ptr-"L1$pb"(%eax), %eax
              movq (%eax), %mm0
              movl 4(%esp), %eax
              movq %mm0, (%eax)
              emms
              ret
      
      GCC gives us this:
      
      _baz:
              pushl   %ebx
              call    L3
      "L00000000001$pb":
      L3:
              popl    %ebx
              subl    $8, %esp
              movl    L_C$non_lazy_ptr-"L00000000001$pb"(%ebx), %eax
              movl    (%eax), %edx
              movl    4(%eax), %ecx
              movl    16(%esp), %eax
              movl    %edx, (%eax)
              movl    %ecx, 4(%eax)
              emms
              addl    $8, %esp
              popl    %ebx
              ret
      
      llvm-svn: 35351
      98d2104c
  16. Mar 23, 2007
    • Bill Wendling's avatar
      PR1260: · 871c77cd
      Bill Wendling authored
      Add final support to get the QT example to compile.
      
      llvm-svn: 35290
      871c77cd
  17. Mar 22, 2007
  18. Mar 16, 2007
  19. Mar 15, 2007
  20. Mar 10, 2007
  21. Mar 08, 2007
  22. Mar 07, 2007
  23. Mar 06, 2007
  24. Jul 19, 2006
  25. May 16, 2006
  26. Apr 13, 2006
  27. Apr 11, 2006
  28. Mar 25, 2006
  29. Mar 22, 2006
  30. Mar 21, 2006
  31. Mar 20, 2006
Loading