Commit 4f7027d6 authored by tibbe's avatar tibbe
Browse files

Document -funbox-strict-primitive-fields

parent e415777c
...@@ -1739,6 +1739,14 @@ ...@@ -1739,6 +1739,14 @@
<entry><option>-fno-unbox-strict-fields</option></entry> <entry><option>-fno-unbox-strict-fields</option></entry>
</row> </row>
<entry>Flatten strict constructor fields with a
pointer-sized representation</entry>
<row> <row>
<entry><option>-funfolding-creation-threshold</option></entry> <entry><option>-funfolding-creation-threshold</option></entry>
<entry>Tweak unfolding settings</entry> <entry>Tweak unfolding settings</entry>
...@@ -1860,6 +1860,31 @@ f "2" = 2 ...@@ -1860,6 +1860,31 @@ f "2" = 2
</listitem> </listitem>
</varlistentry> </varlistentry>
<indexterm><primary>strict constructor fields</primary></indexterm>
<indexterm><primary>constructor fields, strict</primary></indexterm>
<para>This option causes all constructor fields which are marked
strict (i.e. &ldquo;!&rdquo;) and which representation is smaller or
equal to the size of a pointer to be unpacked if possible. It is
equivalent to adding an <literal>UNPACK</literal> pragma to every
strict constructor field that fullfills the size restriction. (see
<xref linkend="unpack-pragma"/>).
<para>This option is less of a sledgehammer than
<option>-funbox-strict-fields</option>: it should rarely make things
worse. If you use <option>-funbox-strict-primitive-fields</option>
to turn on unboxing by default you can disable it for certain
constructor fields using the <literal>NOUNPACK</literal> pragma (see
<xref linkend="nounpack-pragma"/>).</para>
<varlistentry> <varlistentry>
<term> <term>
<option>-fspec-constr</option> <option>-fspec-constr</option>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment