1. 21 Jun, 2016 2 commits
  2. 20 Jun, 2016 21 commits
  3. 18 Jun, 2016 17 commits
    • Ben Gamari's avatar
      llvmGen: Add strictness to metadata fields · 0be38a22
      Ben Gamari authored
      0be38a22
    • Peter Trommler's avatar
      PPC NCG: Fix and refactor TOC handling. · f4b0488d
      Peter Trommler authored
      In a call to a fixed function the TOC does not need to be saved.
      The linker handles TOC saving.
      
      Refactor TOC handling by folding the two functions toc_before and
      toc_after into the code generating the call sequence. This saves
      repeating the case distinction in those two functions.
      
      Test Plan: validate on PowerPC 32-bit Linux and AIX
      
      Reviewers: hvr, simonmar, austin, erikd, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2328
      f4b0488d
    • Peter Trommler's avatar
      PPC NCG: Fix float parameter passing on 64-bit. · 2897be77
      Peter Trommler authored
      On Linux 64-bit PowerPC the first 13 floating point parameters are
      passed in registers. We only passed the first 8 floating point params.
      
      The alignment of a floating point single precision value in ELF v1.9 is
      the second word of a doubleword. For ELF v2 we support only little
      endian and the least significant word of a doubleword is the first word,
      so no special handling is required.
      
      Add a regression test.
      
      Test Plan: validate on powerpc Linux and AIX
      
      Reviewers: erikd, hvr, austin, simonmar, bgamari
      
      Reviewed By: simonmar
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2327
      
      GHC Trac Issues: #12134
      2897be77
    • seraphime's avatar
      Fix trac #10647: Notice about lack of SIMD support · f12fb8ab
      seraphime authored
      Fixes #10647. Changes the error message when a SIMD size
      variable is required in the native code generation backend.
      
      Test Plan:
      Try compiling the test case given in the ticket :
      
      {-# LANGUAGE MagicHash #-}
      module Foo where
      import GHC.Prim
      data V = V Int8X16#
      
      GHC should give a clearer error message
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2325
      
      GHC Trac Issues: #10647
      f12fb8ab
    • Adam Gundry's avatar
      Avoid find_tycon panic if datacon is not in scope · 4d71cc89
      Adam Gundry authored
      When using TH to splice expressions involving record field construction,
      the parent datacon may not be in scope.  We shouldn't panic about this,
      because we will be renaming Exact RdrNames which don't require any
      disambiguation.
      
      Test Plan: new test th/T12130
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2321
      
      GHC Trac Issues: #12130
      4d71cc89
    • Ryan Scott's avatar
      Refactor derived Generic instances to reduce allocations · 9649fc0a
      Ryan Scott authored
      Previously, derived implementations of `to`/`from` in `Generic`
      instances were wastefully putting extra `M1`s in every case, which led
      to an O(n) increase in the number of coercions, resulting in a slowdown
      during the typechecker phase.
      
      This factors out the common `M1` in every case of a `to`/`from`
      definition so that the typechecker has far fewer coercions to deal with.
      For a datatype with 300 constructors, this change has been observed to
      save almost 3 seconds of compilation time.
      
      This is one step towards coming up with a solution for #5642.
      
      Test Plan: ./validate
      
      Reviewers: hvr, austin, simonpj, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: basvandijk, carter, thomie, osa1
      
      Differential Revision: https://phabricator.haskell.org/D2304
      
      GHC Trac Issues: #5642
      9649fc0a
    • Ryan Scott's avatar
      Add Bifoldable and Bitraversable to base · 270d545d
      Ryan Scott authored
      This adds `Data.Bifoldable` and `Data.Bitraversable` from the
      `bifunctors` package to `base`, completing the migration started in
      D336.  This is fairly straightforward, although there were a suprising
      amount of reinternal organization in `base` that was needed for this to
      happen:
      
      * `Data.Foldable`, `Data.Traversable`, `Data.Bifoldable`, and
        `Data.Bitraversable` share some nonexported datatypes (e.g., `StateL`,
        `StateR`, `Min`, `Max`, etc.) to implement some instances. To avoid
        code duplication, I migrated this internal code to a new hidden
        module, `Data.Functor.Utils` (better naming suggestions welcome).
      
      * `Data.Traversable` and `Data.Bitraversable` also make use of an
        identity newtype, so I modified them to use
        `Data.Functor.Identity.Identity`. This has a ripple effect on several
        other modules, since I had to move instances around in order to avoid
        dependency cycles.
      
      Fixes #10448.
      
      Reviewers: ekmett, hvr, austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2284
      
      GHC Trac Issues: #9682, #10448
      270d545d
    • Ömer Sinan Ağacan's avatar
      VarEnv: Comment only · 6354991f
      Ömer Sinan Ağacan authored
      6354991f
    • thomie's avatar
      Validate: use `rm -f` instead of `rm` · a4c85329
      thomie authored
      a4c85329
    • thomie's avatar
      Testsuite: validate the tests/stage1 directory with the stage1 compiler · d94c4056
      thomie authored
      * See `Note [Why is there no stage1 setup function?]`.
      * Move T2632 to the tests/stage1 directory (#10382).
      
      Reviewed by: ezyang, nomeata, bgamari
      
      Differential Revision: https://phabricator.haskell.org/D2341
      
      GHC Trac Issues: #12197
      d94c4056
    • thomie's avatar
      Testsuite: write "\n" instead of "\r\n" when using mingw Python · 6f6f5154
      thomie authored
      Mingw style Python uses '\r\n' by default for newlines. This is
      annoying, because it means that when a GHC developer on Windows uses
      mingw Python to `make accept` a test, every single line of the
      .stderr file is touched. This makes it difficult to spot the real
      changes, and it leads to unnecessary git history bloat.
      
      Prevent this from happening by using io.open instead of open.
      See `Note [Universal newlines]`
      
      Reviewed by: Phyx
      
      Differential Revision: https://phabricator.haskell.org/D2342
      6f6f5154
    • thomie's avatar
      Testsuite: run tests in <testdir>.run instead of /tmp · f72f23f9
      thomie authored
      As discussed in Phab:D1187, this approach makes it a bit easier to
      inspect the test directory while working on a new test.
      
      The only tests that needed changes are the ones that refer to files in
      ancestor directories. Those files are now copied directly into the test
      directory.
      
      validate still runs the tests in a temporary directory in /tmp, see
      `Note [Running tests in /tmp]` in testsuite/driver/runtests.py.
      
      Update submodule hpc.
      
      Reviewed by: simonmar
      
      Differential Revision: https://phabricator.haskell.org/D2333
      
      GHC Trac Issues: #11980
      f72f23f9
    • thomie's avatar
      Driver: `ghc ../Test` (without file extension) should work · e02beb18
      thomie authored
      Reviewed by: bgamari
      
      Differential Revision: https://phabricator.haskell.org/D2331
      
      GHC Trac Issues: #12192
      e02beb18
    • thomie's avatar
      Revert accidental submodule updates · 9bb05785
      thomie authored
      Commit 77bb0927 seems to have
      accidentally set some submodules to earlier versions. Undo this.
      9bb05785
    • Ben Gamari's avatar
      llvmGen: Consolidate MetaExpr pretty-printing · 85e09b1b
      Ben Gamari authored
      Previously this logic was duplicated needlessly.
      85e09b1b
    • Ben Gamari's avatar
      llvmGen: Make metadata ids a newtype · 2396d9bb
      Ben Gamari authored
      These were previously just represented as Ints which was needlessly
      vague.
      2396d9bb
    • Ben Gamari's avatar
      CmmNode: Make CmmTickScope's Unique strict · 3e8c495f
      Ben Gamari authored
      There is no reason why we need laziness here and making it strict
      enables unpacking.
      3e8c495f