[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