Skip to content
  1. Sep 22, 2008
  2. Sep 19, 2008
  3. Sep 17, 2008
  4. Sep 16, 2008
    • Dan Gohman's avatar
      Improve instcombine's handling of integer min and max in two ways: · dafa9c6e
      Dan Gohman authored
       - Recognize expressions like "x > -1 ? x : 0" as min/max and turn them
         into expressions like "x < 0 ? 0 : x", which is easily recognizable
         as a min/max operation.
       - Refrain from folding expression like "y/2 < 1" to "y < 2" when the
         comparison is being used as part of a min or max idiom, like
         "y/2 < 1 ? 1 : y/2". In that case, the division has another use, so
         folding doesn't eliminate it, and obfuscates the min/max, making it
         harder to recognize as a min/max operation.
      
      These benefit ScalarEvolution, CodeGen, and anything else that wants to
      recognize integer min and max.
      
      llvm-svn: 56246
      dafa9c6e
  5. Sep 15, 2008
    • Dan Gohman's avatar
      Teach LSR to optimize away SMAX operations for tripcounts in common · 68e7735a
      Dan Gohman authored
      cases.  See the comment above OptimizeSMax for the full story, and
      the testcase for an example. This cancels out a pessimization
      commonly attributed to indvars, and will allow us to lift some of
      the artificial throttles in indvars, rather than add new ones.
      
      llvm-svn: 56230
      68e7735a
  6. Sep 12, 2008
  7. Sep 11, 2008
  8. Sep 10, 2008
  9. Sep 09, 2008
  10. Sep 08, 2008
  11. Sep 05, 2008
  12. Sep 04, 2008
  13. Sep 03, 2008
  14. Sep 01, 2008
    • Duncan Sands's avatar
      Add a small pass that sets the readnone/readonly · 130d9efe
      Duncan Sands authored
      attributes on functions, based on the result of
      alias analysis.  It's not hardwired to use
      GlobalsModRef even though this is the only (AFAIK)
      alias analysis that results in this pass actually
      doing something.  Enable as follows:
        opt ... -globalsmodref-aa -markmodref ...
      Advantages of this pass: (1) records the result
      of globalsmodref in the bitcode, meaning it is
      available for use by later passes (currently
      the pass manager isn't smart enough to magically
      make an advanced alias analysis available to all
      later passes), which may expose more optimization
      opportunities; (2) hopefully speeds up compilation
      when code is optimized twice, for example when a
      file is compiled to bitcode, then later LTO is done
      on it: marking functions readonly/readnone when
      producing the initial bitcode should speed up alias
      analysis during LTO; (3) good for discovering that
      globalsmodref doesn't work very well :)
      Not currently turned on by default.
      
      llvm-svn: 55604
      130d9efe
  15. Aug 27, 2008
  16. Aug 26, 2008
  17. Aug 24, 2008
    • Chris Lattner's avatar
      improve encapsulation of the BBExecutable set. · add44f3f
      Chris Lattner authored
      llvm-svn: 55271
      add44f3f
    • Chris Lattner's avatar
      Switch an assortment of maps, sets and vectors to more efficient versions, · 65938fc6
      Chris Lattner authored
      patch contributed by m-s!
      
      llvm-svn: 55270
      65938fc6
    • 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
Loading