Relax the assumption that all objects fit in a single block (#3424)
authorSimon Marlow <marlowsd@gmail.com>
Thu, 20 Aug 2009 14:43:08 +0000 (14:43 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Thu, 20 Aug 2009 14:43:08 +0000 (14:43 +0000)
commitb99af8633eff2cba0128fa874e1ecbea0d1647fd
tree0e5b1b50c3648d963f77e78b33f53b361aaea842
parent0f38effbde8122061b4f286dc8143bae2d0eca36
Relax the assumption that all objects fit in a single block (#3424)

It is possible for the program to allocate single object larger than a
block, without going through the normal large-object mechanisms that
we have for arrays and threads and so on.

The GC was assuming that no object was larger than a block, but #3424
contains a program that breaks the assumption.  This patch removes the
assumption.  The objects in question will still be copied, that is
they don't get the normal large-object treatment, but this case is
unlikely to occur often in practice.

In the future we may improve things by generating code to allocate
them as large objects in the first place.
rts/sm/GCUtils.c