What's preventing inlining GHC.Magic.lazy?

Ömer Sinan Ağacan omeragacan at gmail.com
Wed Jul 17 07:45:43 UTC 2019


Hi Simon,

I'm trying to understand what's preventing inlining GHC.Magic.lazy. I can see
with -ddump-simpl -ddump-simpl-iterations -ddump-prep that we only eliminate it
in CorePrep, so it's preserved during simplifications and tidying, but I don't
see how. It doesn't have a NOINLINE pragma, and we don't check whether the id
we're inlining is lazyId (using MkId.lazyId or MkId.lazyIdKey) anywhere in the
compiler as far as I can see.

I also checked Note [lazyId magic] in MkId, but it doesn't explain how we avoid
inlining it.

Could you say a few words on this?

Thanks
Ömer


More information about the ghc-devs mailing list