1. 07 Jul, 2009 1 commit
  2. 06 Jul, 2009 1 commit
  3. 01 Jul, 2009 1 commit
  4. 11 Jun, 2009 1 commit
  5. 09 Jun, 2009 1 commit
    • Duncan Coutts's avatar
      Add PrimCall to the STG layer and update Core -> STG translation · cbbee4e8
      Duncan Coutts authored
      It adds a third case to StgOp which already hold StgPrimOp and StgFCallOp.
      The code generation for the new StgPrimCallOp case is almost exactly the
      same as for out-of-line primops. They now share the tailCallPrim function.
      In the Core -> STG translation we map foreign calls using the "prim"
      calling convention to the StgPrimCallOp case. This is because in Core we
      represent prim calls using the ForeignCall stuff. At the STG level however
      the prim calls are really much more like primops than foreign calls.
      cbbee4e8
  6. 18 Jun, 2009 1 commit
  7. 02 Jun, 2009 1 commit
  8. 31 Mar, 2009 1 commit
  9. 03 Apr, 2009 1 commit
    • dias@eecs.tufts.edu's avatar
      Debugging by Sesame Street: · dc9db2a8
      dias@eecs.tufts.edu authored
      One of these things is not like the others:
      
      stdPattern :: [LRep] -> Maybe StgHalfWord
      stdPattern reps
        = case reps of
              []  -> Just ARG_NONE    -- just void args, probably
              [N] -> Just ARG_N
              [P] -> Just ARG_N
              [F] -> Just ARG_F
              [D] -> Just ARG_D
              [L] -> Just ARG_L
      
      Today's debugging session was brought to you by the letter P.
      dc9db2a8
  10. 25 Mar, 2009 1 commit
  11. 23 Mar, 2009 5 commits
  12. 18 Mar, 2009 1 commit
  13. 17 Mar, 2009 1 commit
  14. 16 Mar, 2009 1 commit
  15. 18 Mar, 2009 1 commit
  16. 17 Mar, 2009 1 commit
    • Simon Marlow's avatar
      FIX biographical profiling (#3039, probably #2297) · f8f4cb3f
      Simon Marlow authored
      Since we introduced pointer tagging, we no longer always enter a
      closure to evaluate it.  However, the biographical profiler relies on
      closures being entered in order to mark them as "used", so we were
      getting spurious amounts of data attributed to VOID.  It turns out
      there are various places that need to be fixed, and I think at least
      one of them was also wrong before pointer tagging (CgCon.cgReturnDataCon).
      f8f4cb3f
  17. 03 Mar, 2009 1 commit
    • dias@eecs.harvard.edu's avatar
      A few bug fixes; some improvements spurred by paper writing · 31a9d048
      dias@eecs.harvard.edu authored
      Among others:
      - Fixed Stg->C-- translation of let-no-escapes -- it's important to use the
        right continuation...
      - Fixed infinite recursion in X86 backend (shortcutJump mishandled infinite loops)
      - Fixed yet another wrong calling convention -- primops take args only in vanilla regs,
        but they may return results on the stack!
      - Removed StackInfo from LGraph and Block -- now in LastCall and CmmZ
      - Updated avail-variable and liveness code
      31a9d048
  18. 06 Feb, 2009 2 commits
    • Ian Lynagh's avatar
      Fix the build on amd64/Linux · 232e7212
      Ian Lynagh authored
      232e7212
    • Ian Lynagh's avatar
      When generating C, don't pretend functions are data · 497302c4
      Ian Lynagh authored
      We used to generated things like:
          extern StgWordArray (newCAF) __attribute__((aligned (8)));
          ((void (*)(void *))(W_)&newCAF)((void *)R1.w);
      (which is to say, pretend that newCAF is some data, then cast it to a
      function and call it).
      This goes wrong on at least IA64, where:
          A function pointer on the ia64 does not point to the first byte of
          code. Intsead, it points to a structure that describes the function.
          The first quadword in the structure is the address of the first byte
          of code
      so we end up dereferencing function pointers one time too many, and
      segfaulting.
      497302c4
  19. 14 Jan, 2009 1 commit
  20. 13 Jan, 2009 1 commit
  21. 29 Dec, 2008 6 commits
  22. 18 Dec, 2008 1 commit
  23. 17 Dec, 2008 8 commits