diff options
author | simonpj@microsoft.com <unknown> | 2008-04-11 16:21:37 +0000 |
---|---|---|
committer | simonpj@microsoft.com <unknown> | 2008-04-11 16:21:37 +0000 |
commit | 31478ab93794cd2e0e2a389d76caf43a65c8c3aa (patch) | |
tree | 301f2208e777c7a7ec2376d0c1fa9611300ad322 /docs | |
parent | 27061b5b4008a831eba4784358b040bb1250dcef (diff) | |
download | haskell-31478ab93794cd2e0e2a389d76caf43a65c8c3aa.tar.gz |
Revive the static argument transformation
This patch revives the Static Argument Transformation, thanks to
Max Bolingbroke. It is enabled with
-fstatic-argument-transformation
or -O2
Headline nofib results
Size Allocs Runtime
Min +0.0% -13.7% -21.4%
Max +0.1% +0.0% +5.4%
Geometric Mean +0.0% -0.2% -6.9%
Diffstat (limited to 'docs')
-rw-r--r-- | docs/users_guide/flags.xml | 7 | ||||
-rw-r--r-- | docs/users_guide/using.xml | 30 |
2 files changed, 30 insertions, 7 deletions
diff --git a/docs/users_guide/flags.xml b/docs/users_guide/flags.xml index 21807d7f6a..47b51a8298 100644 --- a/docs/users_guide/flags.xml +++ b/docs/users_guide/flags.xml @@ -1341,6 +1341,13 @@ </row> <row> + <entry><option>-fstatic-argument-transformation</option></entry> + <entry>Turn on the static argument transformation. Implied by <option>-O2</option>.</entry> + <entry>dynamic</entry> + <entry>-fno-static-argument-transformation</entry> + </row> + + <row> <entry><option>-fliberate-case-threshold</option>=<replaceable>n</replaceable></entry> <entry>Set the size threshold for the liberate-case transformation to <replaceable>n</replaceable> (default: 200)</entry> <entry>static</entry> diff --git a/docs/users_guide/using.xml b/docs/users_guide/using.xml index c12f76b7c7..21e5205022 100644 --- a/docs/users_guide/using.xml +++ b/docs/users_guide/using.xml @@ -1522,15 +1522,31 @@ f "2" = 2 <varlistentry> <term> - <option>-fno-state-hack</option> - <indexterm><primary><option>-fno-state-hack</option></primary></indexterm> + <option>-fspec-constr</option> + <indexterm><primary><option>-fspec-constr</option></primary></indexterm> </term> <listitem> - <para>Turn off the "state hack" whereby any lambda with a - <literal>State#</literal> token as argument is considered to be - single-entry, hence it is considered OK to inline things inside - it. This can improve performance of IO and ST monad code, but it - runs the risk of reducing sharing.</para> + <para>Turn on call-pattern specialisation.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-fliberate-case</option> + <indexterm><primary><option>-fliberate-case</option></primary></indexterm> + </term> + <listitem> + <para>Turn on the liberate-case transformation.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term> + <option>-fstatic-argument-transformation</option> + <indexterm><primary><option>-fstatic-argument-transformation</option></primary></indexterm> + </term> + <listitem> + <para>Turn on the static argument transformation.</para> </listitem> </varlistentry> |