Switch branches/tags
Nothing to show
Commits on Oct 7, 2011
  1. Added WheelSieve1 benchmark from nofib

    dmpots committed Oct 7, 2011
    It currently fails with a segfault, probably due to lack of
    heap overflow checks.
Commits on Oct 6, 2011
  1. Added Queens benchmark from nofib

    dmpots committed Oct 6, 2011
    It currently fails with a segfault, probably due to lack of
    heap overflow checks.
  2. Mark SumSquare1 test as XFAIL

    dmpots committed Oct 6, 2011
    As noted in commit d980d70, the test is expected to fail
    because of a GC occuring in the IR interpreter.
Commits on Sep 25, 2011
Commits on Sep 24, 2011
  1. Megapatch: Fix allocation sinking.

    nominolo committed Sep 24, 2011
    Finding cycles in heap nodes now seems to work correctly.  Nodes that
    are updated should also be handled better.  This work required a
    number of changes and refactorings, including:
      * We now emit PHI nodes for every unrolled instruction that is not
        completely loop invariant.  Before, we didn't emit a PHI node for an
        instruction `i` if the `rename[i]` did occur before the LOOP marker.
        That was plain wrong.  As a counter example see tests
      * This leads to many PHI nodes being emitted initially, but DCE
        removes most of them.
      * PHI nodes are now also properly treated as parallel assignments
        in the IR interpreter.  The codegen still needs updating.
      * When looking for cycles in heap nodes we now treat PHIs as separate
        nodes and don't try looking through them.  This is needed because
        the second argument of a PHI node may be another PHI node.  We can
        actually have full loops.
      * When a PHI node is updated, do not try to sink any of the nodes
        reachable from that PHI node.  We're basically performing a write
        into values from a previous loop iteration, so we probably can't
        optimise that any better.
      * All tests but one are passing.  The failing one,
        Bench/SumSquare1.hs, is failing due to GC occurring in the middle of
        the IR interpreter.  The fix will be to use proper HEAPCHECK guard
        IR instructions.  That'll come next.
  2. Move static assertions to another line.

    nominolo committed Sep 24, 2011
    The mechanism for static assertions leads to duplicate identifiers if
    multiple files contain static assertions on the same line.  Yeah, it's
    a bit silly, but not too serious.
Commits on Sep 18, 2011
  1. Update HACKING file.

    nominolo committed Sep 18, 2011
  2. Add option to not compile the code generator.

    nominolo committed Sep 18, 2011
    This is useful when developing on machines where there is no working
    backend.  (E.g., currently my old Mac and my netbook.)  To use this
    put the following line into your mk/
        DisableAsm = Yes
  3. Fix import.

    nominolo committed Sep 18, 2011
Commits on Sep 16, 2011
  1. Use the actual hp when running native code

    dmpots committed Sep 16, 2011
    We now have a real heap pointer that we can use when
    executing native assembly code thanks to the changes from
    the GC branch.
  2. Fix build error with DebugLevel=0

    dmpots committed Sep 16, 2011
    When building without debugging the stdio.h files are not
    included before a function prototype that uses a FILE
Commits on Sep 8, 2011
Commits on Aug 30, 2011
  1. Use the usage type of identifiers for calculating type info.

    nominolo committed Aug 30, 2011
    We got a compiler crash when trying to compile the expression:
      app :: (a -> b) -> a -> b
      test = (app eqInt 3) (4 :: Int)
    The problem is that, per its polymorphic type, `app` only takes two
    parameters.  However, when instantiating `b` with a function type
    it may take more, as in the above case.
    The fix is to look at the instantiated type of `app` when using its
    type information.  The fix is currently nicely localised in the
    `viewGhcApp` function.  Let's see if there are some hidden gotchas
    I haven't encountered, yet.
Commits on Aug 27, 2011
  1. Fix test Bc/Bc0011.hs. (Silly off-by-one error.)

    nominolo committed Aug 27, 2011
    The error was introduced when I changed the encoding of CALL
    instructions.  There may be more.
  2. Fix test Bc/Bc0009.hs.

    nominolo committed Aug 27, 2011
Commits on Aug 23, 2011
  1. Merge gc codegen testsuite branches together

    dmpots committed Aug 23, 2011
    This commit represents the merge of the gc, codegen, and
    testsuite branches.
Commits on Aug 19, 2011
  1. Merge branch 'asmfailures'

    dmpots committed Aug 19, 2011
    These commits fix all asm codegen failures in the testsuite.
  2. Increase size of the fake heap used in asm traces

    dmpots committed Aug 19, 2011
    The fake heap was too small which was causing some problems
    when too much data was allocated on a trace. We increase the
    size to allow the fake heap to work for more traces.
    The Bench.SumSquare1 test now passes.
  3. Fix bug in storage manager region allocator

    dmpots committed Aug 19, 2011
    The allocator was not working correctly when an
    allocation caused it to need to allocate a new region. It
    was returning the end of the new region instead of the
    beginning of the new region.
  4. Fixed bug in register allocator

    dmpots committed Aug 19, 2011
    We were not properly handling the case where a value is live
    on entry to the loop but dies in the loop and its register
    gets reused for another value. The register would have the
    wrong value after the first iteration of the loop.
    The fix is to insert a load of the invariant at the top of
    the loop when its register is modified in the body of the
    The Bench.Primes test is now working.
  5. Fixed error in FLOAD codegen

    dmpots committed Aug 19, 2011
    When the FLOAD was loading from a FREF whose first operand
    was a constant, the code generated was incorrect. We now
    correctly handle this case.
    To make this work we moved all code for generating the
    correct FREF inside the FLOAD. The `fuseload` function is
    now unused so we delete it in this commit.
    The Bench.SumFromTo3 test now passes successfully.
Commits on Aug 18, 2011
  1. Updated debugging settings

    dmpots committed Aug 18, 2011
  2. Updated gitignore

    dmpots committed Aug 18, 2011
  3. Fix codegen for IMUL instruction

    dmpots committed Aug 18, 2011
    The IMUL instruction was not getting encoded correctly. It
    needs special case handling in asm_intarith.