Skip to content
  1. Nov 30, 2004
  2. 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
  3. Nov 28, 2004
  4. Nov 27, 2004
  5. Nov 26, 2004
  6. Nov 25, 2004
  7. Nov 24, 2004
  8. Nov 23, 2004
Loading