Skip to content
  1. May 30, 2007
  2. May 24, 2007
  3. May 23, 2007
    • Dale Johannesen's avatar
      Two tail merging improvements: · f4a77d24
      Dale Johannesen authored
      When considering blocks with more than 2 predecessors, merge the block with
      the largest number of matching insns, rather than the first block found.
      Considering that 1 matching insn is enough to show a win for candidates that
      already end with a branch.
      
      llvm-svn: 37315
      f4a77d24
  4. May 22, 2007
  5. May 18, 2007
  6. May 15, 2007
  7. May 11, 2007
  8. May 10, 2007
  9. May 07, 2007
  10. May 03, 2007
  11. May 02, 2007
  12. May 01, 2007
  13. Mar 20, 2007
  14. Feb 22, 2007
  15. Feb 21, 2007
  16. Feb 17, 2007
  17. Jan 26, 2007
  18. Dec 19, 2006
  19. Dec 06, 2006
  20. Nov 18, 2006
  21. Nov 08, 2006
    • Chris Lattner's avatar
      optimize single MBB loops better. In particular, produce: · bf3b57f2
      Chris Lattner authored
      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
      bf3b57f2
  22. Nov 05, 2006
  23. Nov 02, 2006
    • Reid Spencer's avatar
      For PR786: · de46e484
      Reid Spencer authored
      Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
      fall out by removing unused variables. Remaining warnings have to do with
      unused functions (I didn't want to delete code without review) and unused
      variables in generated code. Maintainers should clean up the remaining
      issues when they see them. All changes pass DejaGnu tests and Olden.
      
      llvm-svn: 31380
      de46e484
  24. Nov 01, 2006
  25. Oct 29, 2006
    • Chris Lattner's avatar
      Make CanFallThrough more intelligent (so it can handle blocks with (e.g.) no · 504eeda3
      Chris Lattner authored
      successors), and make island block movement more general.
      
      This compiles CodeGen/X86/2006-04-27-ISelFoldingBug.ll to:
      
      _loadAndRLEsource_no_exit_2E_1_label_2E_0:
              subl $8, %esp
              movl %esi, 4(%esp)
              movl %ebx, (%esp)
              movl 16(%esp), %eax
              movl 12(%esp), %ecx
      LBB1_3: #label.0
              movl _last, %edx
              movl %edx, %esi
              incl %esi
              movl %esi, _last
              movl %ecx, %ebx
              # TRUNCATE movb %bl, %bl
              movl _block, %esi
              movb %bl, 1(%esi,%edx)
              cmpl %eax, _last
              jge LBB1_2      #codeRepl5.exitStub
      LBB1_4: #label.0
              cmpl $257, %ecx
              je LBB1_2       #codeRepl5.exitStub
      LBB1_1: #label.0.no_exit.1_crit_edge.exitStub
              movl $1, %eax
              movl (%esp), %ebx
              movl 4(%esp), %esi
              addl $8, %esp
              ret
      LBB1_2: #codeRepl5.exitStub
              xorl %eax, %eax
              movl (%esp), %ebx
              movl 4(%esp), %esi
              addl $8, %esp
              ret
      
      instead of:
      
      _loadAndRLEsource_no_exit_2E_1_label_2E_0:
              subl $8, %esp
              movl %esi, 4(%esp)
              movl %ebx, (%esp)
              movl 16(%esp), %eax
              movl 12(%esp), %ecx
              jmp LBB1_3      #label.0
      LBB1_1: #label.0.no_exit.1_crit_edge.exitStub
              movl $1, %eax
              movl (%esp), %ebx
              movl 4(%esp), %esi
              addl $8, %esp
              ret
      LBB1_2: #codeRepl5.exitStub
              xorl %eax, %eax
              movl (%esp), %ebx
              movl 4(%esp), %esi
              addl $8, %esp
              ret
      LBB1_3: #label.0
              movl _last, %edx
              movl %edx, %esi
              incl %esi
              movl %esi, _last
              movl %ecx, %ebx
              # TRUNCATE movb %bl, %bl
              movl _block, %esi
              movb %bl, 1(%esi,%edx)
              cmpl %eax, _last
              jge LBB1_2      #codeRepl5.exitStub
      LBB1_4: #label.0
              cmpl $257, %ecx
              jne LBB1_1      #label.0.no_exit.1_crit_edge.exitStub
              jmp LBB1_2      #codeRepl5.exitStub
      
      ... which is much better layout :)
      
      llvm-svn: 31282
      504eeda3
  26. Oct 28, 2006
  27. Oct 26, 2006
  28. Oct 25, 2006
  29. Oct 24, 2006
Loading