[Git][ghc/ghc][wip/andreask/remove_dict_field_flag] Deprecate -fdmd-tx-dict-sel.

Andreas Klebinger gitlab at gitlab.haskell.org
Fri Jul 17 15:02:13 UTC 2020



Andreas Klebinger pushed to branch wip/andreask/remove_dict_field_flag at Glasgow Haskell Compiler / GHC


Commits:
fd6b87e5 by Andreas Klebinger at 2020-07-17T17:01:29+02:00
Deprecate -fdmd-tx-dict-sel.

It's behaviour is now unconditionally enabled.

- - - - -


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,7 @@ dmdTransform env var dmd
   | isDataConWorkId var
   = dmdTransformDataConSig (idArity var) dmd
   -- Dictionary component selectors
-  | gopt Opt_DmdTxDictSel (ae_dflags env),
-    Just _ <- isClassOpId_maybe var
+  | 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
=====================================
@@ -3508,7 +3508,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,
@@ -4039,7 +4040,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/fd6b87e547f65c034c2a0d6bc36947fc2f64865b

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/fd6b87e547f65c034c2a0d6bc36947fc2f64865b
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/20200717/d4b983d9/attachment-0001.html>


More information about the ghc-commits mailing list