Skip to content
  1. Oct 18, 2004
  2. Oct 17, 2004
  3. Oct 16, 2004
  4. Oct 13, 2004
  5. Oct 12, 2004
  6. Oct 11, 2004
  7. Oct 09, 2004
  8. Oct 08, 2004
  9. Oct 06, 2004
  10. Sep 29, 2004
  11. Sep 28, 2004
    • Chris Lattner's avatar
      Fold (and (setcc X, C1), (setcc X, C2)) · 623826c8
      Chris Lattner authored
      This is important for several reasons:
      
      1. Benchmarks have lots of code that looks like this (perlbmk in particular):
      
        %tmp.2.i = setne int %tmp.0.i, 128              ; <bool> [#uses=1]
        %tmp.6343 = seteq int %tmp.0.i, 1               ; <bool> [#uses=1]
        %tmp.63 = and bool %tmp.2.i, %tmp.6343          ; <bool> [#uses=1]
      
         we now fold away the setne, a clear improvement.
      
      2. In the more important cases, such as (X >= 10) & (X < 20), we now produce
         smaller code: (X-10) < 10.
      
      3. Perhaps the nicest effect of this patch is that it really helps out the
         code generators.  In particular, for a 'range test' like the above,
         instead of generating this on X86 (the difference on PPC is even more
         pronounced):
      
              cmp %EAX, 50
              setge %CL
              cmp %EAX, 100
              setl %AL
              and %CL, %AL
              cmp %CL, 0
      
         we now generate this:
      
              add %EAX, -50
              cmp %EAX, 50
      
         Furthermore, this causes setcc's to be folded into branches more often.
      
      These combinations trigger dozens of times in the spec benchmarks, particularly
      in 176.gcc, 186.crafty, 253.perlbmk, 254.gap, & 099.go.
      
      llvm-svn: 16559
      623826c8
    • Chris Lattner's avatar
      Implement X / C1 / C2 folding · 272d5ca9
      Chris Lattner authored
      Implement (setcc (shl X, C1), C2) folding.
      
      The second one occurs several dozen times in spec.  The first was added
      just in case.  :)
      
      These are tested by shift.ll:test2[12], and div.ll:test5
      
      llvm-svn: 16549
      272d5ca9
    • Chris Lattner's avatar
      shl is always zero extending, so always use a zero extending shift right. · 6afc02f8
      Chris Lattner authored
      This latent bug was exposed by recent changes, and is tested as:
      llvm/test/Regression/Transforms/InstCombine/2004-09-28-BadShiftAndSetCC.llx
      
      llvm-svn: 16546
      6afc02f8
    • Alkis Evlogimenos's avatar
      Pull assignment out of for loop conditional in order for this to · 3ce42ec7
      Alkis Evlogimenos authored
      compile under windows. Patch contributed by Paolo Invernizzi!
      
      llvm-svn: 16534
      3ce42ec7
  12. Sep 27, 2004
  13. Sep 24, 2004
  14. Sep 23, 2004
Loading