summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorAndreas Klebinger <klebinger.andreas@gmx.at>2018-03-13 13:54:53 -0400
committerBen Gamari <ben@smart-cactus.org>2018-03-13 13:57:17 -0400
commitadc3415f14aa090c54c68149dcb1d99f19132a83 (patch)
treeff40375cbd41de0d0087c73cea3de15f3843d592 /docs
parentabfe10487d2dba49bf511297f14575f9089cc5b1 (diff)
downloadhaskell-wip/D4327.tar.gz
WIP: Add likelyhood to alternatives from stg onwardswip/D4327
Summary: Adds a Freq value to Stg/Cmm cases/switches/conditionals. Currently only generates these values by checking alternatives for bottom expressions. They are passed along to the backend where they affect conditional generation slightly. As it stands runtime improvements seem to be less than expected. This might only be worth merging once we have more branch weights available. Reviewers: hvr, goldfire, bgamari, simonmar, simonpj, erikd Reviewed By: simonpj Subscribers: simonpj, rwbarton, thomie, carter GHC Trac Issues: #14672 Differential Revision: https://phabricator.haskell.org/D4327
Diffstat (limited to 'docs')
-rw-r--r--docs/users_guide/debugging.rst9
-rw-r--r--docs/users_guide/using-optimisation.rst18
2 files changed, 25 insertions, 2 deletions
diff --git a/docs/users_guide/debugging.rst b/docs/users_guide/debugging.rst
index cf926348a0..d11cc04fd0 100644
--- a/docs/users_guide/debugging.rst
+++ b/docs/users_guide/debugging.rst
@@ -612,7 +612,7 @@ are doing, not all of it will be useful. Use these flags to suppress the
parts that you are not interested in.
.. ghc-flag:: -dsuppress-all
- :shortdesc: In core dumps, suppress everything (except for uniques) that is
+ :shortdesc: In dumps, suppress everything (except for uniques) that is
suppressible.
:type: dynamic
@@ -663,6 +663,13 @@ parts that you are not interested in.
Suppress the printing of module qualification prefixes. This is the
``Data.List`` in ``Data.List.length``.
+.. ghc-flag:: -dsuppress-timestamps
+ :shortdesc: Suppress timestamps in dumps
+ :type: dynamic
+
+ Suppress the printing of timestamps.
+ This makes it easier to diff dumps.
+
.. ghc-flag:: -dsuppress-type-signatures
:shortdesc: Suppress type signatures
:type: dynamic
diff --git a/docs/users_guide/using-optimisation.rst b/docs/users_guide/using-optimisation.rst
index 3566462eeb..e0251d3454 100644
--- a/docs/users_guide/using-optimisation.rst
+++ b/docs/users_guide/using-optimisation.rst
@@ -45,7 +45,7 @@ optimisation to be performed, which can have an impact on how much of
your program needs to be recompiled when you change something. This is
one reason to stick to no-optimisation when developing code.
-**No ``-O*``-type option specified:** This is taken to mean “Please
+**No ``-O*``-type option specified:** This is taken to mean “Please
compile quickly; I'm not over-bothered about compiled-code quality.”
So, for example, ``ghc -c Foo.hs``
@@ -666,6 +666,22 @@ by saying ``-fno-wombat``.
a case expression, which is good for performance, but bad if you are
using ``seq`` on partial applications.
+.. ghc-flag:: -funlikely-bottoms
+ :shortdesc: Marks bottom expressions as unlikely in the backend.
+ Implied by :ghc-flag:`-O`.
+ :type: dynamic
+ :reverse: -fno-unlikely-bottoms
+ :category:
+
+ :default: off
+
+ This information is used by some backends to generate faster code by
+ taking the hot path into account.
+
+ It recognizes functions like `error`, `undefined` and some functions
+ which are guaranteed to raise an exception. This includes the generated
+ failure branch on incomplete pattern matches.
+
.. ghc-flag:: -fregs-graph
:shortdesc: Use the graph colouring register allocator for register
allocation in the native code generator. Implied by :ghc-flag:`-O2`.