[llvm-commits] [patch] ExceptionDemo patch for review

Garrison Venn gvenn.cfe.dev at gmail.com
Wed Feb 3 13:33:28 PST 2010


The attached patch will add a JIT based exception handling example to the examples directory. Both zero cost 
example specific, and C++ foreign exception handling is demoed. The example's documentation fully explains how 
to run the example.

Caveats:

1)   The example uses an extremely simple type info model.
2)   Only a single landing pad is used (one call to llvm.eh.selector)
3)   llvm.eh.selector support for filter arguments is not given.
4)   llvm.eh.typeid.for is not used.
5)   Forced unwind behavior is not supported.
6)   The code is written in a C style utilizing C++ APIs, and syntax. The LLVM’s C interface is NOT used,
       but statics, fprintf, and an inconsistent mixture of C and C++ casting are all utilized.
7)   Pedantic, redundant, and inconsistent forcing of precedence exists in the code.
8)   Very little if any error handling is given.
9)   The example is currently intended for a UNIX C++ developer audience who is familiar with LLVM’s IR classes.
10) __attribute__((__aligned__)) is used.
11) The example has not been ported to WINDOWS.
12) The patch was tested for a debug build on 32bit X86 CentOS LINUX, and both a debug and release build 
       on OS X 10.6.2 (64bit).
13) This version conforms to the latest mainline (2.7).

Thanks in advance for any review comments.

Garrison

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ExceptionDemo.patch
Type: application/octet-stream
Size: 87991 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20100203/5f622425/attachment.obj>


More information about the llvm-commits mailing list