1. 06 Apr, 2015 1 commit
  2. 05 Apr, 2015 3 commits
  3. 03 Apr, 2015 11 commits
  4. 02 Apr, 2015 6 commits
  5. 01 Apr, 2015 5 commits
  6. 31 Mar, 2015 8 commits
  7. 30 Mar, 2015 5 commits
    • thomie's avatar
      Syntax check package-qualified imports (#9225) · 5971ad56
      thomie authored
      Version numbers are not allowed in the package name of a
      package-qualified import.
      Reviewed By: austin, ezyang
      Differential Revision: https://phabricator.haskell.org/D755
    • thomie's avatar
      Delete unused field `PipeEnv.pe_isHaskellishFile` · b1d6a608
      thomie authored
      Differential Revision: https://phabricator.haskell.org/D774
    • Dave Laing's avatar
    • Joachim Breitner's avatar
      Refactor the story around switches (#10137) · de1160be
      Joachim Breitner authored
      This re-implements the code generation for case expressions at the Stg →
      Cmm level, both for data type cases as well as for integral literal
      cases. (Cases on float are still treated as before).
      The goal is to allow for fancier strategies in implementing them, for a
      cleaner separation of the strategy from the gritty details of Cmm, and
      to run this later than the Common Block Optimization, allowing for one
      way to attack #10124. The new module CmmSwitch contains a number of
      notes explaining this changes. For example, it creates larger
      consecutive jump tables than the previous code, if possible.
      nofib shows little significant overall improvement of runtime. The
      rather large wobbling comes from changes in the code block order
      (see #8082, not much we can do about it). But the decrease in code size
      alone makes this worthwhile.
              Program           Size    Allocs   Runtime   Elapsed  TotalMem
                  Min          -1.8%      0.0%     -6.1%     -6.1%     -2.9%
                  Max          -0.7%     +0.0%     +5.6%     +5.7%     +7.8%
       Geometric Mean          -1.4%     -0.0%     -0.3%     -0.3%     +0.0%
      Compilation time increases slightly:
              -1 s.d.                -----            -2.0%
              +1 s.d.                -----            +2.5%
              Average                -----            +0.3%
      The test case T783 regresses a lot, but it is the only one exhibiting
      any regression. The cause is the changed order of branches in an
      if-then-else tree, which makes the hoople data flow analysis traverse
      the blocks in a suboptimal order. Reverting that gets rid of this
      regression, but has a consistent, if only very small (+0.2%), negative
      effect on runtime. So I conclude that this test is an extreme outlier
      and no reason to change the code.
      Differential Revision: https://phabricator.haskell.org/D720
    • Dave Laing's avatar
      Renames some files to help with validation cleanup (#10212) · e24f6381
      Dave Laing authored
      Test Plan: validate twice
      Reviewed by: thomie
      Differential Revision: https://phabricator.haskell.org/D771
  8. 29 Mar, 2015 1 commit