optimize single MBB loops better. In particular, produce:
authorChris Lattner <sabre@nondot.org>
Wed, 8 Nov 2006 01:03:21 +0000 (01:03 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 8 Nov 2006 01:03:21 +0000 (01:03 +0000)
commit5d056952ba2f97729c5db69a3f14250595fa1ee8
tree9c1eae2201e0518676aa3925029be7b2d3778ade
parenta9bf6f329e48504c4e38a892adb5e8e97e6f86fd
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
lib/CodeGen/BranchFolding.cpp