[GHC] #14152: Float exit paths out of recursive functions
GHC
ghc-devs at haskell.org
Thu Sep 7 16:19:05 UTC 2017
#14152: Float exit paths out of recursive functions
-------------------------------------+-------------------------------------
Reporter: nomeata | Owner: (none)
Type: task | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.2.1
Resolution: | Keywords: JoinPoints
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: #14137 #10918 | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by nomeata):
Digging deeper: For `CSD`, `-ticky`, even with all of base instrumted,
does not not show anything. Same for `cryptarithm1`.
Judging from the module sizes, in base only `Data.Semigroup`, `GHC.Arr`
and `GHC.Float` are affected (but maybe floating a let binding can happen
with equally sized output binary.). A quick look at the core difference
shows that some thunks are floated inside a `joinrec`, or even inlined
completely, e.g. in `Arr`’s `(//)` and `accum`.
None of these look as if they’d affect a benchmark like `CSD`.
It must be the weather, or the constellation of the stars.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14152#comment:23>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list