Skip to content

New codegen: allocate large objects using allocateLocal()

See #3424 (closed).

In the new code generator, we should allocate large objects (larger than F * block size, for some suitable fraction F) using the RTS allocateLocal() API rather than from the nursery. It works to allocate them from the nursery -- this is what GHC 6.12 does after the fix in #3424 (closed) -- but then they will not be treated as large objects and will be copied during GC. Also, the allocation is likely to fail, requiring a trip through the RTS to put a large enough block in the nursery to satisfy the allocation.

Trac metadata
Trac field Value
Version 6.11
Type Task
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information