1. 25 Aug, 2011 2 commits
  2. 22 Aug, 2011 1 commit
  3. 19 Aug, 2011 1 commit
  4. 16 Aug, 2011 1 commit
  5. 14 Aug, 2011 1 commit
  6. 05 Aug, 2011 1 commit
  7. 02 Aug, 2011 1 commit
  8. 29 Jul, 2011 4 commits
  9. 28 Jul, 2011 4 commits
  10. 27 Jul, 2011 1 commit
  11. 15 Jul, 2011 1 commit
    • Ian Lynagh's avatar
      More work towards cross-compilation · f07af788
      Ian Lynagh authored
      There's now a variant of the Outputable class that knows what
      platform we're targetting:
      
      class PlatformOutputable a where
          pprPlatform :: Platform -> a -> SDoc
          pprPlatformPrec :: Platform -> Rational -> a -> SDoc
      
      and various instances have had to be converted to use that class,
      and we pass Platform around accordingly.
      f07af788
  12. 13 Jul, 2011 1 commit
  13. 07 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 3 commits
    • batterseapower's avatar
      Don't export SRT labels · 2aa40627
      batterseapower authored
      2aa40627
    • batterseapower's avatar
    • 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. 28 Jun, 2011 1 commit
  17. 24 Jun, 2011 2 commits
  18. 23 Jun, 2011 1 commit
    • tibbe's avatar
      Iteratively try to fold expressions before constant propagation · e9bc0dde
      tibbe authored
      Before this change the constant expression
      
         _ccI::I64 = (16 >> 7) + 1;
      
      wouldn't be propagated, as it wouldn't be completely folded.  This
      meant that this expression wouldn't be unrolled
      
          thawArray# arr# 0# 16# s#
      
      The new code generator already does this correctly.
      e9bc0dde
  19. 17 Jun, 2011 5 commits
  20. 14 Jun, 2011 6 commits
  21. 13 Jun, 2011 1 commit