1. 06 Jan, 2012 2 commits
  2. 04 Dec, 2011 2 commits
  3. 29 Nov, 2011 1 commit
  4. 28 Nov, 2011 1 commit
    • Ian Lynagh's avatar
      Implement a capi calling convention; fixes #2979 · 36f8cabe
      Ian Lynagh authored
      In GHC, this provides an easy way to call a C function via a C wrapper.
      This is important when the function is really defined by CPP.
      
      Requires the new CApiFFI extension.
      
      Not documented yet, as it's still an experimental feature at this stage.
      36f8cabe
  5. 22 Nov, 2011 2 commits
    • dterei's avatar
      Formatting fix · f1a6a5cf
      dterei authored
      f1a6a5cf
    • dterei's avatar
      Specify unsupported ops, don't just use a catch all · 53a16984
      dterei authored
      Better to specifically list the unsupported cases in code
      than to have a catch all that panics. The later method hides
      problems when new constructors are added such as the recent
      additions to the supported Cmm prim ops that weren't ported
      to the C backend since no one noticed.
      53a16984
  6. 15 Oct, 2011 1 commit
  7. 02 Oct, 2011 1 commit
  8. 25 Aug, 2011 1 commit
  9. 21 Aug, 2011 1 commit
  10. 06 Jul, 2011 1 commit
  11. 13 Jun, 2011 1 commit
  12. 31 May, 2011 1 commit
  13. 24 Jan, 2011 1 commit
    • Simon Marlow's avatar
      Merge in new code generator branch. · 889c084e
      Simon Marlow authored
      This changes the new code generator to make use of the Hoopl package
      for dataflow analysis.  Hoopl is a new boot package, and is maintained
      in a separate upstream git repository (as usual, GHC has its own
      lagging darcs mirror in http://darcs.haskell.org/packages/hoopl).
      
      During this merge I squashed recent history into one patch.  I tried
      to rebase, but the history had some internal conflicts of its own
      which made rebase extremely confusing, so I gave up. The history I
      squashed was:
      
        - Update new codegen to work with latest Hoopl
        - Add some notes on new code gen to cmm-notes
        - Enable Hoopl lag package.
        - Add SPJ note to cmm-notes
        - Improve GC calls on new code generator.
      
      Work in this branch was done by:
         - Milan Straka <fox@ucw.cz>
         - John Dias <dias@cs.tufts.edu>
         - David Terei <davidterei@gmail.com>
      
      Edward Z. Yang <ezyang@mit.edu> merged in further changes from GHC HEAD
      and fixed a few bugs.
      889c084e
  14. 04 Oct, 2010 1 commit
  15. 21 Jul, 2010 1 commit
  16. 18 Jul, 2010 1 commit
  17. 12 Jul, 2010 1 commit
  18. 07 Jul, 2010 1 commit
  19. 05 Jul, 2010 1 commit
    • dterei's avatar
      LLVM: Stop llvm saving stg caller-save regs across C calls · 0d657c49
      dterei authored
      This is already handled by the Cmm code generator so LLVM is simply
      duplicating work. LLVM also doesn't know which ones are actually live
      so saves them all which causes a fair performance overhead for C calls
      on x64. We stop llvm saving them across the call by storing undef to
      them just before the call.
      0d657c49
  20. 02 Jul, 2010 1 commit
  21. 01 Jul, 2010 1 commit
  22. 30 Jun, 2010 1 commit
    • dterei's avatar
      LLVM: Use getelementptr instruction for a lot of situations · a42400e6
      dterei authored
      LLVM supports creating pointers in two ways, firstly through
      pointer arithmetic (by casting between pointers and ints)
      and secondly using the getelementptr instruction. The second way
      is preferable as it gives LLVM more information to work with.
      
      This patch changes a lot of pointer related code from the first
      method to the getelementptr method.
      a42400e6
  23. 28 Jun, 2010 3 commits
  24. 21 Jun, 2010 1 commit
    • dterei's avatar
      Allow for stg registers to have pointer type in llvm BE. · 4738e101
      dterei authored
      Before all the stg registers were simply a bit type or
      floating point type but now they can be declared to have
      a pointer type to one of these. This will allow various
      optimisations in the future in llvm since the type is
      more accurate.
      4738e101
  25. 24 Jun, 2010 1 commit
  26. 21 Jun, 2010 3 commits
  27. 18 Jun, 2010 1 commit
    • dterei's avatar
      Add support of TNTC to llvm backend · 24a3fee9
      dterei authored
      We do this through a gnu as feature called subsections,
      where you can put data/code into a numbered subsection
      and those subsections will be joined together in descending
      order by gas at compile time.
      24a3fee9
  28. 15 Jun, 2010 1 commit