<variablelist>
<varlistentry>
- <term>No <option>-O*</option>-type option specified:</term>
- <indexterm><primary>-O* not specified</primary></indexterm>
+ <term>
+ No <option>-O*</option>-type option specified:
+ <indexterm><primary>-O* not specified</primary></indexterm>
+ </term>
<listitem>
<para>This is taken to mean: “Please compile
quickly; I'm not over-bothered about compiled-code
</varlistentry>
<varlistentry>
- <term><option>-O0</option>:</term>
- <indexterm><primary><option>-O0</option></primary></indexterm>
+ <term>
+ <option>-O0</option>:
+ <indexterm><primary><option>-O0</option></primary></indexterm>
+ </term>
<listitem>
<para>Means “turn off all optimisation”,
reverting to the same settings as if no
</varlistentry>
<varlistentry>
- <term><option>-O</option> or <option>-O1</option>:</term>
- <indexterm><primary>-O option</primary></indexterm>
- <indexterm><primary>-O1 option</primary></indexterm>
- <indexterm><primary>optimise</primary><secondary>normally</secondary></indexterm>
+ <term>
+ <option>-O</option> or <option>-O1</option>:
+ <indexterm><primary>-O option</primary></indexterm>
+ <indexterm><primary>-O1 option</primary></indexterm>
+ <indexterm><primary>optimise</primary><secondary>normally</secondary></indexterm>
+ </term>
<listitem>
<para>Means: “Generate good-quality code without
taking too long about it.” Thus, for example:
</varlistentry>
<varlistentry>
- <term><option>-O2</option>:</term>
- <indexterm><primary>-O2 option</primary></indexterm>
- <indexterm><primary>optimise</primary><secondary>aggressively</secondary></indexterm>
+ <term>
+ <option>-O2</option>:
+ <indexterm><primary>-O2 option</primary></indexterm>
+ <indexterm><primary>optimise</primary><secondary>aggressively</secondary></indexterm>
+ </term>
<listitem>
<para>Means: “Apply every non-dangerous
optimisation, even if it means significantly longer
</varlistentry>
<varlistentry>
- <term><option>-Ofile <file></option>:</term>
- <indexterm><primary>-Ofile <file> option</primary></indexterm>
- <indexterm><primary>optimising, customised</primary></indexterm>
+ <term>
+ <option>-Ofile <file></option>:
+ <indexterm><primary>-Ofile <file> option</primary></indexterm>
+ <indexterm><primary>optimising, customised</primary></indexterm>
+ </term>
<listitem>
<para>(NOTE: not supported since GHC 4.x. Please ask if
you're interested in this.)</para>
</varlistentry>
<varlistentry>
- <term><option>-fno-strictness</option></term>
- <indexterm><primary><option>-fno-strictness</option></primary>
- </indexterm>
+ <term>
+ <option>-fno-strictness</option>
+ <indexterm><primary><option>-fno-strictness</option></primary></indexterm>
+ </term>
<listitem>
<para>Turns off the strictness analyser; sometimes it eats
too many cycles.</para>
</varlistentry>
<varlistentry>
- <term><option>-fno-cpr-analyse</option></term>
- <indexterm><primary><option>-fno-cpr-analyse</option></primary>
- </indexterm>
+ <term>
+ <option>-fno-cpr-analyse</option>
+ <indexterm><primary><option>-fno-cpr-analyse</option></primary></indexterm>
+ </term>
<listitem>
<para>Turns off the CPR (constructed product result)
analysis; it is somewhat experimental.</para>
</varlistentry>
<varlistentry>
- <term><option>-funbox-strict-fields</option>:</term>
- <listitem>
+ <term>
+ <option>-funbox-strict-fields</option>:
<indexterm><primary><option>-funbox-strict-fields</option></primary></indexterm>
<indexterm><primary>strict constructor fields</primary></indexterm>
<indexterm><primary>constructor fields, strict</primary></indexterm>
-
+ </term>
+ <listitem>
<para>This option causes all constructor fields which are
marked strict (i.e. “!”) to be unboxed or
unpacked if possible. It is equivalent to adding an
</varlistentry>
<varlistentry>
- <term><option>-funfolding-update-in-place<n></option></term>
- <indexterm><primary><option>-funfolding-update-in-place</option></primary></indexterm>
+ <term>
+ <option>-funfolding-update-in-place<n></option>
+ <indexterm><primary><option>-funfolding-update-in-place</option></primary></indexterm>
+ </term>
<listitem>
<para>Switches on an experimental "optimisation".
Switching it on makes the compiler a little keener to
</varlistentry>
<varlistentry>
- <term><option>-funfolding-creation-threshold<n></option>:</term>
- <listitem>
+ <term>
+ <option>-funfolding-creation-threshold<n></option>:
<indexterm><primary><option>-funfolding-creation-threshold</option></primary></indexterm>
<indexterm><primary>inlining, controlling</primary></indexterm>
<indexterm><primary>unfolding, controlling</primary></indexterm>
-
+ </term>
+ <listitem>
<para>(Default: 45) Governs the maximum size that GHC will
allow a function unfolding to be. (An unfolding has a
“size” that reflects the cost in terms of
<variablelist>
<varlistentry>
- <term><option>-fext-core</option></term>
- <indexterm>
- <primary><option>-fext-core</option></primary>
- </indexterm>
+ <term>
+ <option>-fext-core</option>
+ <indexterm><primary><option>-fext-core</option></primary></indexterm>
+ </term>
<listitem>
<para>Generate <literal>.hcr</literal> files.</para>
</listitem>