diff options
author | Ben Gamari <bgamari.foss@gmail.com> | 2018-06-02 11:56:58 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-06-02 16:21:12 -0400 |
commit | faee23bb69ca813296da484bc177f4480bcaee9f (patch) | |
tree | 28e1c99f0de9d505c1df81ae7459839f5db4121c /docs/users_guide | |
parent | 13a86606e51400bc2a81a0e04cfbb94ada5d2620 (diff) | |
download | haskell-faee23bb69ca813296da484bc177f4480bcaee9f.tar.gz |
vectorise: Put it out of its misery
Poor DPH and its vectoriser have long been languishing; sadly it seems there is
little chance that the effort will be rekindled. Every few years we discuss
what to do with this mass of code and at least once we have agreed that it
should be archived on a branch and removed from `master`. Here we do just that,
eliminating heaps of dead code in the process.
Here we drop the ParallelArrays extension, the vectoriser, and the `vector` and
`primitive` submodules.
Test Plan: Validate
Reviewers: simonpj, simonmar, hvr, goldfire, alanz
Reviewed By: simonmar
Subscribers: goldfire, rwbarton, thomie, mpickering, carter
Differential Revision: https://phabricator.haskell.org/D4761
Diffstat (limited to 'docs/users_guide')
-rw-r--r-- | docs/users_guide/debugging.rst | 13 | ||||
-rw-r--r-- | docs/users_guide/extending_ghc.rst | 2 | ||||
-rw-r--r-- | docs/users_guide/glasgow_exts.rst | 1 | ||||
-rw-r--r-- | docs/users_guide/parallel.rst | 10 | ||||
-rw-r--r-- | docs/users_guide/using-optimisation.rst | 52 |
5 files changed, 1 insertions, 77 deletions
diff --git a/docs/users_guide/debugging.rst b/docs/users_guide/debugging.rst index dd9af944f0..4e0be937f4 100644 --- a/docs/users_guide/debugging.rst +++ b/docs/users_guide/debugging.rst @@ -299,13 +299,6 @@ subexpression elimination pass. that ``foo`` is not being inlined. You can pass ``-dinline-check foo`` and you will see a report about why ``foo`` is not inlined. - -.. ghc-flag:: -ddump-vect - :shortdesc: Dump vectoriser input and output - :type: dynamic - - Dumps the output of the vectoriser. - .. ghc-flag:: -ddump-simpl :shortdesc: Dump final simplifier output :type: dynamic @@ -351,12 +344,6 @@ subexpression elimination pass. Dump "occurrence analysis" output -.. ghc-flag:: -ddump-vt-trace - :shortdesc: Trace vectoriser - :type: dynamic - - Make the vectoriser be *real* chatty about what it is up to. - .. ghc-flag:: -ddump-prep :shortdesc: Dump prepared core :type: dynamic diff --git a/docs/users_guide/extending_ghc.rst b/docs/users_guide/extending_ghc.rst index d8eaab9419..bb31b0783a 100644 --- a/docs/users_guide/extending_ghc.rst +++ b/docs/users_guide/extending_ghc.rst @@ -352,7 +352,7 @@ Core plugins in more detail ``CoreToDo`` is effectively a data type that describes all the kinds of optimization passes GHC does on Core. There are passes for -simplification, CSE, vectorisation, etc. There is a specific case for +simplification, CSE, etc. There is a specific case for plugins, ``CoreDoPluginPass :: String -> PluginPass -> CoreToDo`` which should be what you always use when inserting your own pass into the pipeline. The first parameter is the name of the plugin, and the second diff --git a/docs/users_guide/glasgow_exts.rst b/docs/users_guide/glasgow_exts.rst index a705512114..b00d75f6a7 100644 --- a/docs/users_guide/glasgow_exts.rst +++ b/docs/users_guide/glasgow_exts.rst @@ -1228,7 +1228,6 @@ Parallel List Comprehensions .. extension:: ParallelListComp :shortdesc: Enable parallel list comprehensions. - Implied by :extension:`ParallelArrays`. :since: 6.8.1 diff --git a/docs/users_guide/parallel.rst b/docs/users_guide/parallel.rst index f334e1be38..fea8fa4a57 100644 --- a/docs/users_guide/parallel.rst +++ b/docs/users_guide/parallel.rst @@ -156,13 +156,3 @@ from the ``Control.Parallel.Strategies`` module in the `parallel package <http://hackage.haskell.org/package/parallel>`__. This module builds functionality around ``par``, expressing more elaborate patterns of parallel computation, such as parallel ``map``. - -.. _dph: - -Data Parallel Haskell ---------------------- - -GHC includes experimental support for Data Parallel Haskell (DPH). This -code is highly unstable and is only provided as a technology preview. -More information can be found on the corresponding -`DPH wiki page <http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell>`__. diff --git a/docs/users_guide/using-optimisation.rst b/docs/users_guide/using-optimisation.rst index 59edcdc320..da066e158c 100644 --- a/docs/users_guide/using-optimisation.rst +++ b/docs/users_guide/using-optimisation.rst @@ -88,20 +88,6 @@ So, for example, ``ghc -c Foo.hs`` runtime or space *worse* if you're unlucky. They are normally turned on or off individually. -.. ghc-flag:: -Odph - :shortdesc: Enable level 2 optimisations, set - ``-fmax-simplifier-iterations=20`` - and ``-fsimplifier-phases=3``. - :type: dynamic - :category: optimization-levels - - .. index:: - single: optimise; DPH - - Enables all ``-O2`` optimisation, sets - ``-fmax-simplifier-iterations=20`` and ``-fsimplifier-phases=3``. - Designed for use with :ref:`Data Parallel Haskell (DPH) <dph>`. - We don't use a ``-O*`` flag for day-to-day work. We use ``-O`` to get respectable speed; e.g., when we want to measure something. When we want to go for broke, we tend to use ``-O2`` (and we go for lots of coffee @@ -1147,41 +1133,3 @@ by saying ``-fno-wombat``. if a function definition will be inlined *at a call site*. The other option determines if a function definition will be kept around at all for potential inlining. - -.. ghc-flag:: -fvectorisation-avoidance - :shortdesc: Enable vectorisation avoidance. Always enabled by default. - :type: dynamic - :reverse: -fno-vectorisation-avoidance - :category: - - :default: on - - .. index:: - single: -fvectorisation-avoidance - - Part of :ref:`Data Parallel Haskell (DPH) <dph>`. - - Enable the *vectorisation* avoidance optimisation. - This optimisation only works when used in combination with the - ``-fvectorise`` transformation. - - While vectorisation of code using DPH is often a big win, it can - also produce worse results for some kinds of code. This optimisation - modifies the vectorisation transformation to try to determine if a - function would be better of unvectorised and if so, do just that. - -.. ghc-flag:: -fvectorise - :shortdesc: Enable vectorisation of nested data parallelism - :type: dynamic - :reverse: -fno-vectorise - :category: - - :default: off - - Part of :ref:`Data Parallel Haskell (DPH) <dph>`. - - Enable the *vectorisation* optimisation - transformation. This optimisation transforms the nested data - parallelism code of programs using DPH into flat data parallelism. - Flat data parallel programs should have better load balancing, - enable SIMD parallelism and friendlier cache behaviour. |