1. 22 Mar, 2014 2 commits
    • Joachim Breitner's avatar
      Mark test for #8831 as known-broken · 4bc3c826
      Joachim Breitner authored
      to keep validate working.
    • 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
      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.
  2. 21 Mar, 2014 5 commits
  3. 20 Mar, 2014 1 commit
    • tibbe's avatar
      Don't use gcptr for interior pointers · a6939ec2
      tibbe authored
      gcptr should only be used for pointers that the GC should
      follow. While this didn't cause any bugs right now, since these
      variables aren't live over a GC, it's clearer to use the right type.
  4. 19 Mar, 2014 3 commits
  5. 18 Mar, 2014 3 commits
  6. 17 Mar, 2014 7 commits
  7. 16 Mar, 2014 4 commits
  8. 14 Mar, 2014 15 commits