Skip to content
  1. Sep 04, 2008
  2. Sep 03, 2008
  3. Aug 24, 2008
    • Chris Lattner's avatar
      Switch the asmprinter (.ll) and all the stuff it requires over to · 0c19df48
      Chris Lattner authored
      use raw_ostream instead of std::ostream.  Among other goodness,
      this speeds up llvm-dis of kc++ with a release build from 0.85s
      to 0.49s (88% faster).
      
      Other interesting changes:
       1) This makes Value::print be non-virtual.
       2) AP[S]Int and ConstantRange can no longer print to ostream directly, 
          use raw_ostream instead.
       3) This fixes a bug in raw_os_ostream where it didn't flush itself 
          when destroyed.
       4) This adds a new SDNode::print method, instead of only allowing "dump".
      
      
      A lot of APIs have both std::ostream and raw_ostream versions, it would
      be useful to go through and systematically anihilate the std::ostream 
      versions.
      
      This passes dejagnu, but there may be minor fallout, plz let me know if
      so and I'll fix it.
      
      llvm-svn: 55263
      0c19df48
  4. Aug 23, 2008
  5. Aug 17, 2008
    • Gordon Henriksen's avatar
      Rename some GC classes so that their roll will hopefully be clearer. · d930f913
      Gordon Henriksen authored
      In particular, Collector was confusing to implementors. Several
      thought that this compile-time class was the place to implement
      their runtime GC heap. Of course, it doesn't even exist at runtime.
      Specifically, the renames are:
      
        Collector               -> GCStrategy
        CollectorMetadata       -> GCFunctionInfo
        CollectorModuleMetadata -> GCModuleInfo
        CollectorRegistry       -> GCRegistry
        Function::getCollector  -> getGC (setGC, hasGC, clearGC)
      
      Several accessors and nested types have also been renamed to be
      consistent. These changes should be obvious.
      
      llvm-svn: 54899
      d930f913
    • Chris Lattner's avatar
      Rework the routines that convert AP[S]Int into a string. Now, instead of · 17f7165f
      Chris Lattner authored
      returning an std::string by value, it fills in a SmallString/SmallVector
      passed in.  This significantly reduces string thrashing in some cases.
      
      More specifically, this:
       - Adds an operator<< and a print method for APInt that allows you to 
         directly send them to an ostream.
       - Reimplements APInt::toString to be much simpler and more efficient
         algorithmically in addition to not thrashing strings quite as much.
      
      This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the
      asmprinter.  This also fixes a bug I introduced into the asmwriter in a
      previous patch w.r.t. alias printing.
      
      llvm-svn: 54873
      17f7165f
  6. Aug 14, 2008
  7. Jul 23, 2008
    • Dan Gohman's avatar
      Enable first-class aggregates support. · fa1211f6
      Dan Gohman authored
      Remove the GetResultInst instruction. It is still accepted in LLVM assembly
      and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove
      support for return instructions with multiple values. These are auto-upgraded
      to use InsertValueInst instructions.
      
      The IRBuilder still accepts multiple-value returns, and auto-upgrades them
      to InsertValueInst instructions.
      
      llvm-svn: 53941
      fa1211f6
  8. Jul 18, 2008
  9. Jul 17, 2008
  10. Jul 14, 2008
  11. Jul 13, 2008
  12. Jun 25, 2008
  13. Jun 24, 2008
  14. Jun 23, 2008
  15. Jun 22, 2008
  16. Jun 21, 2008
  17. Jun 20, 2008
  18. Jun 19, 2008
  19. Jun 12, 2008
  20. Jun 11, 2008
  21. Jun 07, 2008
    • Evan Cheng's avatar
      Speculatively execute a block when the the block is the then part of a... · 89200c91
      Evan Cheng authored
      Speculatively execute a block when the the block is the then part of a triangle shape and it contains a single, side effect free, cheap instruction. The branch is eliminated by adding a select instruction. i.e.
      
      Turn                                                                                                                                                                                                       
      BB:                                                                                                                                                                                                        
          %t1 = icmp                                                                                                                                                                                             
          br i1 %t1, label %BB1, label %BB2                                                                                                                                                                      
      BB1:                                                                                                                                                                                                       
          %t3 = add %t2, c                                                                                                                                                                                       
          br label BB2                                                                                                                                                                                           
      BB2:                                                                                                                                                                                                       
      =>                                                                                                                                                                                                         
      BB:                                                                                                                                                                                                        
          %t1 = icmp                                                                                                                                                                                             
          %t4 = add %t2, c                                                                                                                                                                                       
          %t3 = select i1 %t1, %t2, %t3
      
      llvm-svn: 52073
      89200c91
  22. Jun 06, 2008
Loading