Enable -funbox-small-strict-fields by default
authorJohan Tibell <johan.tibell@gmail.com>
Fri, 26 Apr 2013 18:14:01 +0000 (11:14 -0700)
committerJohan Tibell <johan.tibell@gmail.com>
Tue, 30 Apr 2013 15:10:06 +0000 (08:10 -0700)
The flag shows no real impact on nofib benchmarks and GHC itself,
which is expected given the small number of strict but not already
unpacked fields in the source of these programs. However, the flag
allows us to omit most of the UNPACK pragmas that are so common in
source code today.

compiler/main/DynFlags.hs
docs/users_guide/using.xml

index 33eae5a..905c0d8 100644 (file)
@@ -2767,6 +2767,7 @@ optLevelFlags
     , ([1,2],   Opt_FullLaziness)
     , ([1,2],   Opt_Specialise)
     , ([1,2],   Opt_FloatIn)
+    , ([1,2],   Opt_UnboxSmallStrictFields)
 
     , ([2],     Opt_LiberateCase)
     , ([2],     Opt_SpecConstr)
index be7e3da..9c6fbf7 100644 (file)
@@ -1901,11 +1901,12 @@ f "2"    = 2
             <indexterm><primary>constructor fields, strict</primary></indexterm>
           </term>
           <listitem>
-            <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 (see <xref
+            <para><emphasis>On by default.</emphasis>. 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 (see <xref
             linkend="unpack-pragma"/>) to every strict constructor
             field that fulfils the size restriction.
             </para>