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 |