Missed beta reductions
david at well-typed.com
Tue Mar 27 00:04:27 UTC 2018
Hmmm. So you think maybe it's doing something like (roughly; I don't have the exact case in front of me)
(\p q -> f p (g p q)) this that
==> beta reduce
let p = this q = thatin f p (g p q)
==> inline q
let p = thisin f p (g p that)?
I tried marking the "this" in question INLINE CONLIKE . Shouldn't that tell GHC that duplicating it is fine? I really want to see it for RULES.
David FeuerWell-Typed, LLP
-------- Original message --------From: Simon Peyton Jones <simonpj at microsoft.com> Date: 3/26/18 7:14 PM (GMT-05:00) To: David Feuer <david at well-typed.com>, ghc-devs at haskell.org Subject: RE: Missed beta reductions
GHC always beta-reduces.
It does not always inline. For that: -ddump-inlinings
From: ghc-devs <ghc-devs-bounces at haskell.org> On Behalf Of David Feuer
Sent: 26 March 2018 23:59
To: ghc-devs at haskell.org
Subject: Missed beta reductions
What's the best way to find spots where GHC saw a redex and choose not to beta reduce? Is there a flag for that? It could be useful when trying to figure out why rules aren't firing.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the ghc-devs