1. 03 Apr, 2015 5 commits
  2. 02 Apr, 2015 6 commits
  3. 01 Apr, 2015 5 commits
  4. 31 Mar, 2015 8 commits
  5. 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
  6. 29 Mar, 2015 1 commit
  7. 28 Mar, 2015 1 commit
  8. 27 Mar, 2015 3 commits
    • thomie's avatar
      Rename driver phases C(obj)cpp to C(obj)cplusplus · abde5da4
      thomie authored
      Cpp     = Pre-process C
      Ccpp    = Compile C++
      Cobjcpp = Compile Objective-C++
      CmmCpp  = Pre-process Cmm
      Quite confusing! This commit renames `Ccpp` to `Ccplusplus`, and
      `Cobjcpp` to `Cobjcplusplus`. The two letters `p-p` keep standing for
      `pre-processing` throughout the compiler.
      Reviewed By: austin
      Differential Revision: https://phabricator.haskell.org/D756
    • rwbarton's avatar
      Update list of primops that don't get wrappers (#10191) · af45feba
      rwbarton authored
      The list was 14 years old, and there don't seem to be any problems
      with seq# or par#; the other par*# primops were not actually
      implemented at all and were removed in D758.
      Test Plan:
      validate; will also try to locally validate an unregisterised build
      in case there was some truth to the deleted comment
      Reviewers: austin
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D759
      GHC Trac Issues: #10191
    • rwbarton's avatar
      Remove some unimplemented GranSim primops · 90dd11bf
      rwbarton authored
      An attempt to use these resulted in an error like:
      [1 of 1] Compiling Main             ( p.hs, p.o )
      ghc: panic! (the 'impossible' happened)
        (GHC version 7.8.4 for x86_64-unknown-linux):
      	emitPrimOp: can't translate PrimOp  parAt#{v}
      Test Plan: validate
      Reviewers: thomie, austin
      Reviewed By: thomie, austin
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D758
  9. 26 Mar, 2015 1 commit
    • Herbert Valerio Riedel's avatar
      Fix Git-commit-id detection for RELEASE=YES · 5aa57d01
      Herbert Valerio Riedel authored
      By mistake, the Git-commit-id detection was only enabled for
      `RELEASE=NO` (since the date-based GHC version computation is
      only active in that case). With this commit the commit-id
      detection is active regardless of the `RELEASE`-setting.
      This is a follow-up to 73e5e2f8
  10. 25 Mar, 2015 1 commit
  11. 24 Mar, 2015 4 commits
    • Simon Peyton Jones's avatar
    • Simon Peyton Jones's avatar
      Improve environment handling in TcBinds · 8eaa70a6
      Simon Peyton Jones authored
      This is a minor refactoring, but it simplifies the code quite a bit
      * Decrease the number of variants of tcExtend in TcEnv
      * Remove "not_actually_free" from TcEnv.tc_extend_local_env2
      * Simplify plumbingof the "closed" flag
      * Remove redundant scoping of wild-card variables
    • Joachim Breitner's avatar
      Some stress tests for the empty case linter · 6cf0c796
      Joachim Breitner authored
      This is a variation of T2431 where the emptyness of the type is hidden
      behind a newtype, a type family and a closed type family. In all cases,
      it would be sound for the compiler to determine that the equality type
      is empty and the case alternatives may be dropped.
      At the moment, GHC does _not_ determine that. But if it ever does, this
      test ensures that we do not forget to make the lint from #10180 smarter
      as well.
    • thomie's avatar
      Delete DynFlag for NDP way · 484d2b16
      thomie authored
      The last trace of NDP was removed in 2008 in commit:
      NDP stood for 'Nested Data Parallelism'. It was superseded by Data
      Parallel Haskell (DPH).
      Reviewed By: austin
      Differential Revision: https://phabricator.haskell.org/D752