summaryrefslogtreecommitdiff
path: root/tools/lto/Makefile
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-09-07 21:30:15 +0000
committerChris Lattner <sabre@nondot.org>2006-09-07 21:30:15 +0000
commite99c623e75a4d72061798b6266496ede66226d30 (patch)
tree95ec0dece60cc45e2f8b6c2f658f038e813164bc /tools/lto/Makefile
parent3d222b9acebff6bb5510dc0c79651045c5e458cf (diff)
downloadllvm-e99c623e75a4d72061798b6266496ede66226d30.tar.gz
llvm-e99c623e75a4d72061798b6266496ede66226d30.tar.bz2
llvm-e99c623e75a4d72061798b6266496ede66226d30.tar.xz
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
Diffstat (limited to 'tools/lto/Makefile')
0 files changed, 0 insertions, 0 deletions