[GHC] #9374: Investigate Static Argument Transformation

GHC ghc-devs at haskell.org
Wed Nov 5 13:36:01 UTC 2014


#9374: Investigate Static Argument Transformation
-------------------------------------+-------------------------------------
              Reporter:  jstolarek   |            Owner:
                  Type:  task        |           Status:  new
              Priority:  lowest      |        Milestone:
             Component:  Compiler    |          Version:  7.9
            Resolution:              |         Keywords:
      Operating System:              |     Architecture:  Unknown/Multiple
  Unknown/Multiple                   |       Difficulty:  Unknown
       Type of failure:              |       Blocked By:
  None/Unknown                       |  Related Tickets:
             Test Case:              |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------
Description changed by jstolarek:

Old description:

> At the moment the Static Argument Transformation (SAT) optimisation is
> not run unless explicitly enabled with `-fstatic-argument-
> transformation`. The comment in DynFlags says:
>
> {{{
> Max writes: I think it's probably best not to enable SAT with -O2 for the
> 6.10 release. The version of SAT in HEAD at the moment doesn't
> incorporate
> several improvements to the heuristics, and I'm concerned that without
> those changes SAT will interfere with some attempts to write "high
> performance Haskell", as we saw in some posts on Haskell-Cafe earlier
> this year. In particular, the version in HEAD lacks the tail call
> criterion, so many things that look like reasonable loops will be
> turned into functions with extra (unneccesary) thunk creation.
> }}}
>
> 6.10 was a long time ago. Has anything changed since then? Does it make
> sense to enable that optimisation now? What are the mentioned heuristics
> and were they finally implemented? Does anyone know what Haskell-cafe
> posts does Max refer to?

New description:

 At the moment the Static Argument Transformation (SAT) optimisation is not
 run unless explicitly enabled with `-fstatic-argument-transformation`.
 There was a comment by Max Bolingbroke in DynFlags that said this (that
 comment is now removed and replaced with a reference to this ticket):

 {{{
 Max writes: I think it's probably best not to enable SAT with -O2 for the
 6.10 release. The version of SAT in HEAD at the moment doesn't incorporate
 several improvements to the heuristics, and I'm concerned that without
 those changes SAT will interfere with some attempts to write "high
 performance Haskell", as we saw in some posts on Haskell-Cafe earlier
 this year. In particular, the version in HEAD lacks the tail call
 criterion, so many things that look like reasonable loops will be
 turned into functions with extra (unneccesary) thunk creation.
 }}}

 6.10 was a long time ago. Has anything changed since then? Does it make
 sense to enable that optimisation now? What are the mentioned heuristics
 and were they finally implemented? Does anyone know what Haskell-cafe
 posts does Max refer to?

--

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9374#comment:14>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list