Skip to content
  1. Oct 28, 2006
  2. Oct 27, 2006
    • Chris Lattner's avatar
      remove debug code · b9392fb6
      Chris Lattner authored
      llvm-svn: 31233
      b9392fb6
    • Chris Lattner's avatar
      Codegen cond&cond with two branches. This compiles (f.e.) PowerPC/and-branch.ll to: · f1b54fd7
      Chris Lattner authored
              cmpwi cr0, r4, 4
              bgt cr0, LBB1_2 ;UnifiedReturnBlock
      LBB1_3: ;entry
              cmplwi cr0, r3, 0
              bne cr0, LBB1_2 ;UnifiedReturnBlock
      
      instead of:
      
              cmpwi cr7, r4, 4
              mfcr r2
              addic r4, r3, -1
              subfe r3, r4, r3
              rlwinm r2, r2, 30, 31, 31
              or r2, r2, r3
              cmplwi cr0, r2, 0
              bne cr0, LBB1_2 ;UnifiedReturnBlock
      LBB1_1: ;cond_true
      
      llvm-svn: 31232
      f1b54fd7
    • Chris Lattner's avatar
      Turn conditions like x<Y|z==q into multiple blocks. · ed0110b9
      Chris Lattner authored
      This compiles Regression/CodeGen/X86/or-branch.ll into:
      
      _foo:
              subl $12, %esp
              call L_bar$stub
              movl 20(%esp), %eax
              movl 16(%esp), %ecx
              cmpl $5, %eax
              jl LBB1_1       #cond_true
      LBB1_3: #entry
              testl %ecx, %ecx
              jne LBB1_2      #UnifiedReturnBlock
      LBB1_1: #cond_true
              call L_bar$stub
              addl $12, %esp
              ret
      LBB1_2: #UnifiedReturnBlock
              addl $12, %esp
              ret
      
      instead of:
      
      _foo:
              subl $12, %esp
              call L_bar$stub
              movl 20(%esp), %eax
              movl 16(%esp), %ecx
              cmpl $4, %eax
              setg %al
              testl %ecx, %ecx
              setne %cl
              testb %cl, %al
              jne LBB1_2      #UnifiedReturnBlock
      LBB1_1: #cond_true
              call L_bar$stub
              addl $12, %esp
              ret
      LBB1_2: #UnifiedReturnBlock
              addl $12, %esp
              ret
      
      And on ppc to:
      
              cmpwi cr0, r29, 5
              blt cr0, LBB1_1 ;cond_true
      LBB1_3: ;entry
              cmplwi cr0, r30, 0
              bne cr0, LBB1_2 ;UnifiedReturnBlock
      
      instead of:
      
              cmpwi cr7, r4, 4
              mfcr r2
              addic r4, r3, -1
              subfe r30, r4, r3
              rlwinm r29, r2, 30, 31, 31
              and r2, r29, r30
              cmplwi cr0, r2, 0
              bne cr0, LBB1_2 ;UnifiedReturnBlock
      
      llvm-svn: 31230
      ed0110b9
  3. Oct 26, 2006
  4. Oct 25, 2006
  5. Oct 24, 2006
  6. Oct 23, 2006
  7. Oct 22, 2006
  8. 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
    • Chris Lattner's avatar
      Add an experimental cross-jumping implementation. · 60c9d4dc
      Chris Lattner authored
      This is currently disabled by default and limited in several ways, but does
      have a positive effect.
      
      llvm-svn: 31090
      60c9d4dc
    • Chris Lattner's avatar
      implement MachineOperand::isIdenticalTo · 33f5af09
      Chris Lattner authored
      llvm-svn: 31088
      33f5af09
  9. Oct 20, 2006
Loading