Skip to content
  1. Dec 10, 2004
  2. Dec 09, 2004
  3. Dec 05, 2004
  4. Dec 03, 2004
  5. Dec 02, 2004
  6. Dec 01, 2004
  7. Nov 30, 2004
  8. Nov 29, 2004
    • Chris Lattner's avatar
      Revamp long/ulong comparisons to use a much more efficient sequence (thanks · f9c5dc9f
      Chris Lattner authored
      to Brian and the Sun compiler for pointing out that the obvious works :)
      
      This also enables folding all long comparisons into setcc and branch
      instructions: before we could only do == and !=
      
      For example, for:
      void test(unsigned long long A, unsigned long long B) {
         if (A < B) foo();
       }
      
      We now generate:
      
      test:
              subl $4, %esp
              movl %esi, (%esp)
              movl 8(%esp), %eax
              movl 12(%esp), %ecx
              movl 16(%esp), %edx
              movl 20(%esp), %esi
              subl %edx, %eax
              sbbl %esi, %ecx
              jae .LBBtest_2  # UnifiedReturnBlock
      .LBBtest_1:     # then
              call foo
              movl (%esp), %esi
              addl $4, %esp
              ret
      .LBBtest_2:     # UnifiedReturnBlock
              movl (%esp), %esi
              addl $4, %esp
              ret
      
      Instead of:
      
      test:
              subl $12, %esp
              movl %esi, 8(%esp)
              movl %ebx, 4(%esp)
              movl 16(%esp), %eax
              movl 20(%esp), %ecx
              movl 24(%esp), %edx
              movl 28(%esp), %esi
              cmpl %edx, %eax
              setb %al
              cmpl %esi, %ecx
              setb %bl
              cmove %ax, %bx
              testb %bl, %bl
              je .LBBtest_2   # UnifiedReturnBlock
      .LBBtest_1:     # then
              call foo
              movl 4(%esp), %ebx
              movl 8(%esp), %esi
              addl $12, %esp
              ret
      .LBBtest_2:     # UnifiedReturnBlock
              movl 4(%esp), %ebx
              movl 8(%esp), %esi
              addl $12, %esp
              ret
      
      llvm-svn: 18330
      f9c5dc9f
    • Tanya Lattner's avatar
      Reworked branching so we don't handle BAs specially. It just updates the... · d8cc4fac
      Tanya Lattner authored
      Reworked branching so we don't handle BAs specially. It just updates the branchTO regardless of what type of branch it is.
      
      llvm-svn: 18322
      d8cc4fac
    • Tanya Lattner's avatar
      Fixed bug where instructions in the kernel were not ordered right to preserve... · 341828ee
      Tanya Lattner authored
      Fixed bug where instructions in the kernel were not ordered right to preserve dependencies in a cycle.
      
      llvm-svn: 18314
      341828ee
  9. Nov 28, 2004
  10. Nov 27, 2004
  11. Nov 26, 2004
  12. Nov 25, 2004
Loading