1. 03 Apr, 2015 8 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
      5971ad56
    • thomie's avatar
      Delete unused field `PipeEnv.pe_isHaskellishFile` · b1d6a608
      thomie authored
      Differential Revision: https://phabricator.haskell.org/D774
      b1d6a608
    • 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
      de1160be
    • 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
      e24f6381
  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
      Before:
      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
      abde5da4
    • rwbarton's avatar
      Update list of primops that don't get wrappers (#10191) · af45feba
      rwbarton authored
      Summary:
      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
      af45feba
    • rwbarton's avatar
      Remove some unimplemented GranSim primops · 90dd11bf
      rwbarton authored
      Summary:
      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
      90dd11bf
  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
      5aa57d01
  10. 25 Mar, 2015 1 commit
  11. 24 Mar, 2015 1 commit