1. 08 Dec, 2011 1 commit
  2. 29 Nov, 2011 1 commit
  3. 22 Nov, 2011 1 commit
  4. 05 Nov, 2011 2 commits
  5. 04 Nov, 2011 1 commit
  6. 23 Oct, 2011 1 commit
  7. 19 Oct, 2011 4 commits
  8. 18 Oct, 2011 1 commit
    • Ian Lynagh's avatar
      Remove ArchUnknown · 2dea11a4
      Ian Lynagh authored
      It doesn't make sense. If platformArch is ArchUnknown then we don't know
      the answer to any questions about the arch. So now if we don't recognise
      the arch we just fail, and the new arch will need to be added to the
      datatype.
      2dea11a4
  9. 02 Oct, 2011 1 commit
  10. 25 Aug, 2011 2 commits
  11. 21 Aug, 2011 1 commit
    • kgardas's avatar
      enhance ArchARM with ISA and ISA extensions · bab9a72d
      kgardas authored
      This patch enhances ArchARM with ARM ISA and ISA extensions details
      as is suggested in the comment in Platform.hs file. The patch is needed
      by future patch which will use ARM ISA information in order to pass
      appropriate command-line option to the LLVM llc tool.
      bab9a72d
  12. 15 Jul, 2011 5 commits
  13. 12 Jul, 2011 1 commit
  14. 06 Jul, 2011 1 commit
    • batterseapower's avatar
      Refactoring: explicitly mark whether we have an info table in RawCmm · 41ca0b8d
      batterseapower authored
      I introduced this to support explicitly recording the info table label
      in RawCmm for another patch I am working on, but it turned out to lead
      to significant simplification in those parts of the compiler that
      consume RawCmm.
      
      Now, instead of lots of tests for null [CmmStatic] we have a simple
      test of a Maybe, and have reduced the number of guys that need to know
      how to convert entry->info labels by a TON. There are only 3 callers
      of that function now!
      41ca0b8d
  15. 05 Jul, 2011 1 commit
    • batterseapower's avatar
      Refactoring: use a structured CmmStatics type rather than [CmmStatic] · 54843b5b
      batterseapower authored
      I observed that the [CmmStatics] within CmmData uses the list in a very stylised way.
      The first item in the list is almost invariably a CmmDataLabel. Many parts of the
      compiler pattern match on this list and fail if this is not true.
      
      This patch makes the invariant explicit by introducing a structured type CmmStatics
      that holds the label and the list of remaining [CmmStatic].
      
      There is one wrinkle: the x86 backend sometimes wants to output an alignment directive just
      before the label. However, this can be easily fixed up by parameterising the native codegen
      over the type of CmmStatics (though the GenCmmTop parameterisation) and using a pair
      (Alignment, CmmStatics) there instead.
      
      As a result, I think we will be able to remove CmmAlign and CmmDataLabel from the CmmStatic
      data type, thus nuking a lot of code and failing pattern matches. This change will come as part
      of my next patch.
      54843b5b
  16. 27 Jun, 2011 1 commit
  17. 17 Jun, 2011 2 commits
  18. 08 Jun, 2011 1 commit
  19. 31 May, 2011 2 commits
  20. 29 May, 2011 1 commit
    • Ian Lynagh's avatar
      Remove most of the CPP from AsmCodeGen · 622c3cfe
      Ian Lynagh authored
      In particular, the "#error" for platforms without a NCG is gone,
      which means the module should now build on all platforms again.
      
      I'm not sure if this is the nicest way to handle multiple platforms
      here, but it works for now.
      622c3cfe
  21. 15 May, 2011 1 commit
  22. 12 May, 2011 1 commit
  23. 07 May, 2011 1 commit
  24. 04 May, 2011 1 commit
    • Simon Marlow's avatar
      The fix for #4914 was wrong and broke other things (see #5149). We · 296388e8
      Simon Marlow authored
      can't emit the ffrees before a conditional jump, because we don't want
      to ffree the stack registers if the jump isn't taken (d'oh).
      
      This commit fixes it properly, by moving the pass that inserts the
      ffrees to *before* we do the jump-shortcutting which introduces the
      conditional non-local jumps.
      296388e8
  25. 30 Apr, 2011 2 commits
  26. 27 Apr, 2011 1 commit
    • Edward Z. Yang's avatar
      Implement jump table fix-ups for linear register allocator. · 16a037a8
      Edward Z. Yang authored
      
      
      We achieve this by splitting up instruction selection for case
      switches into two parts: the actual code generation, and the
      generation of the accompanying jump table.  With this scheme,
      the jump fixup code can modify the contents of the jump table
      stored within the JMP_TBL (or BCTL) instruction, before the
      actual data section is created.
      
      SPARC and PPC patches are untested; they might not work!
      Signed-off-by: Edward Z. Yang's avatarEdward Z. Yang <ezyang@mit.edu>
      16a037a8
  27. 07 Apr, 2011 1 commit
    • Thomas Schilling's avatar
      Start support for coloured SDoc output. · 4e6bac1e
      Thomas Schilling authored
      The SDoc type now passes around an abstract SDocContext rather than
      just a PprStyle which required touching a few more files.  This should
      also make it easier to integrate DynFlags passing, so that we can get
      rid of global variables.
      4e6bac1e
  28. 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