Sure. It happens in https://gitlab.staging.haskell.org/ghc/ghc/blob/master/compiler/simplCore/Si... When full laziness is enabled, then after Specialising there is a float-out pass. The normal simplification passes are later, at line 254. This is the reason why I see already optimised core with -ddump-simpl-iterations. The issue disappears when I compile with -fno-full-laziness. So I answered my own question. Now on to figuring out why some silly float-outs are happening. (This is related to https://ghc.haskell.org/trac/ghc/ticket/16039, btw.) Cheers and thanks, Gabor On 12/13/18, Simon Peyton Jones <simonpj@microsoft.com> wrote:
I’m afraid I don’t understand the question. Can you show a small test case and make your question concrete?
Simon
From: ghc-devs <ghc-devs-bounces@haskell.org> On Behalf Of Gabor Greif Sent: 13 December 2018 06:10 To: ghc-devs <ghc-devs@haskell.org> Subject: Post-spec optimisation, wen and where
Hi devs,
I am wondering where the optimisation (e.g. simplified) of specialised dictionaries is taking place. In my case -ddump-spec shows unoptimised, but -ddump-simpl-iterations shows already optimised dictionaries (float-out already happened).
I searched yesterday, but to no avail.
Thanks,
Gabor