[GHC] #11731: Simplifier: Inlining trivial let can lose sharing

GHC ghc-devs at haskell.org
Thu Mar 31 11:25:24 UTC 2016


#11731: Simplifier: Inlining trivial let can lose sharing
-------------------------------------+-------------------------------------
        Reporter:  nomeata           |                Owner:
            Type:  bug               |               Status:  patch
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.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):  Phab:D2064
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by nomeata):

 >  Sounds like a plan. I am currently checking the effect of a very late,
 non-ww, demand analyzer.

 It does fix the bug here (both as observed in nofib, and the test case I
 produced here). The numbers for thunks are the same as with `-flate-dmd-
 anal`, though.

 I wonder: What else (besides the code-generator) uses the used-once
 information in a critical way? In particular, `isUsedOnce` is *only*
 mentioned in `CoreToStg`. Should we even bother removing the information
 then?

 Anyways, I implemented it (wip/T11731 for now). I did put the code into
 DmdAnal.hs, after all, that’s where it belongs, and added a boolean flag
 to `CoreDoStrictness`. A full validation is running.

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


More information about the ghc-tickets mailing list