[LLVMdev] Implementing try/catch/finally

Talin viridia at gmail.com
Mon Apr 21 01:31:10 PDT 2008


Duncan Sands wrote:
>> One approach would be to simply duplicate the code in the 'finally' 
>> block for each exit, but that seems sub-optimal. It would be better, I 
>> think, to set a state variable before entering the 'finally' block, and 
>> then have it do a switch instruction at the end and transfer to the 
>> appropriate block.
>>     
>
> I think gcc just duplicates the block (see tree-eh.c).  I suggest that
> to start with you do the same, because it is simple to do, and then once
> everything is working well look into improving the code quality.
>
> Ciao,
>
> Duncan.
>   
Interesting.

After doing some more research, I noticed that Java uses a jsr to 
implement 'finally', at least according to this document:

  http://java.sun.com/docs/books/jvms/second_edition/html/Compiling.doc.html

-- Talin




More information about the llvm-dev mailing list