[GHC] #14035: Weird performance results.

GHC ghc-devs at haskell.org
Mon Jul 31 12:37:07 UTC 2017


#14035: Weird performance results.
-------------------------------------+-------------------------------------
        Reporter:  danilo2           |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by Simon Peyton Jones <simonpj@…>):

 In [changeset:"46368868dc85fc7f0c95fe88af892ad850ed7bc6/ghc" 4636886/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="46368868dc85fc7f0c95fe88af892ad850ed7bc6"
 Improve the desugaring of -XStrict

 Trac #14035 showed that -XStrict was generating some TERRIBLE
 desugarings, espcially for bindings with INLINE pragmas. Reason: with
 -XStrict, all AbsBinds (even for non-recursive functions) went via the
 general-case deguaring for AbsBinds, namely "generate a tuple and
 select from it", even though in this case there was only one variable
 in the tuple.  And that in turn interacts terribly badly with INLINE
 pragmas.

 This patch cleans things up:

 * I killed off AbsBindsSig completely, in favour of a boolean flag
   abs_sig in AbsBinds.  See Note [The abs_sig field of AbsBinds]

   This allowed me to delete lots of code; and instance-method
   declarations can enjoy the benefits too.  (They could have
   before, but no one had changed them to use AbsBindsSig.)

 * I refactored all the AbsBinds handling in DsBinds into a new
   function DsBinds.dsAbsBinds.  This allowed me to handle the
   strict case uniformly
 }}}

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


More information about the ghc-tickets mailing list