summaryrefslogtreecommitdiff
path: root/compiler/GHC
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC')
-rw-r--r--compiler/GHC/Core/Opt/DmdAnal.hs5
-rw-r--r--compiler/GHC/Driver/Flags.hs3
-rw-r--r--compiler/GHC/Driver/Session.hs4
3 files changed, 7 insertions, 5 deletions
diff --git a/compiler/GHC/Core/Opt/DmdAnal.hs b/compiler/GHC/Core/Opt/DmdAnal.hs
index 7f4327591e..e11d220773 100644
--- a/compiler/GHC/Core/Opt/DmdAnal.hs
+++ b/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
diff --git a/compiler/GHC/Driver/Flags.hs b/compiler/GHC/Driver/Flags.hs
index a827ffe315..fc39e941a5 100644
--- a/compiler/GHC/Driver/Flags.hs
+++ b/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.
diff --git a/compiler/GHC/Driver/Session.hs b/compiler/GHC/Driver/Session.hs
index 17e3796c3d..3467ae19d0 100644
--- a/compiler/GHC/Driver/Session.hs
+++ b/compiler/GHC/Driver/Session.hs
@@ -3513,7 +3513,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,
@@ -4045,7 +4046,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)