
17 Jul
2019
17 Jul
'19
3:45 a.m.
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