1. 02 Apr, 2015 3 commits
  2. 01 Apr, 2015 5 commits
  3. 31 Mar, 2015 8 commits
  4. 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
  5. 29 Mar, 2015 1 commit
  6. 28 Mar, 2015 1 commit
  7. 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
  8. 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
  9. 25 Mar, 2015 1 commit
  10. 24 Mar, 2015 7 commits
  11. 23 Mar, 2015 5 commits
    • Erik de Castro Lopo's avatar
      Do version specific detection of LLVM tools (#10170). · 42448e37
      Erik de Castro Lopo authored
      The LLVM developers seem to make breaking changes in the LLVM IR
      language between major releases. As a consumer of the LLVM tools
      GHC now needs to be locked more tightly to a single version of
      the LLVM tools.
      GHC HEAD currently only supports LLVM version 3.6. This commit
      changes the configure script to look for `llc-3.6` and `opt-3.6`
      before looking for `llc` and `opt`. If the former are not found,
      but the later are, check that they actually are version 3.6.
      At the same time, when detecting known problems with the LLVM
      tools (ie #9439) test for it using the versions of the LLVM tools
      retrieved from the bootstrap compiler's settings file.
      Test Plan: Manual testing.
      Reviewers: thomie, rwbarton, nomeata, austin
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D745
      GHC Trac Issues: #10170
    • Joachim Breitner's avatar
      isEmptyTy: Improve comment · aef4de47
      Joachim Breitner authored
      [skip ci]
    • Joachim Breitner's avatar
      Add Note [No alternatives lint check] · 8f080696
      Joachim Breitner authored
      in a follow up to #10180.
    • Joachim Breitner's avatar
      New lint check: Check idArity invariants (#10181) · 567db32b
      Joachim Breitner authored
      The arity of an id should not be larger than what the type allows, and
      it should also not contradict the strictness signature. This adds a lint
      check for that.
      This broke test T8743, uncovering a bug in the SOURCE import machinery,
      which is now filed as #10182.
    • Joachim Breitner's avatar
      New Lint check: no alternatives implies bottoming expression · a0678f1f
      Joachim Breitner authored
      detected either by exprIsBottom or by an empty type.
      This was suggested by SPJ and fixes #10180.