Document -fspecialise-aggressively
authorMatthew Pickering <matthewtpickering@gmail.com>
Tue, 24 Jan 2017 02:58:45 +0000 (21:58 -0500)
committerBen Gamari <ben@smart-cactus.org>
Tue, 24 Jan 2017 03:05:53 +0000 (22:05 -0500)
Reviewers: austin, bgamari

Reviewed By: bgamari

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D3007

GHC Trac Issues: #12979

docs/users_guide/using-optimisation.rst

index 1cad51b..48c1e6f 100644 (file)
@@ -578,6 +578,18 @@ list.
     that have an INLINABLE pragma (:ref:`inlinable-pragma`) will be
     specialised as well.
 
+.. ghc-flag:: -fspecialise-aggressively
+
+    :default: off
+
+    By default only type class methods and methods marked ``INLINABLE`` or
+    ``INLINE`` are specialised. This flag will specialise any overloaded function
+    regardless of size if its unfolding is available. This flag is not
+    included in any optimisation level as it can massively increase code
+    size. It can be used in conjunction with :ghc-flag:`-fexpose-all-unfoldings`
+    if you want to ensure all calls are specialised.
+
+
 .. ghc-flag:: -fcross-module-specialise
 
     :default: on