llvm-project/llvm/lib
Chris Lattner bf3b57f221 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.

llvm-svn: 31530
2006-11-08 01:03:21 +00:00
..
Analysis Optionally allow comparison operations from affect DSGraphs 2006-11-07 20:39:05 +00:00
AsmParser For PR786: 2006-11-02 20:25:50 +00:00
Bytecode Remove some dead code. 2006-11-03 01:44:51 +00:00
CodeGen optimize single MBB loops better. In particular, produce: 2006-11-08 01:03:21 +00:00
Debugger For PR786: 2006-11-02 20:25:50 +00:00
ExecutionEngine For PR786: 2006-11-02 20:25:50 +00:00
Linker For PR786: 2006-11-02 20:25:50 +00:00
Support assert.h -> cassert 2006-11-03 01:38:14 +00:00
System Unbreak VC++ build. 2006-11-05 19:31:28 +00:00
Target Fixed a bug which causes x86 be to incorrectly match 2006-11-07 22:14:24 +00:00
Transforms scalarrepl should not split the two elements of the vsiidx array: 2006-11-07 22:42:47 +00:00
VMCore Update new pass managers to use PassManagerAnalysisHelper API. 2006-11-07 22:56:50 +00:00
Makefile Make some changes suggested by Chris: 2006-05-17 22:55:35 +00:00