1. 03 Jul, 2015 1 commit
  2. 20 Jun, 2015 1 commit
  3. 01 Jun, 2015 1 commit
  4. 18 May, 2015 1 commit
  5. 14 May, 2015 1 commit
    • Austin Seipp's avatar
      Revert multiple commits · 3cf8ecdc
      Austin Seipp authored
      This reverts multiple commits from Simon:
      
        - 04a484ea Test Trac #10359
        - a9ccd37a Test Trac #10403
        - c0aae6f6 Test Trac #10248
        - eb6ca851 Make the "matchable-given" check happen first
        - ca173aa3 Add a case to checkValidTyCon
        - 51cbad15 Update haddock submodule
        - 6e1174da Separate transCloVarSet from fixVarSet
        - a8493e03 Fix imports in HscMain (stage2)
        - a154944b Two wibbles to fix the build
        - 5910a1bc Change in capitalisation of error msg
        - 130e93aa Refactor tuple constraints
        - 8da785d5 Delete commented-out line
      
      These break the build by causing Haddock to fail mysteriously when
      trying to examine GHC.Prim it seems.
      3cf8ecdc
  6. 13 May, 2015 1 commit
  7. 03 Apr, 2015 1 commit
  8. 03 Dec, 2014 1 commit
  9. 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
  10. 10 Sep, 2014 1 commit
    • Joachim Breitner's avatar
      Update performance numbers · 71c85300
      Joachim Breitner authored
      including some that are not failing yet, but did show a significant
      change, and some that Austing changed post-AMP, but where both
      harbormaster and ghcspeed reported something else. Numbers taken from
      the ghcspeed machine.
      71c85300
  11. 01 Sep, 2014 2 commits
  12. 24 Aug, 2014 1 commit
  13. 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
  14. 17 Jul, 2014 1 commit
    • Joachim Breitner's avatar
      Adjust a few performance numbers · 13cb4c27
      Joachim Breitner authored
      These did not yet trigger a failure, but are more than 1% away from the
      expected value. Since I now start collecting logs to investigate
      deviations from the expected value, it makes sense to reset them. This
      way we know that every significat deviation was caused since this
      commit.
      
      I only updated bytes_allocated numbers, as these are (mostly)
      deterministic. Other depend, AFAIK, on sampling timing, so I did not
      bother.
      13cb4c27
  15. 14 Jul, 2014 2 commits
  16. 29 Jun, 2014 1 commit
    • Herbert Valerio Riedel's avatar
      Update 32bit & 64bit performance numbers · f12075d3
      Herbert Valerio Riedel authored
      Some numbers have decreased but the haddock numbers have generally
      increased noticeable again (see also last update in 970e5d99)
      
      This updates all numbers I noticed in the "fast" test-mode, *except* for
      the T9203 test-case on 32bit, which needs more investigation before
      bumping due to its significant increase:
      
        bytes allocated value is too high:
            Expected    bytes allocated: 50000000 +/-5%
            Lower bound bytes allocated: 47500000
            Upper bound bytes allocated: 52500000
            Actual      bytes allocated: 85093548
        *** unexpected failure for T9203(normal)
      f12075d3
  17. 17 Jun, 2014 1 commit
  18. 28 Apr, 2014 1 commit
  19. 07 Apr, 2014 1 commit
  20. 22 Mar, 2014 1 commit
    • tibbe's avatar
      codeGen: inline allocation optimization for clone array primops · 1eece456
      tibbe authored
      The inline allocation version is 69% faster than the out-of-line
      version, when cloning an array of 16 unit elements on a 64-bit
      machine.
      
      Comparing the new and the old primop implementations isn't
      straightforward. The old version had a missing heap check that I
      discovered during the development of the new version. Comparing the
      old and the new version would requiring fixing the old version, which
      in turn means reimplementing the equivalent of MAYBE_CG in StgCmmPrim.
      
      The inline allocation threshold is configurable via
      -fmax-inline-alloc-size which gives the maximum array size, in bytes,
      to allocate inline. The size does not include the closure header size.
      
      Allowing the same primop to be either inline or out-of-line has some
      implication for how we lay out heap checks. We always place a heap
      check around out-of-line primops, as they may allocate outside of our
      knowledge. However, for the inline primops we only allow allocation
      via the standard means (i.e. virtHp). Since the clone primops might be
      either inline or out-of-line the heap check layout code now consults
      shouldInlinePrimOp to know whether a primop will be inlined.
      1eece456
  21. 13 Mar, 2014 1 commit
  22. 11 Mar, 2014 1 commit
  23. 10 Feb, 2014 1 commit
    • Joachim Breitner's avatar
      Update test cases due to call arity · 393ea739
      Joachim Breitner authored
      Some nice improvements on already succeeding test cases (#876, #7954
      and #4267)
      
      Test #149 needed a little change, lest call arity causes a allocation
      change that we do not want to test here.
      393ea739
  24. 28 Jan, 2014 1 commit
    • Austin Seipp's avatar
      Update some mingw32 perf numbers. · db9baf08
      Austin Seipp authored
      I forgot to push these from my win32 machine. A lot of them actually
      look like a result of Herbert doing his GMP work, which might slightly
      affect allocations on platforms like Windows (where we always use
      in-tree GMP - but presumably Windows allocations could fluxuate slightly
      due to minute details in the GMP implementation, too.)
      Signed-off-by: default avatarAustin Seipp <austin@well-typed.com>
      db9baf08
  25. 22 Jan, 2014 1 commit
  26. 20 Jan, 2014 1 commit
  27. 17 Jan, 2014 2 commits
  28. 13 Jan, 2014 2 commits
  29. 06 Jan, 2014 1 commit
  30. 28 Dec, 2013 1 commit
  31. 12 Dec, 2013 1 commit
  32. 29 Aug, 2013 1 commit
  33. 28 Jul, 2013 1 commit
  34. 13 Jul, 2013 1 commit
  35. 02 Jul, 2013 1 commit
  36. 24 Jun, 2013 1 commit