Skip to content
  1. Jan 10, 2005
  2. Jan 09, 2005
  3. Jan 08, 2005
  4. Jan 07, 2005
  5. Jan 06, 2005
  6. Jan 05, 2005
  7. Jan 03, 2005
  8. Jan 02, 2005
  9. 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
  10. 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
  11. Dec 17, 2004
Loading