Skip to content
  1. Jan 10, 2006
  2. Jan 09, 2006
  3. Jan 08, 2006
  4. Jan 07, 2006
  5. Jan 06, 2006
    • Evan Cheng's avatar
      ISEL code for MULHU, MULHS, and UNDEF. · 10d2790d
      Evan Cheng authored
      llvm-svn: 25132
      10d2790d
    • Andrew Lenharth's avatar
      make 0 codegen much better · 346b4120
      Andrew Lenharth authored
      llvm-svn: 25131
      346b4120
    • Chris Lattner's avatar
      silence some bogus gcc warnings on fenris · 330628a6
      Chris Lattner authored
      llvm-svn: 25130
      330628a6
    • Chris Lattner's avatar
      silence a bogus gcc warning · efbb8da3
      Chris Lattner authored
      llvm-svn: 25129
      efbb8da3
    • Chris Lattner's avatar
      Enhance the shift-shift folding code to allow a no-op cast to occur in between · eb372a02
      Chris Lattner authored
      the shifts.
      
      This allows us to fold this (which is the 'integer add a constant' sequence
      from cozmic's scheme compmiler):
      
      int %x(uint %anf-temporary776) {
              %anf-temporary777 = shr uint %anf-temporary776, ubyte 1
              %anf-temporary800 = cast uint %anf-temporary777 to int
              %anf-temporary804 = shl int %anf-temporary800, ubyte 1
              %anf-temporary805 = add int %anf-temporary804, -2
              %anf-temporary806 = or int %anf-temporary805, 1
              ret int %anf-temporary806
      }
      
      into this:
      
      int %x(uint %anf-temporary776) {
              %anf-temporary776 = cast uint %anf-temporary776 to int
              %anf-temporary776.mask1 = add int %anf-temporary776, -2
              %anf-temporary805 = or int %anf-temporary776.mask1, 1
              ret int %anf-temporary805
      }
      
      note that instcombine already knew how to eliminate the AND that the two
      shifts fold into.  This is tested by InstCombine/shift.ll:test26
      
      -Chris
      
      llvm-svn: 25128
      eb372a02
Loading