Opened 5 years ago

Last modified 19 months ago

#3462 new task

New codegen: allocate large objects using allocateLocal()

Reported by: simonmar Owned by:
Priority: low Milestone: 7.6.2
Component: Compiler Version: 6.11
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: None/Unknown Difficulty: Unknown
Test Case: Blocked By: #4258
Blocking: Related Tickets:


See #3424.

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 -- 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.

Change History (3)

comment:1 Changed 4 years ago by igloo

  • Blocked By 4258 added
  • Milestone changed from 6.14.1 to 6.16.1
  • Type of failure set to None/Unknown

comment:2 Changed 2 years ago by igloo

  • Milestone changed from 7.4.1 to 7.6.1
  • Priority changed from normal to low

comment:3 Changed 19 months ago by igloo

  • Milestone changed from 7.6.1 to 7.6.2
Note: See TracTickets for help on using tickets.