[GHC] #11731: Simplifier: Inlining trivial let can lose sharing
GHC
ghc-devs at haskell.org
Thu Mar 31 14:40:49 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:D2073
Wiki Page: |
-------------------------------------+-------------------------------------
Changes (by nomeata):
* differential: Phab:D2064 => Phab:D2073
Comment:
> Crumbs. I see that you are doing an entire pass of the program to erase
this info. That does seem like overkill, to remove info that is never
examined anyway. I'd much rather not do this.
Agreed, I reverted it; the final result (with Note) is now in Phab:D2073.
I did look at the worker/wrapper module, but found that it would be quite
ugly to do it there. For example, clear “In this case do nothing” code
paths would have to turn to “In this case, do nothing (besides this change
to all binders that we happen to do here).”
One clear implementation would have been to adjust the calls to
`setIdDemandInfo` in `DmdAnal`, but that would go wrong because of the
Cunning Plan with fixed-point iteration, where later iterations use the
existing annotations.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11731#comment:35>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list