summaryrefslogtreecommitdiff
path: root/docs/users_guide/using-optimisation.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/users_guide/using-optimisation.rst')
-rw-r--r--docs/users_guide/using-optimisation.rst15
1 files changed, 15 insertions, 0 deletions
diff --git a/docs/users_guide/using-optimisation.rst b/docs/users_guide/using-optimisation.rst
index c75d5e6097..f492f87af8 100644
--- a/docs/users_guide/using-optimisation.rst
+++ b/docs/users_guide/using-optimisation.rst
@@ -813,6 +813,21 @@ as such you shouldn't need to set any of them explicitly. A flag
Turn off the coercion optimiser.
+.. ghc-flag:: -fkeep-dcoercions
+ :shortdesc: Keep directed coercions in the coercion optimiser
+ :type: dynamic
+ :category:
+
+ :default: Don't keep directed coercions in the coercion optimiser.
+
+ Keep directed coercions in the coercion optimiser, instead of turning
+ them into coercions. Only applies when coercion optimisation is enabled.
+ Turning this flag on will ensure that coercions borne from type family reduction
+ remain small, but it means the coercion optimiser is less able to optimise them.
+ If your program crucially relies on coercion optimisation
+ (i.e. enabling :ghc-flag:`-fno-opt-coercion` causes a significant regression in compile-time),
+ then you might want to NOT enable this flag.
+
.. ghc-flag:: -fno-pre-inlining
:shortdesc: Turn off pre-inlining
:type: dynamic