[LLVMdev] x86 unwind support[MESSAGE NOT SCANNED]

Mark Shannon marks at dcs.gla.ac.uk
Mon Jul 20 07:57:24 PDT 2009

Eli Friedman wrote:
> On Mon, Jul 20, 2009 at 7:09 AM, Mark Shannon<marks at dcs.gla.ac.uk> wrote:
>> For languages with finalizers such as Python or Java, a special
>> finalizer thread can do the cleaning up lazily once the GC has collected
>> the dead objects.
> Both Java and Python support "finally" clauses, which are roughly
> equivalent in this context.
Equivalent to what?

The finally clause merely guarantees to execute whether or not an 
exception is thrown. They do not cause finalization of any objects.

Java, Python, etc. do not require instant finalization of objects, 
because objects exist on the heap, so they can outlive any stack 
references to them.

Unwinding the stack destroys stack-allocated objects so they must be 
finalised immediately *before* the frame in which they were allocated is 
destroyed. Heap allocated objects merely become unreachable.


> -Eli
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

More information about the llvm-dev mailing list