diff options
author | Chris Lattner <sabre@nondot.org> | 2006-11-08 01:03:21 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-11-08 01:03:21 +0000 |
commit | 5d056952ba2f97729c5db69a3f14250595fa1ee8 (patch) | |
tree | 9c1eae2201e0518676aa3925029be7b2d3778ade /lib/Target/CBackend/CBackend.cpp | |
parent | a9bf6f329e48504c4e38a892adb5e8e97e6f86fd (diff) |
optimize single MBB loops better. In particular, produce:
LBB1_57: #bb207.i
movl 72(%esp), %ecx
movb (%ecx,%eax), %cl
movl 80(%esp), %edx
movb %cl, 1(%edx,%eax)
incl %eax
cmpl $143, %eax
jne LBB1_57 #bb207.i
jmp LBB1_64 #cond_next255.i
intead of:
LBB1_57: #bb207.i
movl 72(%esp), %ecx
movb (%ecx,%eax), %cl
movl 80(%esp), %edx
movb %cl, 1(%edx,%eax)
incl %eax
cmpl $143, %eax
je LBB1_64 #cond_next255.i
jmp LBB1_57 #bb207.i
This eliminates a branch per iteration of the loop. This hurted PPC
particularly, because the extra branch meant another dispatch group for each
iteration of the loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31530 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/CBackend/CBackend.cpp')
0 files changed, 0 insertions, 0 deletions