Skip to content
  1. Nov 04, 2008
  2. Oct 31, 2008
  3. Oct 30, 2008
  4. Oct 29, 2008
  5. Oct 27, 2008
    • Torok Edwin's avatar
      export an ID for the instructionNamer, allowing analysis/transformation passes · ca97b42e
      Torok Edwin authored
      that need it to require it by ID.
      
      llvm-svn: 58238
      ca97b42e
    • Chris Lattner's avatar
      Rewrite all the 'PromoteLocallyUsedAlloca[s]' logic. With the power of · 59b56913
      Chris Lattner authored
      LargeBlockInfo, we can now dramatically simplify their implementation
      and speed them up at the same time.  Now the code has time proportional
      to the number of uses of the alloca, not the size of the block.
      
      This also eliminates code that tried to batch up different allocas which
      are used in the same blocks, and eliminates the 'retry list' logic which
      was baroque and no unneccesary.  In addition to being a speedup for crazy
      cases, this is also a nice cleanup:
      
      PromoteMemoryToRegister.cpp |  270 +++++++++++++++-----------------------------
       1 file changed, 96 insertions(+), 174 deletions(-)
      
      llvm-svn: 58229
      59b56913
    • Chris Lattner's avatar
      Add a new LargeBlockInfo helper, which is just a wrapper around · f594ecc4
      Chris Lattner authored
      a trivial dense map.  Use this in RewriteSingleStoreAlloca to
      avoid aggressively rescanning blocks over and over again.  This
      fixes PR2925, speeding up mem2reg on the testcase in that bug
      from 4.56s to 0.02s in a debug build on my machine.
      
      llvm-svn: 58227
      f594ecc4
  6. Oct 23, 2008
    • Daniel Dunbar's avatar
      Change create*Pass factory functions to return Pass* instead of · 7f39e2d8
      Daniel Dunbar authored
      LoopPass*.
       - Although less precise, this means they can be used in clients
         without RTTI (who would otherwise need to include LoopPass.h, which
         eventually includes things using dynamic_cast). This was the
         simplest solution that presented itself, but I am happy to use a
         better one if available.
      
      llvm-svn: 58010
      7f39e2d8
  7. Oct 09, 2008
  8. Oct 08, 2008
  9. Oct 07, 2008
  10. Oct 03, 2008
  11. Sep 29, 2008
  12. Sep 27, 2008
  13. Sep 25, 2008
    • Devang Patel's avatar
      Large mechanical patch. · 4c758ea3
      Devang Patel authored
      s/ParamAttr/Attribute/g
      s/PAList/AttrList/g
      s/FnAttributeWithIndex/AttributeWithIndex/g
      s/FnAttr/Attribute/g
      
      This sets the stage 
      - to implement function notes as function attributes and 
      - to distinguish between function attributes and return value attributes.
      
      This requires corresponding changes in llvm-gcc and clang.
      
      llvm-svn: 56622
      4c758ea3
  14. Sep 24, 2008
  15. Sep 23, 2008
  16. Sep 22, 2008
  17. Sep 19, 2008
  18. Sep 17, 2008
  19. Sep 09, 2008
  20. Sep 08, 2008
  21. Sep 06, 2008
  22. Sep 05, 2008
    • Duncan Sands's avatar
      Delete the removeCallEdgeTo callgraph method, · 9e236028
      Duncan Sands authored
      because it does not maintain a correct list
      of callsites.  I discovered (see following
      commit) that the inliner will create a wrong
      callgraph if it is fed a callgraph with
      correct edges but incorrect callsites.  These
      were created by Prune-EH, and while it wasn't
      done via removeCallEdgeTo, it could have been
      done via removeCallEdgeTo, which is an accident
      waiting to happen.  Use removeCallEdgeFor
      instead.
      
      llvm-svn: 55859
      9e236028
    • Duncan Sands's avatar
      Remove trailing whitespace. · 7c8fb1ad
      Duncan Sands authored
      llvm-svn: 55835
      7c8fb1ad
  23. Sep 04, 2008
  24. Sep 03, 2008
  25. 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
  26. Aug 23, 2008
  27. 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
  28. Aug 14, 2008
  29. 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
  30. Jul 18, 2008
Loading