1. 15 Oct, 2011 1 commit
  2. 02 Oct, 2011 1 commit
  3. 25 Aug, 2011 1 commit
  4. 21 Aug, 2011 1 commit
  5. 06 Jul, 2011 1 commit
  6. 13 Jun, 2011 1 commit
  7. 31 May, 2011 1 commit
  8. 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.
  9. 04 Oct, 2010 1 commit
  10. 21 Jul, 2010 1 commit
  11. 18 Jul, 2010 1 commit
  12. 12 Jul, 2010 1 commit
  13. 07 Jul, 2010 1 commit
  14. 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.
  15. 02 Jul, 2010 1 commit
  16. 01 Jul, 2010 1 commit
  17. 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.
  18. 28 Jun, 2010 3 commits
  19. 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.
  20. 24 Jun, 2010 1 commit
  21. 21 Jun, 2010 3 commits
  22. 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.
  23. 15 Jun, 2010 1 commit