1. 16 Jan, 2019 1 commit
  2. 06 Feb, 2017 1 commit
  3. 31 Mar, 2015 1 commit
    • Herbert Valerio Riedel's avatar
      Drop old integer-gmp-0.5 from GHC source tree · 995e8c1c
      Herbert Valerio Riedel authored
      This completes what c774b28f (#9281)
      started.  `integer-gmp-1.0` was added as an additional
      `libraries/integer-gmp2` folder while retaining the ability to configure
      GHC w/ the old `integer-gmp-0.5` to have a way back, and or the ability
      to easily switch between old/new `integer-gmp` for benchmark/debugging
      purposes.
      
      This commit removes the old `libraries/integer-gmp` folder and moves
      `libraries/integer-gmp2` into its place, while removing any mentions of
      "gmp2" as well as the to support two different `integer-gmp` packages in
      GHC's source-tree.
      
      Reviewed By: austin
      
      Differential Revision: https://phabricator.haskell.org/D769
      995e8c1c
  4. 12 Nov, 2014 1 commit
    • Herbert Valerio Riedel's avatar
      Implement new integer-gmp2 from scratch (re #9281) · c774b28f
      Herbert Valerio Riedel authored
      This is done as a separate `integer-gmp2` backend library because it
      turned out to become a complete rewrite from scratch.
      
      Due to the different (over)allocation scheme and potentially different
      accounting (via the new `{shrink,resize}MutableByteArray#` primitives),
      some of the nofib benchmarks actually results in increased allocation
      numbers (but not necessarily an increase in runtime!).  I believe the
      allocation numbers could improve if `{resize,shrink}MutableByteArray#`
      could be optimised to reallocate in-place more efficiently.
      
      Here are the more apparent changes in the latest nofib comparision
      between `integer-gmp` and `integer-gmp2`:
      
        ------------------------------------------------------------------
                Program     Size    Allocs   Runtime   Elapsed  TotalMem
        ------------------------------------------------------------------
                    ...
             bernouilli    +1.6%    +15.3%     0.132     0.132      0.0%
                    ...
           cryptarithm1    -2.2%      0.0%     -9.7%     -9.7%      0.0%
                    ...
                  fasta    -0.7%     -0.0%    +10.9%    +10.9%      0.0%
                    ...
                  kahan    +0.6%    +38.9%     0.169     0.169      0.0%
                    ...
                   lcss    -0.7%     -0.0%     -6.4%     -6.4%      0.0%
                    ...
                 mandel    +1.6%    +33.6%     0.049     0.049      0.0%
                    ...
               pidigits    +0.8%     +8.5%     +3.9%     +3.9%      0.0%
                  power    +1.4%    -23.8%    -18.6%    -18.6%    -16.7%
                    ...
              primetest    +1.3%    +50.1%     0.085     0.085      0.0%
                    ...
                    rsa    +1.6%    +53.4%     0.026     0.026      0.0%
                    ...
                    scs    +1.2%     +6.6%     +6.5%     +6.6%    +14.3%
                    ...
                 symalg    +1.0%     +9.5%     0.010     0.010      0.0%
                    ...
              transform    -0.6%     -0.0%     -5.9%     -5.9%      0.0%
                    ...
        ------------------------------------------------------------------
                    Min    -2.3%    -23.8%    -18.6%    -18.6%    -16.7%
                    Max    +1.6%    +53.4%    +10.9%    +10.9%    +14.3%
         Geometric Mean    -0.3%     +1.9%     -0.8%     -0.8%     +0.0%
      
      (see P35 / https://phabricator.haskell.org/P35 for full report)
      
      By default, `INTEGER_LIBRARY=integer-gmp2` is active now, which results
      in the package `integer-gmp-1.0.0.0` being registered in the package db.
      The previous `integer-gmp-0.5.1.0` can be restored by setting
      `INTEGER_LIBRARY=integer-gmp` (but will probably be removed altogether
      for GHC 7.12). In-tree GMP support has been stolen from the old
      `integer-gmp` (while unpatching the custom memory-allocators, as well as
      forcing `-fPIC`)
      
      A minor hack to `ghc-cabal` was necessary in order to support two different
      `integer-gmp` packages (in different folders) with the same package key.
      
      There will be a couple of follow-up commits re-implementing some features
      that were dropped to keep D82 minimal, as well as further
      clean-ups/improvements.
      
      More information can be found via #9281 and
      https://ghc.haskell.org/trac/ghc/wiki/Design/IntegerGmp2
      
      Reviewed By: austin, rwbarton, simonmar
      
      Differential Revision: https://phabricator.haskell.org/D82
      c774b28f
  5. 31 Jan, 2014 1 commit
  6. 19 Jul, 2013 1 commit
  7. 05 Aug, 2012 1 commit
  8. 19 Jun, 2012 1 commit
  9. 17 Sep, 2011 1 commit
  10. 13 Sep, 2011 1 commit
  11. 30 Jul, 2011 2 commits
  12. 23 Jul, 2011 2 commits
  13. 22 Jul, 2011 2 commits
  14. 11 Jan, 2011 1 commit
  15. 04 Dec, 2010 1 commit
  16. 12 Nov, 2010 1 commit
  17. 26 Oct, 2010 1 commit
  18. 23 Oct, 2010 1 commit
  19. 13 Aug, 2010 1 commit
  20. 23 Jun, 2010 1 commit
  21. 22 Jul, 2009 1 commit
  22. 21 Jul, 2009 1 commit
  23. 22 Jun, 2009 1 commit
  24. 15 Jun, 2009 1 commit
  25. 13 Jun, 2009 2 commits
  26. 02 Jun, 2009 1 commit
  27. 24 Apr, 2009 1 commit
  28. 11 Feb, 2009 1 commit
  29. 20 Nov, 2008 1 commit
    • Simon Marlow's avatar
      Fix performance regression in quotRemInteger/divModInteger · c05b2a37
      Simon Marlow authored
      This fixes most of the performance regression in these functions
      between 6.8.3 and 6.10.1, it was due to a slight difference in the
      strictness between the old and new versions (see comments for
      details).  There's still a few percent loss in performance in the div
      test in nofib/spectral/integer that I haven't tracked down as yet.
      c05b2a37
  30. 25 Sep, 2008 1 commit
  31. 16 Jun, 2008 1 commit
  32. 12 Apr, 2008 2 commits
  33. 25 Mar, 2008 1 commit
  34. 23 Mar, 2008 2 commits