llvm-6502/lib
Chris Lattner e99c623e75 Throttle back tail duplication to avoid creating really ugly sequences of code.
For Transforms/TailDup/if-tail-dup.ll, f.e., it produces:

_foo:
        movl 8(%esp), %eax
        movl 4(%esp), %ecx
        testl $1, %ecx
        je LBB1_2       #cond_next
LBB1_1: #cond_true
        movl $1, (%eax)
LBB1_2: #cond_next
        testl $2, %ecx
        je LBB1_4       #cond_next10
LBB1_3: #cond_true6
        movl $1, 4(%eax)
LBB1_4: #cond_next10
        testl $4, %ecx
        je LBB1_6       #cond_next18
LBB1_5: #cond_true14
        movl $1, 8(%eax)
LBB1_6: #cond_next18
        testl $8, %ecx
        je LBB1_8       #return
LBB1_7: #cond_true22
        movl $1, 12(%eax)
        ret
LBB1_8: #return
        ret

instead of:

_foo:
        movl 4(%esp), %eax
        testl $2, %eax
        sete %cl
        movl 8(%esp), %edx
        testl $1, %eax
        je LBB1_2       #cond_next
LBB1_1: #cond_true
        movl $1, (%edx)
        testb %cl, %cl
        jne LBB1_4      #cond_next10
        jmp LBB1_3      #cond_true6
LBB1_2: #cond_next
        testb %cl, %cl
        jne LBB1_4      #cond_next10
LBB1_3: #cond_true6
        movl $1, 4(%edx)
        testl $4, %eax
        je LBB1_6       #cond_next18
        jmp LBB1_5      #cond_true14
LBB1_4: #cond_next10
        testl $4, %eax
        je LBB1_6       #cond_next18
LBB1_5: #cond_true14
        movl $1, 8(%edx)
        testl $8, %eax
        je LBB1_8       #return
        jmp LBB1_7      #cond_true22
LBB1_6: #cond_next18
        testl $8, %eax
        je LBB1_8       #return
LBB1_7: #cond_true22
        movl $1, 12(%edx)
        ret
LBB1_8: #return
        ret


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30158 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 21:30:15 +00:00
..
Analysis Do not rely on std::sort and std::erase to get list of unique 2006-08-29 22:29:16 +00:00
Archive For PR797: 2006-08-25 19:54:53 +00:00
AsmParser regenerate 2006-08-18 17:34:45 +00:00
Bytecode - Fixed broken Win32 build 2006-09-01 20:35:17 +00:00
CodeGen Fix pasto that was breaking x86 tests. 2006-09-07 18:50:20 +00:00
Debugger For PR797: 2006-08-25 17:43:11 +00:00
ExecutionEngine Completely rearchitect the interface between targets and the pass manager. 2006-09-04 04:14:57 +00:00
Linker Remove a redundant syscall. 2006-07-28 22:52:11 +00:00
Support Instantiate Statistic<> in one place, not in every .o file that uses it. 2006-08-30 04:17:00 +00:00
System - Fixed broken Win32 build 2006-09-01 20:35:17 +00:00
Target Eliminate X86ISD::TEST, using X86ISD::CMP instead. Match X86ISD::CMP patterns 2006-09-07 20:33:45 +00:00
Transforms Throttle back tail duplication to avoid creating really ugly sequences of code. 2006-09-07 21:30:15 +00:00
VMCore Add new option to leave asm names alone 2006-09-07 18:20:41 +00:00
Makefile