Deserialize IfaceId more lazily

Authored by rwbarton on Mar 3 2017, 7:20 AM.



This change sped up the total validate --build-only time by 0.8%
on my test system; hopefully a representative result.

I didn't bother making the other constructors lazy because for
IfaceData and IfaceClass we need to pull on some of the fields
in loadDecl, and all the others seem much more rare than IfaceId.

Test Plan

validate, perf

Diff Detail

rGHC Glasgow Haskell Compiler
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.
rwbarton created this revision.Mar 3 2017, 7:20 AM
bgamari accepted this revision.Mar 3 2017, 8:27 AM

Looks good to me.!

This revision is now accepted and ready to land.Mar 3 2017, 8:27 AM
This revision was automatically updated to reflect the committed changes.

IdInfo is already lazy, BTW. Maybe this should just cover the ty and details.