Post-spec optimisation, wen and where

Gabor Greif ggreif at gmail.com
Thu Dec 13 09:10:10 UTC 2018


Sure. It happens in
https://gitlab.staging.haskell.org/ghc/ghc/blob/master/compiler/simplCore/SimplCore.hs#L225

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 at 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 at haskell.org> On Behalf Of Gabor Greif
> Sent: 13 December 2018 06:10
> To: ghc-devs <ghc-devs at 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
>


More information about the ghc-devs mailing list