Skip to content

Speed up code generation with -finfo-table-map

Finley McIlwaine requested to merge wip/t23103 into master

This MR reduces code generation time with -finfo-table-map by 30% with -O0 and 60% with -O1 (based on tests with check-exact). Info table map generation was previously done with a separate traversal of the generated Cmm code, using the inefficient mapAccumL_ function on the stream. This MR fuses that traversal with the main traversal in GHC.Driver.Main to pre-compute the map from info tables to estimated source positions. That precomputed map is then given to generateCgIPEStub, which now simply yields the IPE CmmGroupSRTs into the stream instead of traversing it.

In a test on the Agda codebase, this shaved 20s off the build time when -finfo-table-map was enabled (380s down to 360s).

Fixes #23103 (closed)

Edited by Finley McIlwaine

Merge request reports