[Git][ghc/ghc][master] Deprecate -fdmd-tx-dict-sel.

Marge Bot gitlab at gitlab.haskell.org
Thu Jul 23 00:20:42 UTC 2020



 Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC


Commits:
15ce1804 by Andreas Klebinger at 2020-07-22T20:20:34-04:00
Deprecate -fdmd-tx-dict-sel.

It's behaviour is now unconditionally enabled as
it's slightly beneficial.

There are almost no benchmarks which benefit from
disabling it, so it's not worth the keep this
configurable.

This fixes #18429.

- - - - -


4 changed files:

- compiler/GHC/Core/Opt/DmdAnal.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Driver/Session.hs
- docs/users_guide/using-optimisation.rst


Changes:

=====================================
compiler/GHC/Core/Opt/DmdAnal.hs
=====================================
@@ -486,8 +486,9 @@ dmdTransform env var dmd
   | isDataConWorkId var
   = dmdTransformDataConSig (idArity var) dmd
   -- Dictionary component selectors
-  | gopt Opt_DmdTxDictSel (ae_dflags env),
-    Just _ <- isClassOpId_maybe var
+  -- Used to be controlled by a flag.
+  -- See #18429 for some perf measurements.
+  | Just _ <- isClassOpId_maybe var
   = dmdTransformDictSelSig (idStrictness var) dmd
   -- Imported functions
   | isGlobalId var


=====================================
compiler/GHC/Driver/Flags.hs
=====================================
@@ -188,7 +188,8 @@ data GeneralFlag
    | Opt_OmitYields
    | Opt_FunToThunk               -- allow GHC.Core.Opt.WorkWrap.Utils.mkWorkerArgs to remove all value lambdas
    | Opt_DictsStrict                     -- be strict in argument dictionaries
-   | Opt_DmdTxDictSel              -- use a special demand transformer for dictionary selectors
+   | Opt_DmdTxDictSel              -- ^ deprecated, no effect and behaviour is now default.
+                                   -- Allowed switching of a special demand transformer for dictionary selectors
    | Opt_Loopification                  -- See Note [Self-recursive tail calls]
    | Opt_CfgBlocklayout             -- ^ Use the cfg based block layout algorithm.
    | Opt_WeightlessBlocklayout         -- ^ Layout based on last instruction per block.


=====================================
compiler/GHC/Driver/Session.hs
=====================================
@@ -3472,7 +3472,8 @@ fFlagsDeps = [
   flagSpec "diagnostics-show-caret"           Opt_DiagnosticsShowCaret,
   flagSpec "dicts-cheap"                      Opt_DictsCheap,
   flagSpec "dicts-strict"                     Opt_DictsStrict,
-  flagSpec "dmd-tx-dict-sel"                  Opt_DmdTxDictSel,
+  depFlagSpec "dmd-tx-dict-sel"
+      Opt_DmdTxDictSel "effect is now unconditionally enabled",
   flagSpec "do-eta-reduction"                 Opt_DoEtaReduction,
   flagSpec "do-lambda-eta-expansion"          Opt_DoLambdaEtaExpansion,
   flagSpec "eager-blackholing"                Opt_EagerBlackHoling,
@@ -4004,7 +4005,6 @@ optLevelFlags :: [([Int], GeneralFlag)]
 optLevelFlags -- see Note [Documenting optimisation flags]
   = [ ([0,1,2], Opt_DoLambdaEtaExpansion)
     , ([0,1,2], Opt_DoEtaReduction)       -- See Note [Eta-reduction in -O0]
-    , ([0,1,2], Opt_DmdTxDictSel)
     , ([0,1,2], Opt_LlvmTBAA)
 
     , ([0],     Opt_IgnoreInterfacePragmas)


=====================================
docs/users_guide/using-optimisation.rst
=====================================
@@ -353,8 +353,7 @@ by saying ``-fno-wombat``.
     Make dictionaries strict.
 
 .. ghc-flag:: -fdmd-tx-dict-sel
-    :shortdesc: Use a special demand transformer for dictionary selectors.
-        Always enabled by default.
+    :shortdesc: *(deprecated)* Use a special demand transformer for dictionary selectors.
     :type: dynamic
     :reverse: -fno-dmd-tx-dict-sel
     :category:
@@ -362,6 +361,7 @@ by saying ``-fno-wombat``.
     :default: on
 
     Use a special demand transformer for dictionary selectors.
+    Behaviour is unconditionally enabled starting with 8.14
 
 .. ghc-flag:: -fdo-eta-reduction
     :shortdesc: Enable eta-reduction. Implied by :ghc-flag:`-O`.



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/15ce1804d2b87ac7bd55632957a4cb897decbbee

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/15ce1804d2b87ac7bd55632957a4cb897decbbee
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20200722/08cc25b6/attachment-0001.html>


More information about the ghc-commits mailing list