[PATCH] Initial SEH IR generation implementation
Reid Kleckner
rnk at google.com
Fri Oct 3 13:59:28 PDT 2014
Hi rjmccall, rsmith, majnemer,
Most of the complexity here is emitting filter expressions as standalone
LLVM functions. The filter functions are used in catch clauses in place
of type_info globals, and LLVM does the rest of the lowering.
Major aspects that still need work:
- __try body outlining with noinline and optnone.
- Cleanup support for __finally and destructors. LLVM won't be able to
lower the current IR to anything useful.
- Local variable access in filter expressions.
- Don't use TLS to figure out which filter function fired. This requires
work in LLVM.
http://reviews.llvm.org/D5607
Files:
include/clang/AST/Decl.h
include/clang/AST/Mangle.h
include/clang/Basic/Builtins.def
include/clang/Basic/DiagnosticCommonKinds.td
include/clang/Basic/DiagnosticParseKinds.td
include/clang/Sema/Scope.h
lib/AST/ItaniumMangle.cpp
lib/AST/MicrosoftMangle.cpp
lib/CodeGen/CGBuiltin.cpp
lib/CodeGen/CGException.cpp
lib/CodeGen/CodeGenFunction.cpp
lib/CodeGen/CodeGenFunction.h
lib/Parse/ParseStmt.cpp
lib/Sema/JumpDiagnostics.cpp
lib/Sema/Scope.cpp
lib/Sema/SemaChecking.cpp
test/CodeGen/exceptions-seh-leave.c
test/CodeGen/exceptions-seh.c
test/OpenMP/parallel_codegen.cpp
test/Sema/__try.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D5607.14405.patch
Type: text/x-patch
Size: 39564 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141003/c6deb03f/attachment.bin>
More information about the cfe-commits
mailing list