Skip to content
  1. Jan 02, 2005
  2. 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
  3. 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
  4. Dec 17, 2004
  5. Dec 16, 2004
  6. Dec 14, 2004
  7. Dec 13, 2004
  8. Dec 12, 2004
  9. Dec 11, 2004
  10. Dec 10, 2004
Loading