1. 01 Oct, 2014 2 commits
  2. 24 Sep, 2014 1 commit
  3. 12 Sep, 2014 1 commit
  4. 04 Sep, 2014 2 commits
  5. 28 Aug, 2014 1 commit
  6. 22 Jul, 2014 1 commit
    • Joachim Breitner's avatar
      Make last a good consumer · b709f0a0
      Joachim Breitner authored
      Summary:
      Make last a good consumer simply by implementing it as foldl. This fixes Trac: #9339.
      Thanks to David Feuer for bringing it up.
      
      Test Plan: perf/should_run/T9339 + general validation
      
      Reviewers: austin
      
      Reviewed By: austin
      
      Subscribers: phaskell, simonmar, relrod, carter
      
      Differential Revision: https://phabricator.haskell.org/D86
      
      Trac Issues: #9339
      b709f0a0
  7. 10 Feb, 2014 1 commit
    • Joachim Breitner's avatar
      Implement foldl with foldr · 78221667
      Joachim Breitner authored
      together with the call arity analysis and the following patch (about inlining
      maximum), we get nice benefits from fusing foldl and foldl' with good
      producers:
      
                      Min          -0.1%    -74.5%     -6.8%     -8.3%    -50.0%
                      Max          +0.2%      0.0%    +38.5%    +38.5%      0.0%
           Geometric Mean          -0.0%     -4.1%     +7.7%     +7.7%     -0.8%
      
      Because this depends on a compiler optimisation, we have to watch out for cases
      where this is not an improvements, and whether they occur in the wild.
      78221667
  8. 28 Jan, 2014 1 commit
    • Joachim Breitner's avatar
      go-ify foldr2 · 81b6befa
      Joachim Breitner authored
      This helps with the changes in #7994, but might also generally be a good
      idea (ignore the runtime):
      
      --------------------------------------------------------------------------------
              Program           Size    Allocs   Runtime   Elapsed  TotalMem
                 fft2          -0.1%     -1.5%      0.07      0.07     +0.0%
             fibheaps          +0.0%    -17.2%      0.03      0.03     +0.0%
                fluid          +0.5%     -0.7%      0.01      0.01     +0.0%
            integrate          +0.0%     -0.9%      0.16      0.16     +0.0%
              rewrite          +0.0%     -1.1%      0.02      0.02     +0.0%
      --------------------------------------------------------------------------------
                  Min          -0.1%    -17.2%     -1.6%     +0.0%     +0.0%
                  Max          +0.5%     +0.0%   +107.7%   +106.2%    +11.3%
       Geometric Mean          +0.0%     -0.2%    +23.7%    +23.9%     +0.1%
      81b6befa
  9. 22 Sep, 2013 1 commit
  10. 18 Sep, 2013 2 commits
  11. 14 Feb, 2013 1 commit
  12. 17 Nov, 2012 1 commit
  13. 27 Oct, 2012 1 commit
  14. 25 Jul, 2012 1 commit
  15. 26 Jun, 2011 1 commit
  16. 18 Jun, 2011 1 commit
  17. 28 Jan, 2011 1 commit
  18. 14 Jul, 2010 1 commit
  19. 21 Feb, 2010 1 commit
  20. 26 Nov, 2009 1 commit
  21. 25 Nov, 2009 1 commit
    • rl@cse.unsw.edu.au's avatar
      Make sure zipWithFB has arity 2 · 450bac65
      rl@cse.unsw.edu.au authored
      It gets 2 arguments in the "zipWith" rule but its arity was higher and the new
      inliner didn't inline it sometimes, for instance here:
      
      mpp ::  [Double] -> [Double] -> [Double] -> [Double] -> [Double]
      mpp as bs cs ds = zipWith (*) (zipWith (+) as bs) (zipWith (+) cs ds)
       
      This was a regression vs. 6.10.
      450bac65
  22. 11 Sep, 2009 1 commit
  23. 05 Aug, 2008 1 commit
  24. 04 Aug, 2008 1 commit
  25. 16 Jun, 2008 1 commit
  26. 05 Mar, 2008 1 commit
  27. 20 Jan, 2008 1 commit
  28. 04 Jan, 2008 1 commit
    • simonpj@microsoft.com's avatar
      Remove redundant imports of GHC.Err · ca6fcaad
      simonpj@microsoft.com authored
      GHC.Base SOURCE-imports GHC.Err, and re-exports 'error'.  So 
      other modules need only import GHC.Base.
      
      This doesn't change the fact that these other modules are all compiled
      before GHC.Err, so they are all part of the module loop that starts with
      GHC.Base and finishes with GHC.Err.  But it does reduce the occurrence
      of those SOURCE imports.
      ca6fcaad
  29. 10 Nov, 2007 1 commit
  30. 27 Mar, 2007 1 commit
  31. 04 Dec, 2006 1 commit
  32. 08 May, 2006 3 commits
  33. 03 Mar, 2006 1 commit
  34. 26 Jan, 2006 1 commit
    • Simon Marlow's avatar
      add foldr/build optimisation for take and replicate · 9f29faa8
      Simon Marlow authored
      This allows take to be deforested, and improves performance of
      replicate and replicateM/replicateM_.  We have a separate problem that
      means expressions involving [n..m] aren't being completely optimised
      because eftIntFB isn't being inlined but otherwise the results look
      good.  
      
      Sadly this has invalidated a number of the nofib benchmarks which were
      erroneously using take to duplicate work in a misguided attempt to
      lengthen their runtimes (ToDo).
      9f29faa8
  35. 03 Feb, 2005 1 commit