Skip to content
  1. Jan 23, 2006
    • Chris Lattner's avatar
      Make this more efficient in the following ways: · 33081b46
      Chris Lattner authored
      1. Do not statically construct a map when the program starts up, this
         is expensive and cannot be optimized.  Instead, create a list.
      2. Do not insert entries for all function in the module into a hashmap
         that lives the full life of the compiler.
      
      llvm-svn: 25512
      33081b46
  2. Jan 22, 2006
  3. Jan 20, 2006
  4. Jan 19, 2006
  5. Jan 18, 2006
  6. Jan 17, 2006
  7. Jan 16, 2006
    • Reid Spencer's avatar
      For PR411: · b4f9a6f1
      Reid Spencer authored
      This patch is an incremental step towards supporting a flat symbol table.
      It de-overloads the intrinsic functions by providing type-specific intrinsics
      and arranging for automatically upgrading from the old overloaded name to
      the new non-overloaded name. Specifically:
        llvm.isunordered -> llvm.isunordered.f32, llvm.isunordered.f64
        llvm.sqrt -> llvm.sqrt.f32, llvm.sqrt.f64
        llvm.ctpop -> llvm.ctpop.i8, llvm.ctpop.i16, llvm.ctpop.i32, llvm.ctpop.i64
        llvm.ctlz -> llvm.ctlz.i8, llvm.ctlz.i16, llvm.ctlz.i32, llvm.ctlz.i64
        llvm.cttz -> llvm.cttz.i8, llvm.cttz.i16, llvm.cttz.i32, llvm.cttz.i64
      New code should not use the overloaded intrinsic names. Warnings will be
      emitted if they are used.
      
      llvm-svn: 25366
      b4f9a6f1
    • Chris Lattner's avatar
      fix a crash due to missing parens · 307b7ea1
      Chris Lattner authored
      llvm-svn: 25363
      307b7ea1
    • Chris Lattner's avatar
      This pass has never worked correctly. Remove. · 0de2c7d3
      Chris Lattner authored
      llvm-svn: 25349
      0de2c7d3
  8. Jan 14, 2006
  9. Jan 13, 2006
  10. Jan 11, 2006
  11. Jan 10, 2006
  12. Jan 09, 2006
  13. Jan 07, 2006
  14. Jan 06, 2006
    • Chris Lattner's avatar
      silence some bogus gcc warnings on fenris · 330628a6
      Chris Lattner authored
      llvm-svn: 25130
      330628a6
    • 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