[commit: ghc] master: Document -fspecialise-aggressively (a8c81f3)

git at git.haskell.org git at git.haskell.org
Tue Jan 24 03:45:07 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/a8c81f3c102988e0f4216b7cb5fec7958e60b4e4/ghc

>---------------------------------------------------------------

commit a8c81f3c102988e0f4216b7cb5fec7958e60b4e4
Author: Matthew Pickering <matthewtpickering at gmail.com>
Date:   Mon Jan 23 21:58:45 2017 -0500

    Document -fspecialise-aggressively
    
    Reviewers: austin, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D3007
    
    GHC Trac Issues: #12979


>---------------------------------------------------------------

a8c81f3c102988e0f4216b7cb5fec7958e60b4e4
 docs/users_guide/using-optimisation.rst | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/docs/users_guide/using-optimisation.rst b/docs/users_guide/using-optimisation.rst
index 1cad51b..48c1e6f 100644
--- a/docs/users_guide/using-optimisation.rst
+++ b/docs/users_guide/using-optimisation.rst
@@ -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



More information about the ghc-commits mailing list