diff options
Diffstat (limited to 'utils/mkUserGuidePart/Options/Optimizations.hs')
-rw-r--r-- | utils/mkUserGuidePart/Options/Optimizations.hs | 379 |
1 files changed, 0 insertions, 379 deletions
diff --git a/utils/mkUserGuidePart/Options/Optimizations.hs b/utils/mkUserGuidePart/Options/Optimizations.hs deleted file mode 100644 index afefc6e2a5..0000000000 --- a/utils/mkUserGuidePart/Options/Optimizations.hs +++ /dev/null @@ -1,379 +0,0 @@ -module Options.Optimizations where - -import Types - -optimizationsOptions :: [Flag] -optimizationsOptions = - [ flag { flagName = "-fcall-arity" - , flagDescription = - "Enable call-arity optimisation. Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-call-arity" - } - , flag { flagName = "-fcase-merge" - , flagDescription = "Enable case-merging. Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-case-merge" - } - , flag { flagName = "-fcase-folding" - , flagDescription = "Enable constant folding in case expressions. Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-case-folding" - } - , flag { flagName = "-fcmm-elim-common-blocks" - , flagDescription = - "Enable Cmm common block elimination. Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-cmm-elim-common-blocks" - } - , flag { flagName = "-fcmm-sink" - , flagDescription = "Enable Cmm sinking. Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-cmm-sink" - } - , flag { flagName = "-fcpr-anal" - , flagDescription = - "Turn on CPR analysis in the demand analyser. Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-cpr-anal" - } - , flag { flagName = "-fcse" - , flagDescription = - "Enable common sub-expression elimination. Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-cse" - } - , flag { flagName = "-fdicts-cheap" - , flagDescription = - "Make dictionary-valued expressions seem cheap to the optimiser." - , flagType = DynamicFlag - , flagReverse = "-fno-dicts-cheap" - } - , flag { flagName = "-fdicts-strict" - , flagDescription = "Make dictionaries strict" - , flagType = DynamicFlag - , flagReverse = "-fno-dicts-strict" - } - , flag { flagName = "-fdmd-tx-dict-sel" - , flagDescription = - "Use a special demand transformer for dictionary selectors. "++ - "Always enabled by default." - , flagType = DynamicFlag - , flagReverse = "-fno-dmd-tx-dict-sel" - } - , flag { flagName = "-fdo-eta-reduction" - , flagDescription = "Enable eta-reduction. Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-do-eta-reduction" - } - , flag { flagName = "-fdo-lambda-eta-expansion" - , flagDescription = - "Enable lambda eta-expansion. Always enabled by default." - , flagType = DynamicFlag - , flagReverse = "-fno-do-lambda-eta-expansion" - } - , flag { flagName = "-feager-blackholing" - , flagDescription = - "Turn on :ref:`eager blackholing <parallel-compile-options>`" - , flagType = DynamicFlag - } - , flag { flagName = "-fenable-rewrite-rules" - , flagDescription = - "Switch on all rewrite rules (including rules generated by "++ - "automatic specialisation of overloaded functions). Implied by "++ - ":ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-enable-rewrite-rules" - } - , flag { flagName = "-fexcess-precision" - , flagDescription = "Enable excess intermediate precision" - , flagType = DynamicFlag - , flagReverse = "-fno-excess-precision" - } - , flag { flagName = "-fexpose-all-unfoldings" - , flagDescription = - "Expose all unfoldings, even for very large or recursive functions." - , flagType = DynamicFlag - , flagReverse = "-fno-expose-all-unfoldings" - } - , flag { flagName = "-ffloat-in" - , flagDescription = - "Turn on the float-in transformation. Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-float-in" - } - , flag { flagName = "-ffull-laziness" - , flagDescription = - "Turn on full laziness (floating bindings outwards). "++ - "Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-full-laziness" - } - , flag { flagName = "-ffun-to-thunk" - , flagDescription = - "Allow worker-wrapper to convert a function closure into a thunk "++ - "if the function does not use any of its arguments. Off by default." - , flagType = DynamicFlag - , flagReverse = "-fno-fun-to-thunk" - } - , flag { flagName = "-fignore-asserts" - , flagDescription = - "Ignore assertions in the source. Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-ignore-asserts" - } - , flag { flagName = "-fignore-interface-pragmas" - , flagDescription = - "Ignore pragmas in interface files. Implied by :ghc-flag:`-O0` only." - , flagType = DynamicFlag - , flagReverse = "-fno-ignore-interface-pragmas" - } - , flag { flagName = "-flate-dmd-anal" - , flagDescription = - "Run demand analysis again, at the end of the "++ - "simplification pipeline" - , flagType = DynamicFlag - , flagReverse = "-fno-late-dmd-anal" - } - , flag { flagName = "-fliberate-case" - , flagDescription = - "Turn on the liberate-case transformation. Implied by :ghc-flag:`-O2`." - , flagType = DynamicFlag - , flagReverse = "-fno-liberate-case" - } - , flag { flagName = "-fliberate-case-threshold=⟨n⟩" - , flagDescription = - "*default: 2000.* Set the size threshold for the liberate-case "++ - "transformation to ⟨n⟩" - , flagType = DynamicFlag - , flagReverse = "-fno-liberate-case-threshold" - } - , flag { flagName = "-floopification" - , flagDescription = - "Turn saturated self-recursive tail-calls into local jumps in the "++ - "generated assembly. Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-loopification" - } - , flag { flagName = "-fmax-inline-alloc-size=⟨n⟩" - , flagDescription = - "*default: 128.* Set the maximum size of inline array allocations "++ - "to ⟨n⟩ bytes (default: 128). GHC will allocate non-pinned arrays "++ - "of statically known size in the current 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)." - , flagType = DynamicFlag - } - , flag { flagName = "-fmax-inline-memcpy-insns=⟨n⟩" - , flagDescription = - "*default: 32.* Inline ``memcpy`` calls if they would generate no "++ - "more than ⟨n⟩ pseudo instructions." - , flagType = DynamicFlag - } - , flag { flagName = "-fmax-inline-memset-insns=⟨n⟩" - , flagDescription = - "*default: 32.* Inline ``memset`` calls if they would generate no "++ - "more than ⟨n⟩ pseudo instructions" - , flagType = DynamicFlag - } - , flag { flagName = "-fmax-relevant-binds=⟨n⟩" - , flagDescription = - "*default: 6.* Set the maximum number of bindings to display in "++ - "type error messages." - , flagType = DynamicFlag - , flagReverse = "-fno-max-relevant-bindings" - } - , flag { flagName = "-fmax-valid-substitutions=⟨n⟩" - , flagDescription = - "*default: 6.* Set the maximum number of valid substitutions for"++ - "typed holes to display in type error messages." - , flagType = DynamicFlag - , flagReverse = "-fno-max-valid-substitutions" - } - , flag { flagName = "-fmax-uncovered-patterns=⟨n⟩" - , flagDescription = - "*default: 4.* Set the maximum number of patterns to display in "++ - "warnings about non-exhaustive ones." - , flagType = DynamicFlag - } - , flag { flagName = "-fmax-simplifier-iterations=⟨n⟩" - , flagDescription = - "*default: 4.* Set the max iterations for the simplifier." - , flagType = DynamicFlag - } - , flag { flagName = "-fmax-worker-args=⟨n⟩" - , flagDescription = - "*default: 10.* If a worker has that many arguments, none will "++ - "be unpacked anymore." - , flagType = DynamicFlag - } - , flag { flagName = "-fno-opt-coercion" - , flagDescription = "Turn off the coercion optimiser" - , flagType = DynamicFlag - } - , flag { flagName = "-fno-pre-inlining" - , flagDescription = "Turn off pre-inlining" - , flagType = DynamicFlag - } - , flag { flagName = "-fno-state-hack" - , flagDescription = - "Turn off the \"state hack\" whereby any lambda with a real-world "++ - "state token as argument is considered to be single-entry. Hence "++ - "OK to inline things inside it." - , flagType = DynamicFlag - } - , flag { flagName = "-fomit-interface-pragmas" - , flagDescription = - "Don't generate interface pragmas. Implied by :ghc-flag:`-O0` only." - , flagType = DynamicFlag - , flagReverse = "-fno-omit-interface-pragmas" - } - , flag { flagName = "-fomit-yields" - , flagDescription = - "Omit heap checks when no allocation is being performed." - , flagType = DynamicFlag - , flagReverse = "-fno-omit-yields" - } - , flag { flagName = "-foptimal-applicative-do" - , flagDescription = - "Use a slower but better algorithm for ApplicativeDo" - , flagType = DynamicFlag - , flagReverse = "-fno-optimal-applicative-do" - } - , flag { flagName = "-fpedantic-bottoms" - , flagDescription = - "Make GHC be more precise about its treatment of bottom (but see "++ - "also :ghc-flag:`-fno-state-hack`). In particular, GHC will not "++ - "eta-expand through a case expression." - , flagType = DynamicFlag - , flagReverse = "-fno-pedantic-bottoms" - } - , flag { flagName = "-fregs-graph" - , flagDescription = - "Use the graph colouring register allocator for register "++ - "allocation in the native code generator. Implied by :ghc-flag:`-O2`." - , flagType = DynamicFlag - , flagReverse = "-fno-regs-graph" - } - , flag { flagName = "-fregs-iterative" - , flagDescription = - "Use the iterative coalescing graph colouring register allocator "++ - "in the native code generator." - , flagType = DynamicFlag - , flagReverse = "-fno-regs-iterative" - } - , flag { flagName = "-fsimplifier-phases=⟨n⟩" - , flagDescription = - "*default: 2.* Set the number of phases for the simplifier. "++ - "Ignored with :ghc-flag:`-O0`." - , flagType = DynamicFlag - } - , flag { flagName = "-fsimpl-tick-factor=⟨n⟩" - , flagDescription = - "*default: 100.* Set the percentage factor for simplifier ticks." - , flagType = DynamicFlag - } - , flag { flagName = "-fspec-constr" - , flagDescription = - "Turn on the SpecConstr transformation. Implied by :ghc-flag:`-O2`." - , flagType = DynamicFlag - , flagReverse = "-fno-spec-constr" - } - , flag { flagName = "-fspec-constr-count=⟨n⟩" - , flagDescription = - "default: 3.* Set to ⟨n⟩ the maximum number of specialisations that"++ - " will be created for any one function by the SpecConstr "++ - "transformation." - , flagType = DynamicFlag - , flagReverse = "-fno-spec-constr-count" - } - , flag { flagName = "-fspec-constr-threshold=⟨n⟩" - , flagDescription = - "*default: 2000.* Set the size threshold for the SpecConstr "++ - "transformation to ⟨n⟩." - , flagType = DynamicFlag - , flagReverse = "-fno-spec-constr-threshold" - } - , flag { flagName = "-fspecialise" - , flagDescription = - "Turn on specialisation of overloaded functions. Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-specialise" - } - , flag { flagName = "-fcross-module-specialise" - , flagDescription = - "Turn on specialisation of overloaded functions imported from "++ - "other modules." - , flagType = DynamicFlag - , flagReverse = "-fno-cross-module-specialise" - } - , flag { flagName = "-fstatic-argument-transformation" - , flagDescription = "Turn on the static argument transformation." - , flagType = DynamicFlag - , flagReverse = "-fno-static-argument-transformation" - } - , flag { flagName = "-fstrictness" - , flagDescription = "Turn on strictness analysis." ++ - " Implied by :ghc-flag:`-O`. Implies :ghc-flag:`-fworker-wrapper`" - , flagType = DynamicFlag - , flagReverse = "-fno-strictness" - } - , flag { flagName = "-fstrictness-before=⟨n⟩" - , flagDescription = - "Run an additional strictness analysis before simplifier phase ⟨n⟩" - , flagType = DynamicFlag - } - , flag { flagName = "-funbox-small-strict-fields" - , flagDescription = - "Flatten strict constructor fields with a pointer-sized "++ - "representation. Implied by :ghc-flag:`-O`." - , flagType = DynamicFlag - , flagReverse = "-fno-unbox-small-strict-fields" - } - , flag { flagName = "-funbox-strict-fields" - , flagDescription = "Flatten strict constructor fields" - , flagType = DynamicFlag - , flagReverse = "-fno-unbox-strict-fields" - } - , flag { flagName = "-funfolding-creation-threshold=⟨n⟩" - , flagDescription = "*default: 750.* Tweak unfolding settings." - , flagType = DynamicFlag - } - , flag { flagName = "-funfolding-dict-discount=⟨n⟩" - , flagDescription = "*default: 30.* Tweak unfolding settings." - , flagType = DynamicFlag - } - , flag { flagName = "-funfolding-fun-discount=⟨n⟩" - , flagDescription = "*default: 60.* Tweak unfolding settings." - , flagType = DynamicFlag - } - , flag { flagName = "-funfolding-keeness-factor=⟨n⟩" - , flagDescription = "*default: 1.5.* Tweak unfolding settings." - , flagType = DynamicFlag - } - , flag { flagName = "-funfolding-use-threshold=⟨n⟩" - , flagDescription = "*default: 60.* Tweak unfolding settings." - , flagType = DynamicFlag - } - , flag { flagName = "-fvectorisation-avoidance" - , flagDescription = - "Enable vectorisation avoidance. Always enabled by default." - , flagType = DynamicFlag - , flagReverse = "-fno-vectorisation-avoidance" - } - , flag { flagName = "-fvectorise" - , flagDescription = "Enable vectorisation of nested data parallelism" - , flagType = DynamicFlag - , flagReverse = "-fno-vectorise" - } - , flag { flagName = "-fworker-wrapper" - , flagDescription = - "Enable the worker-wrapper transformation after a strictness" ++ - " analysis pass. Implied by :ghc-flag:`-O`, and by :ghc-flag:`-fstrictness`." ++ - " Disabled by :ghc-flag:`-fno-strictness`. Enabling :ghc-flag:`-fworker-wrapper`" ++ - " while strictness analysis is disabled (by :ghc-flag:`-fno-strictness`)" ++ - " has no effect." - , flagType = DynamicFlag - , flagReverse = "-fno-worker-wrapper" - } - ] |