Skip to content
  1. Jan 03, 2005
    • Chris Lattner's avatar
      ADC and IMUL are also commutable. · d4bb2bbc
      Chris Lattner authored
      llvm-svn: 19264
      d4bb2bbc
    • Chris Lattner's avatar
      This hunk: · 82787e90
      Chris Lattner authored
      -  unsigned TrueValue = getReg(TrueVal, BB, BB->begin());
      +  unsigned TrueValue = getReg(TrueVal);
      
      Fixes the PPC regressions from last night.
      
      The other hunk is just a clarity improvement.
      
      llvm-svn: 19263
      82787e90
  2. Jan 02, 2005
  3. Jan 01, 2005
    • Chris Lattner's avatar
      Fix a FIXME: Select instructions on longs were miscompiled. · 83df5d25
      Chris Lattner authored
      While we're at it, improve codegen of select instructions.  For this
      testcase:
      
      int %test(bool %C, int %A, int %B) {
        %D = select bool %C, int %A, int %B
        ret int %D
      }
      
      We used to generate this code:
      
      _test:
              cmpwi cr0, r3, 0
              bne .LBB_test_2 ;
      .LBB_test_1:    ;
              b .LBB_test_3   ;
      .LBB_test_2:    ;
              or r5, r4, r4
      .LBB_test_3:    ;
              or r3, r5, r5
              blr
      
      Now we emit:
      
      _test:
              cmpwi cr0, r3, 0
              bne .LBB_test_2 ;
      .LBB_test_1:    ;
              or r4, r5, r5
      .LBB_test_2:    ;
              or r3, r4, r4
              blr
      
      -Chris
      
      llvm-svn: 19214
      83df5d25
    • Chris Lattner's avatar
      Substantially improve the code generated by non-folded setcc instructions. · 78394258
      Chris Lattner authored
      In particular, instead of compiling this:
      
      bool %test(int %A, int %B) {
        %C = setlt int %A, %B
        ret bool %C
      }
      
      to this:
      
      test:
              save %sp, -96, %sp
              subcc %i0, %i1, %g0
              bl .LBBtest_1   !
              nop
              ba .LBBtest_2   !
              nop
      .LBBtest_1:     !
              or %g0, 1, %i0
              ba .LBBtest_3   !
              nop
      .LBBtest_2:     !
              or %g0, 0, %i0
              ba .LBBtest_3   !
              nop
      .LBBtest_3:     !
              restore %g0, %g0, %g0
              retl
              nop
      
      We now compile it to this:
      
      test:
              save %sp, -96, %sp
              subcc %i0, %i1, %g0
              or %g0, 1, %i0
              bl .LBBtest_2   !
              nop
      .LBBtest_1:     !
              or %g0, %g0, %i0
      .LBBtest_2:     !
              restore %g0, %g0, %g0
              retl
              nop
      
      llvm-svn: 19213
      78394258
  4. Dec 29, 2004
    • Chris Lattner's avatar
      Fix PR490 · 93feeb18
      Chris Lattner authored
      Fix testcase CodeGen/CBackend/2004-12-28-LogicalConstantExprs.ll
      
      llvm-svn: 19176
      93feeb18
  5. Dec 17, 2004
  6. Dec 16, 2004
  7. Dec 14, 2004
  8. Dec 13, 2004
  9. Dec 12, 2004
Loading