1. 30 Jan, 2013 1 commit
  2. 10 Jan, 2013 1 commit
    • tibbe's avatar
      Add preprocessor defines when SSE is enabled · bab8dc79
      tibbe authored
      This will add the following preprocessor defines when Haskell source
      files are compiled:
      
       * __SSE__ - If any version of SSE is enabled
       * __SSE2__ - If SSE2 or greater is enabled
       * __SSE4_2_ - If SSE4.2 is enabled
      
      Note that SSE2 is enabled by default on x86-64.
      bab8dc79
  3. 13 Dec, 2012 1 commit
  4. 12 Nov, 2012 1 commit
    • Simon Marlow's avatar
      Remove OldCmm, convert backends to consume new Cmm · d92bd17f
      Simon Marlow authored
      This removes the OldCmm data type and the CmmCvt pass that converts
      new Cmm to OldCmm.  The backends (NCGs, LLVM and C) have all been
      converted to consume new Cmm.
      
      The main difference between the two data types is that conditional
      branches in new Cmm have both true/false successors, whereas in OldCmm
      the false case was a fallthrough.  To generate slightly better code we
      occasionally need to invert a conditional to ensure that the
      branch-not-taken becomes a fallthrough; this was previously done in
      CmmCvt, and it is now done in CmmContFlowOpt.
      
      We could go further and use the Hoopl Block representation for native
      code, which would mean that we could use Hoopl's postorderDfs and
      analyses for native code, but for now I've left it as is, using the
      old ListGraph representation for native code.
      d92bd17f
  5. 01 Nov, 2012 1 commit
  6. 30 Oct, 2012 2 commits
  7. 16 Oct, 2012 1 commit
    • ian@well-typed.com's avatar
      Some alpha renaming · cd33eefd
      ian@well-typed.com authored
      Mostly d -> g (matching DynFlag -> GeneralFlag).
      Also renamed if* to when*, matching the Haskell if/when names
      cd33eefd
  8. 25 Sep, 2012 1 commit
  9. 24 Sep, 2012 2 commits
  10. 16 Sep, 2012 1 commit
  11. 14 Sep, 2012 1 commit
  12. 12 Sep, 2012 2 commits
  13. 28 Aug, 2012 1 commit
    • ian@well-typed.com's avatar
      Move more code into codeGen/CodeGen/Platform.hs · c0907ed2
      ian@well-typed.com authored
      HaskellMachRegs.h is no longer included in anything under compiler/
      
      Also, includes/CodeGen.Platform.hs now includes "stg/MachRegs.h"
      rather than <stg/MachRegs.h> which means that we always get the file
      from the tree, rather than from the bootstrapping compiler.
      c0907ed2
  14. 21 Aug, 2012 2 commits
  15. 16 Jul, 2012 1 commit
    • Ian Lynagh's avatar
      Make -fPIC a dynamic flag · cdf946e4
      Ian Lynagh authored
      Hopefully I've kept the logic the same, and we now generate warnings if
      the user does -fno-PIC but we ignore them (e.g. because they're on OS X
      amd64).
      cdf946e4
  16. 06 Jul, 2012 1 commit
    • Simon Marlow's avatar
      Allow the register allocator access to argument regs (R1.., F1.., etc.) · f857f074
      Simon Marlow authored
      This was made possible by the recent change to codeGen to attach the
      live GlobalRegs to every CmmJump, and we'll be relying on it quite
      heavily in the new code generator too.
      
      What this means essentially is that when we see
      
        x = R1
      
      the register allocator will automatically assign x to R1 and generate
      no code at all (also known as "coalescing"). It wasn't possible before
      because the register allocator had to assume that R1 was always live,
      because it didn't have access to accurate liveness information.
      f857f074
  17. 13 Jun, 2012 2 commits
  18. 05 Jun, 2012 1 commit
  19. 21 Apr, 2012 2 commits
  20. 21 Mar, 2012 3 commits
  21. 20 Mar, 2012 1 commit
  22. 27 Feb, 2012 1 commit
  23. 24 Feb, 2012 3 commits
  24. 23 Feb, 2012 3 commits
  25. 17 Feb, 2012 2 commits
  26. 14 Feb, 2012 1 commit
  27. 10 Jan, 2012 1 commit
    • dterei's avatar
      Track STG live register information for use in LLVM · 4384e146
      dterei authored
      We now carry around with CmmJump statements a list of
      the STG registers that are live at that jump site.
      This is used by the LLVM backend so it can avoid
      unnesecarily passing around dead registers, improving
      perfromance. This gives us the framework to finally
      fix trac #4308.
      4384e146