Skip to content
  1. Sep 29, 2006
  2. Sep 21, 2006
  3. Sep 11, 2006
  4. Sep 08, 2006
  5. Aug 01, 2006
    • Chris Lattner's avatar
      Fix PR850 and CodeGen/X86/2006-07-31-SingleRegClass.ll. · 524129dd
      Chris Lattner authored
      The CFE refers to all single-register constraints (like "A") by their 16-bit
      name, even though the 8 or 32-bit version of the register may be needed.
      The X86 backend should realize what is going on and redecode the name back
      to its proper form.
      
      llvm-svn: 29420
      524129dd
  6. Jul 11, 2006
  7. Jul 07, 2006
  8. Jun 24, 2006
  9. May 25, 2006
  10. May 24, 2006
  11. May 23, 2006
    • Evan Cheng's avatar
      Remove PreprocessCCCArguments and PreprocessFastCCArguments now that · 17e734f0
      Evan Cheng authored
      FORMAL_ARGUMENTS nodes include a token operand.
      
      llvm-svn: 28439
      17e734f0
    • Chris Lattner's avatar
      Implement an annoying part of the Darwin/X86 abi: the callee of a struct · 8be5be81
      Chris Lattner authored
      return argument pops the hidden struct pointer if present, not the caller.
      
      For example, in this testcase:
      
      struct X { int D, E, F, G; };
      struct X bar() {
        struct X a;
        a.D = 0;
        a.E = 1;
        a.F = 2;
        a.G = 3;
        return a;
      }
      void foo(struct X *P) {
        *P = bar();
      }
      
      We used to emit:
      
      _foo:
              subl $28, %esp
              movl 32(%esp), %eax
              movl %eax, (%esp)
              call _bar
              addl $28, %esp
              ret
      _bar:
              movl 4(%esp), %eax
              movl $0, (%eax)
              movl $1, 4(%eax)
              movl $2, 8(%eax)
              movl $3, 12(%eax)
              ret
      
      This is correct on Linux/X86 but not Darwin/X86.  With this patch, we now
      emit:
      
      _foo:
              subl $28, %esp
              movl 32(%esp), %eax
              movl %eax, (%esp)
              call _bar
      ***     addl $24, %esp
              ret
      _bar:
              movl 4(%esp), %eax
              movl $0, (%eax)
              movl $1, 4(%eax)
              movl $2, 8(%eax)
              movl $3, 12(%eax)
      ***     ret $4
      
      For the record, GCC emits (which is functionally equivalent to our new code):
      
      _bar:
              movl    4(%esp), %eax
              movl    $3, 12(%eax)
              movl    $2, 8(%eax)
              movl    $1, 4(%eax)
              movl    $0, (%eax)
              ret     $4
      _foo:
              pushl   %esi
              subl    $40, %esp
              movl    48(%esp), %esi
              leal    16(%esp), %eax
              movl    %eax, (%esp)
              call    _bar
              subl    $4, %esp
              movl    16(%esp), %eax
              movl    %eax, (%esi)
              movl    20(%esp), %eax
              movl    %eax, 4(%esi)
              movl    24(%esp), %eax
              movl    %eax, 8(%esi)
              movl    28(%esp), %eax
              movl    %eax, 12(%esi)
              addl    $40, %esp
              popl    %esi
              ret
      
      This fixes SingleSource/Benchmarks/CoyoteBench/fftbench with LLC and the
      JIT, and fixes the X86-backend portion of PR729.  The CBE still needs to
      be updated.
      
      llvm-svn: 28438
      8be5be81
  12. May 17, 2006
  13. Apr 27, 2006
  14. Apr 26, 2006
  15. Apr 25, 2006
  16. Apr 21, 2006
  17. Apr 20, 2006
  18. Apr 19, 2006
  19. Apr 14, 2006
  20. Apr 11, 2006
  21. Apr 07, 2006
    • Evan Cheng's avatar
      - movlp{s|d} and movhp{s|d} support. · c995b45f
      Evan Cheng authored
      - Normalize shuffle nodes so result vector lower half elements come from the
        first vector, the rest come from the second vector. (Except for the
        exceptions :-).
      - Other minor fixes.
      
      llvm-svn: 27474
      c995b45f
  22. Apr 06, 2006
  23. Apr 05, 2006
    • Evan Cheng's avatar
      Handle canonical form of e.g. · f3b52c84
      Evan Cheng authored
      vector_shuffle v1, v1, <0, 4, 1, 5, 2, 6, 3, 7>
      
      This is turned into
      vector_shuffle v1, <undef>, <0, 0, 1, 1, 2, 2, 3, 3>
      by dag combiner.
      
      It would match a {p}unpckl on x86.
      
      llvm-svn: 27437
      f3b52c84
  24. Mar 31, 2006
  25. Mar 30, 2006
  26. Mar 28, 2006
  27. Mar 26, 2006
  28. Mar 25, 2006
  29. Mar 24, 2006
  30. Mar 22, 2006
Loading