Skip to content
  1. May 22, 2007
  2. May 18, 2007
  3. May 15, 2007
  4. May 11, 2007
  5. May 10, 2007
  6. May 07, 2007
  7. May 03, 2007
  8. May 02, 2007
  9. May 01, 2007
  10. Mar 20, 2007
  11. Feb 22, 2007
  12. Feb 21, 2007
  13. Feb 17, 2007
  14. Jan 26, 2007
  15. Dec 19, 2006
  16. Dec 06, 2006
  17. Nov 18, 2006
  18. 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
  19. Nov 05, 2006
  20. 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
  21. Nov 01, 2006
  22. 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
  23. Oct 28, 2006
  24. Oct 26, 2006
  25. Oct 25, 2006
  26. Oct 24, 2006
  27. Oct 23, 2006
  28. Oct 21, 2006
    • Chris Lattner's avatar
      don't break infinite loops · 9f5a1295
      Chris Lattner authored
      llvm-svn: 31102
      9f5a1295
    • Chris Lattner's avatar
      Use branch reversal to do stuff like this: · 28f17f45
      Chris Lattner authored
              call L_strcmp$stub
              testl %eax, %eax
      -       jne LBB26_208   #cond_true6020
      -       jmp LBB26_227   #bb7119
      +       je LBB26_227    #bb7119
       LBB26_208:     #cond_true6020
              movl $l31_str14, 4(%esp)
      
              testl %eax, %eax
      -       jne LBB26_704   #cond_true13042
      -       jmp LBB26_713   #bb13151
      +       je LBB26_713    #bb13151
       LBB26_704:     #cond_true13042
              movl $_str52, 4(%esp)
      
              cmpl 76(%ecx), %eax
      -       jge LBB26_1628  #cond_false63.i.i
      -       jmp LBB26_1769  #_Z8makeGridP13mrSurfaceListidiidd.exit.i
      +       jl LBB26_1769   #_Z8makeGridP13mrSurfaceListidiidd.exit.i
       LBB26_1628:    #cond_false63.i.i
              movl $0, 48964(%esp)
      
      llvm-svn: 31100
      28f17f45
    • Chris Lattner's avatar
      Transform code like: · 3ca52185
      Chris Lattner authored
        jle FOO
        jmp BAR
      BAR:
      
      into:
      
        jle FOO
      BAR:
      
      ... whoa!
      
      llvm-svn: 31098
      3ca52185
    • Chris Lattner's avatar
      Three changes: · 4fe01c42
      Chris Lattner authored
      1. Remove a bunch of ifdef'd code.
      2. When a block just contains an uncond branch, change all blocks branching
         to it to jump to the destination instead.
      3. If branch analysis tells us some edges in the machinecfg are not actually
         possible, remove them.
      
      #2 triggers a suprisingly large number of times.
      
      llvm-svn: 31094
      4fe01c42
Loading