<entry>-</entry>
</row>
<row>
+ <entry><option>-keep-llvm-file</option> or
+ <option>-keep-llvm-files</option></entry>
+ <entry>retain intermediate LLVM <literal>.ll</literal> files</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
+ <row>
<entry><option>-keep-s-file</option> or
<option>-keep-s-files</option></entry>
<entry>retain intermediate <literal>.s</literal> files</entry>
<entry><option>-XImplicitPrelude</option></entry>
</row>
<row>
+ <entry><option>-XRebindableSyntax</option></entry>
+ <entry>Employ <link linkend="rebindable-syntax">rebindable syntax</link></entry>
+ <entry>dynamic</entry>
+ <entry><option>-XNoRebindableSyntax</option></entry>
+ </row>
+ <row>
<entry><option>-XNoMonomorphismRestriction</option></entry>
<entry>Disable the <link linkend="monomorphism">monomorphism restriction</link></entry>
<entry>dynamic</entry>
<entry><option>-XNoGADTs</option></entry>
</row>
<row>
+ <entry><option>-XGADTSyntax</option></entry>
+ <entry>Enable <link linkend="gadt-style">generalised algebraic data type syntax</link>.
+ </entry>
+ <entry>dynamic</entry>
+ <entry><option>-XNoGADTSyntax</option></entry>
+ </row>
+ <row>
<entry><option>-XTypeFamilies</option></entry>
<entry>Enable <link linkend="type-families">type families</link>.</entry>
<entry>dynamic</entry>
<entry><option>-XNoMagicHash</option></entry>
</row>
<row>
- <entry><option>-XNewQualifiedOperators</option></entry>
- <entry>Enable <link linkend="new-qualified-operators">new
- qualified operator syntax</link></entry>
- <entry>dynamic</entry>
- <entry><option>-XNoNewQualifiedOperators</option></entry>
- </row>
- <row>
<entry><option>-XExplicitForALl</option></entry>
<entry>Enable <link linkend="explicit-foralls">explicit universal quantification</link>.
Implied by <option>-XScopedTypeVariables</option>,
</row>
<row>
<entry><option>-XFlexibleInstances</option></entry>
- <entry>Enable <link linkend="instance-rules">flexible instances</link>.</entry>
- <entry>dynamic</entry>
+ <entry>Enable <link linkend="instance-rules">flexible instances</link>.
+ Implies <option>-XTypeSynonymInstances</option> </entry>
+ <entry>dynamic</entry>
<entry><option>-XNoFlexibleInstances</option></entry>
</row>
<row>
</row>
<row>
+ <entry><option>-fwarn-identities</option></entry>
+ <entry>warn about uses of Prelude numeric conversions that are probably
+ the identity (and hence could be omitted)</entry>
+ <entry>dynamic</entry>
+ <entry><option>-fno-warn-identities</option></entry>
+ </row>
+
+ <row>
<entry><option>-fwarn-implicit-prelude</option></entry>
<entry>warn when the Prelude is implicitly imported</entry>
<entry>dynamic</entry>
</row>
<row>
+ <entry><option>-fwarn-incomplete-uni-patterns</option></entry>
+ <entry>warn when a pattern match in a lambda expression or pattern binding could fail</entry>
+ <entry>dynamic</entry>
+ <entry><option>-fno-warn-incomplete-uni-patterns</option></entry>
+ </row>
+
+ <row>
<entry><option>-fwarn-incomplete-record-updates</option></entry>
<entry>warn when a record update could fail</entry>
<entry>dynamic</entry>
</row>
<row>
+ <entry><option>-fwarn-lazy-unlifted-bindings</option></entry>
+ <entry>warn when a pattern binding looks lazy but must be strict</entry>
+ <entry>dynamic</entry>
+ <entry><option>-fno-warn-lazy-unlifted-bindings</option></entry>
+ </row>
+
+ <row>
<entry><option>-fwarn-missing-fields</option></entry>
<entry>warn when fields of a record are uninitialised</entry>
<entry>dynamic</entry>
<row>
<entry><option>-fwarn-missing-import-lists</option></entry>
- <entry>warn when explicit imports lack an import list</entry>
+ <entry>warn when an import declaration does not explicitly
+ list all the names brought into scope</entry>
<entry>dynamic</entry>
<entry><option>-fnowarn-missing-import-lists</option></entry>
</row>
</row>
<row>
- <entry><option>-fwarn-simple-patterns</option></entry>
- <entry>warn about lambda-patterns that can fail</entry>
- <entry>dynamic</entry>
- <entry><option>-fno-warn-simple-patterns</option></entry>
- </row>
-
- <row>
<entry><option>-fwarn-tabs</option></entry>
<entry>warn if there are tabs in the source file</entry>
<entry>dynamic</entry>
<entry>-fasm</entry>
</row>
<row>
+ <entry><option>-fllvm</option></entry>
+ <entry>Compile via LLVM</entry>
+ <entry>dynamic</entry>
+ <entry>-fasm</entry>
+ </row>
+ <row>
<entry><option>-fno-code</option></entry>
<entry>Omit code generation</entry>
<entry>dynamic</entry>
<entry>Use <replaceable>cmd</replaceable> as the C compiler</entry>
<entry>dynamic</entry>
<entry>-</entry>
+ <row>
+ <entry><option>-pgmlo</option> <replaceable>cmd</replaceable></entry>
+ <entry>Use <replaceable>cmd</replaceable> as the LLVM optimiser</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
+ <row>
+ <entry><option>-pgmlc</option> <replaceable>cmd</replaceable></entry>
+ <entry>Use <replaceable>cmd</replaceable> as the LLVM compiler</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
</row>
<row>
<entry><option>-pgmm</option> <replaceable>cmd</replaceable></entry>
<indexterm><primary><option>-pgmL</option></primary></indexterm>
<indexterm><primary><option>-pgmP</option></primary></indexterm>
<indexterm><primary><option>-pgmc</option></primary></indexterm>
+ <indexterm><primary><option>-pgmlo</option></primary></indexterm>
+ <indexterm><primary><option>-pgmlc</option></primary></indexterm>
<indexterm><primary><option>-pgma</option></primary></indexterm>
<indexterm><primary><option>-pgml</option></primary></indexterm>
<indexterm><primary><option>-pgmdll</option></primary></indexterm>
<entry>-</entry>
</row>
<row>
+ <entry><option>-optlo</option> <replaceable>option</replaceable></entry>
+ <entry>pass <replaceable>option</replaceable> to the LLVM optimiser</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
+ <row>
+ <entry><option>-optlc</option> <replaceable>option</replaceable></entry>
+ <entry>pass <replaceable>option</replaceable> to the LLVM compiler</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
+ <row>
<entry><option>-optm</option> <replaceable>option</replaceable></entry>
<entry>pass <replaceable>option</replaceable> to the mangler</entry>
<entry>dynamic</entry>
<entry>-</entry>
</row>
<row>
+ <entry><option>-ddump-llvm</option></entry>
+ <entry>Dump LLVM intermediate code</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
+ <row>
<entry><option>-ddump-occur-anal</option></entry>
<entry>Dump occurrence analysis output</entry>
<entry>dynamic</entry>
<entry>-</entry>
</row>
<row>
- <entry><option>-ddump-rules</option></entry>
- <entry>Dump rules</entry>
+ <entry><option>-ddump-rule-firings</option></entry>
+ <entry>Dump rule firing info</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
+ <row>
+ <entry><option>-ddump-rule-rewrites</option></entry>
+ <entry>Dump detailed rule firing info</entry>
<entry>dynamic</entry>
<entry>-</entry>
</row>
+ <row>
+ <entry><option>-ddump-rules</option></entry>
+ <entry>Dump rules</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
+ <row>
+ <entry><option>-ddump-vect</option></entry>
+ <entry>Dump vectoriser input and output</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
<row>
<entry><option>-ddump-simpl</option></entry>
<entry>Dump final simplifier output</entry>
<entry>dynamic</entry>
<entry>-</entry>
</row>
- <row>
- <entry><option>-ddump-tc-trace</option></entry>
- <entry>Trace typechecker</entry>
- <entry>dynamic</entry>
- <entry>-</entry>
- </row>
+ <row>
+ <entry><option>-ddump-tc-trace</option></entry>
+ <entry>Trace typechecker</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
+ <row>
+ <entry><option>-ddump-vt-trace</option></entry>
+ <entry>Trace vectoriser</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
<row>
<entry><option>-ddump-rn-trace</option></entry>
<entry>Trace renamer</entry>
<entry>dynamic</entry>
<entry>-</entry>
</row>
+ <row>
+ <entry><option>-fno-ghci-sandbox</option></entry>
+ <entry>Turn off the GHCi sandbox. Means computations are run in teh main thread, rather than a forked thread.</entry>
+ <entry>dynamic</entry>
+ <entry>-</entry>
+ </row>
</tbody>
</tgroup>
</informaltable>