Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 5,241
    • Issues 5,241
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 567
    • Merge requests 567
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell CompilerGlasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #22077
Closed
Open
Issue created Aug 19, 2022 by Ben Gamari@bgamari🐢Maintainer

IPE information is much larger than necessary

The representation of the info table provenance map emitted in object code is far more costly in space and linking time than necessary in a few ways:

  • strings are encoded as full-width pointers. This comes both at the cost of code size (since 32-bits is certainly sufficient) and link time (since pointers must be relocated)
  • no attempt is made to deduplicate strings; this is particularly bad since every IPE entry has strings of the source module name and file name.
  • all IPE entries are exposed as global symbols since they must be referenced by the registration stub, greatly increasing the size of the symbol table

Moreover, the current registration logic relies on mutexes and malloc from within a global initializer, which is undefined behavior.

Edited Jan 23, 2023 by Ben Gamari
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking