From faee23bb69ca813296da484bc177f4480bcaee9f Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Sat, 2 Jun 2018 11:56:58 -0400 Subject: 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 --- docs/users_guide/debugging.rst | 13 --------- docs/users_guide/extending_ghc.rst | 2 +- docs/users_guide/glasgow_exts.rst | 1 - docs/users_guide/parallel.rst | 10 ------- docs/users_guide/using-optimisation.rst | 52 --------------------------------- 5 files changed, 1 insertion(+), 77 deletions(-) (limited to 'docs/users_guide') 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 `__. 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 `__. 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) `. - 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) `. - - 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) `. - - 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. -- cgit v1.2.1