On 4/07/2012, at 10:42 AM, David Given wrote: > For example, passing the object to a leaf function vs passing it to a > non-leaf function I imagine it's more a case of whether the object is contained within a single trace than about functions. Presumably some objects are materialized just before trace exits. Are then then un-materialised if the side trace's use of the object later proves tractable to the optimization? > passing it to an FFI function… If you ask for a pointer, a pointer has to be provided. As I understand it, this is about moving structure fields from the heap to local variables, not whole structures from the heap to the stack.