1. 25 Nov, 2014 1 commit
    • Simon Marlow's avatar
      Make clearNursery free · e22bc0de
      Simon Marlow authored
      Summary:
      clearNursery resets all the bd->free pointers of nursery blocks to
      make the blocks empty.  In profiles we've seen clearNursery taking
      significant amounts of time particularly with large -N and -A values.
      
      This patch moves the work of clearNursery to the point at which we
      actually need the new block, thereby introducing an invariant that
      blocks to the right of the CurrentNursery pointer still need their
      bd->free pointer reset.  This should make things faster overall,
      because we don't need to clear blocks that we don't use.
      
      Test Plan: validate
      
      Reviewers: AndreasVoellmy, ezyang, austin
      
      Subscribers: thomie, carter, ezyang, simonmar
      
      Differential Revision: https://phabricator.haskell.org/D318
      e22bc0de
  2. 14 Aug, 2014 1 commit
    • Herbert Valerio Riedel's avatar
      Implement new CLZ and CTZ primops (re #9340) · e0c1767d
      Herbert Valerio Riedel authored
      This implements the new primops
      
        clz#, clz32#, clz64#,
        ctz#, ctz32#, ctz64#
      
      which provide efficient implementations of the popular
      count-leading-zero and count-trailing-zero respectively
      (see testcase for a pure Haskell reference implementation).
      
      On x86, NCG as well as LLVM generates code based on the BSF/BSR
      instructions (which need extra logic to make the 0-case well-defined).
      
      Test Plan: validate and succesful tests on i686 and amd64
      
      Reviewers: rwbarton, simonmar, ezyang, austin
      
      Subscribers: simonmar, relrod, ezyang, carter
      
      Differential Revision: https://phabricator.haskell.org/D144
      
      GHC Trac Issues: #9340
      e0c1767d
  3. 11 Aug, 2014 1 commit
  4. 09 Aug, 2014 1 commit
  5. 14 May, 2014 1 commit
  6. 10 May, 2014 1 commit
  7. 03 May, 2014 1 commit
  8. 29 Mar, 2014 2 commits
    • Joachim Breitner's avatar
      CopySmallArrayStressTest needs random · c3108234
      Joachim Breitner authored
      c3108234
    • tibbe's avatar
      Add SmallArray# and SmallMutableArray# types · 90329b6c
      tibbe authored
      These array types are smaller than Array# and MutableArray# and are
      faster when the array size is small, as they don't have the overhead
      of a card table. Having no card table reduces the closure size with 2
      words in the typical small array case and leads to less work when
      updating or GC:ing the array.
      
      Reduces both the runtime and memory allocation by 8.8% on my insert
      benchmark for the HashMap type in the unordered-containers package,
      which makes use of lots of small arrays. With tuned GC settings
      (i.e. `+RTS -A6M`) the runtime reduction is 15%.
      
      Fixes #8923.
      90329b6c
  9. 22 Mar, 2014 1 commit
  10. 13 Mar, 2014 1 commit
  11. 11 Mar, 2014 1 commit
  12. 08 Feb, 2014 1 commit
  13. 28 Nov, 2013 1 commit
  14. 02 Oct, 2013 2 commits
  15. 14 Sep, 2013 1 commit
  16. 15 Aug, 2013 1 commit
  17. 14 Aug, 2013 1 commit
  18. 17 Jul, 2013 1 commit
  19. 12 Jun, 2013 1 commit
  20. 09 Jun, 2013 1 commit
  21. 18 Mar, 2013 1 commit
  22. 14 Feb, 2013 1 commit
  23. 11 Feb, 2013 1 commit
  24. 07 Feb, 2013 1 commit
  25. 25 Jan, 2013 1 commit
  26. 17 Jan, 2013 1 commit
  27. 09 Jan, 2013 1 commit
  28. 08 Jan, 2013 1 commit
  29. 13 Dec, 2012 1 commit
  30. 30 Oct, 2012 1 commit
  31. 21 Aug, 2012 1 commit
  32. 27 Jun, 2012 1 commit
  33. 07 Jun, 2012 1 commit
  34. 28 May, 2012 1 commit
  35. 18 Jan, 2012 1 commit
  36. 06 Jan, 2012 1 commit
  37. 15 Nov, 2011 1 commit
  38. 14 Nov, 2011 1 commit