
#15642: Improve the worst case performance of weak pointers -------------------------------------+------------------------------------- Reporter: dfeuer | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: 8.8.1 Component: Runtime System | Version: 8.6.1-beta1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by dfeuer): I realized two things today: 1. We don't have to tag the info pointer (or deal with the possibility that it's tagged) in the mutator. We can instead tag all the pointers in the table at the beginning of collection and untag as we go. 2. We should have enough bits, even for a large binary on a 32-bit system. Why? Because even a huge binary won't have billions of info tables except perhaps in a pathological case. So if we eventually need another bit, we can impose 8-byte alignment for the tables. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15642#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler