diff options
Diffstat (limited to 'docs/users_guide/using-optimisation.rst')
-rw-r--r-- | docs/users_guide/using-optimisation.rst | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/docs/users_guide/using-optimisation.rst b/docs/users_guide/using-optimisation.rst index 185e590534..15916b2690 100644 --- a/docs/users_guide/using-optimisation.rst +++ b/docs/users_guide/using-optimisation.rst @@ -171,9 +171,11 @@ by saying ``-fno-wombat``. to their usage sites. It also inlines simple expressions like literals or registers. -.. ghc-flag:: -fcpr-off +.. ghc-flag:: -fcpr-anal - Switch off CPR analysis in the demand analyser. + :default: on + + Turn on CPR analysis in the demand analyser. .. ghc-flag:: -fcse @@ -343,7 +345,7 @@ by saying ``-fno-wombat``. a bit like the call-pattern specialiser (:ghc-flag:`-fspec-constr`) but for free variables rather than arguments. -.. ghc-flag:: -fliberate-case-threshold=<n> +.. ghc-flag:: -fliberate-case-threshold=⟨n⟩ :default: 2000 @@ -357,7 +359,7 @@ by saying ``-fno-wombat``. self-recursive saturated tail calls into local jumps rather than function calls. -.. ghc-flag:: -fmax-inline-alloc-size=<n> +.. ghc-flag:: -fmax-inline-alloc-size=⟨n⟩ :default: 128 @@ -366,20 +368,20 @@ by saying ``-fno-wombat``. nursery block if they're no bigger than n bytes, ignoring GC overheap. This value should be quite a bit smaller than the block size (typically: 4096). -.. ghc-flag:: -fmax-inline-memcpy-insn=<n> +.. ghc-flag:: -fmax-inline-memcpy-insns=⟨n⟩ :default: 32 Inline ``memcpy`` calls if they would generate no more than ⟨n⟩ pseudo-instructions. -.. ghc-flag:: -fmax-inline-memset-insns=<n> +.. ghc-flag:: -fmax-inline-memset-insns=⟨n⟩ :default: 32 Inline ``memset`` calls if they would generate no more than n pseudo instructions. -.. ghc-flag:: -fmax-relevant-binds=<n> +.. ghc-flag:: -fmax-relevant-binds=⟨n⟩ -fno-max-relevant-bindings :default: 6 @@ -392,7 +394,7 @@ by saying ``-fno-wombat``. they may be numerous), but ``-fno-max-relevant-bindings`` includes them too. -.. ghc-flag:: -fmax-valid-substitutions=<n> +.. ghc-flag:: -fmax-valid-substitutions=⟨n⟩ -fno-max-valid-substitutions :default: 6 @@ -402,20 +404,20 @@ by saying ``-fno-wombat``. set by this flag. Turning it off with ``-fno-max-valid-substitutions`` gives an unlimited number. -.. ghc-flag:: -fmax-uncovered-patterns=<n> +.. ghc-flag:: -fmax-uncovered-patterns=⟨n⟩ :default: 4 Maximum number of unmatched patterns to be shown in warnings generated by :ghc-flag:`-Wincomplete-patterns` and :ghc-flag:`-Wincomplete-uni-patterns`. -.. ghc-flag:: -fmax-simplifier-iterations=<n> +.. ghc-flag:: -fmax-simplifier-iterations=⟨n⟩ :default: 4 Sets the maximal number of iterations for the simplifier. -.. ghc-flag:: -fmax-worker-args=<n> +.. ghc-flag:: -fmax-worker-args=⟨n⟩ :default: 10 @@ -497,13 +499,13 @@ by saying ``-fno-wombat``. as the :ghc-flag:`-fregs-graph` one but also enables iterative coalescing during register allocation. -.. ghc-flag:: -fsimplifier-phases=<n> +.. ghc-flag:: -fsimplifier-phases=⟨n⟩ :default: 2 Set the number of phases for the simplifier. Ignored with ``-O0``. -.. ghc-flag:: -fsimpl-tick-factor=<n> +.. ghc-flag:: -fsimpl-tick-factor=⟨n⟩ :default: 100 @@ -597,14 +599,14 @@ by saying ``-fno-wombat``. beneficial; e.g. the argument might be given to some other function that can itself be specialised. -.. ghc-flag:: -fspec-constr-count=<n> +.. ghc-flag:: -fspec-constr-count=⟨n⟩ :default: 3 Set the maximum number of specialisations that will be created for any one function by the SpecConstr transformation. -.. ghc-flag:: -fspec-constr-threshold=<n> +.. ghc-flag:: -fspec-constr-threshold=⟨n⟩ :default: 2000 @@ -757,7 +759,7 @@ by saying ``-fno-wombat``. Alternatively you can use :ghc-flag:`-funbox-small-strict-fields` to only unbox strict fields which are "small". -.. ghc-flag:: -funfolding-creation-threshold=<n> +.. ghc-flag:: -funfolding-creation-threshold=⟨n⟩ :default: 750 @@ -776,11 +778,11 @@ by saying ``-fno-wombat``. a. nothing larger than this will be inlined (unless it has an ``INLINE`` pragma) b. nothing larger than this will be spewed into an interface file. - Increasing this figure is more likely to result in longer compile - times than faster code. The :ghc-flag:`-funfolding-use-threshold` is more + Increasing this figure is more likely to result in longer compile times + than faster code. The :ghc-flag:`-funfolding-use-threshold=⟨n⟩` is more useful. -.. ghc-flag:: -funfolding-dict-discount=<n> +.. ghc-flag:: -funfolding-dict-discount=⟨n⟩ :default: 30 @@ -790,7 +792,7 @@ by saying ``-fno-wombat``. How eager should the compiler be to inline dictionaries? -.. ghc-flag:: -funfolding-fun-discount=<n> +.. ghc-flag:: -funfolding-fun-discount=⟨n⟩ :default: 60 @@ -800,7 +802,7 @@ by saying ``-fno-wombat``. How eager should the compiler be to inline functions? -.. ghc-flag:: -funfolding-keeness-factor=<n> +.. ghc-flag:: -funfolding-keeness-factor=⟨n⟩ :default: 1.5 @@ -810,7 +812,7 @@ by saying ``-fno-wombat``. How eager should the compiler be to inline functions? -.. ghc-flag:: -funfolding-use-threshold=<n> +.. ghc-flag:: -funfolding-use-threshold=⟨n⟩ :default: 60 @@ -825,10 +827,11 @@ by saying ``-fno-wombat``. minus any discounts that apply depending on the context into which the expression is to be inlined. - The difference between this and :ghc-flag:`-funfolding-creation-threshold` - is that this one determines if a function definition will be inlined - *at a call site*. The other option determines if a function - definition will be kept around at all for potential inlining. + The difference between this and + :ghc-flag:`-funfolding-creation-threshold=⟨n⟩` is that this one determines + if a function definition will be inlined *at a call site*. The other option + determines if a function definition will be kept around at all for + potential inlining. .. ghc-flag:: -fvectorisation-avoidance |