]> granicus.if.org Git - clang/commit
Simplify EH control flow by observing that EH scopes form a simple
authorJohn McCall <rjmccall@apple.com>
Thu, 11 Aug 2011 02:22:43 +0000 (02:22 +0000)
committerJohn McCall <rjmccall@apple.com>
Thu, 11 Aug 2011 02:22:43 +0000 (02:22 +0000)
commit777d6e56ad9b1fed9866daf3ee6486d85c5b7d32
tree5533aa8e2260d151b079cdf2789d9e9f4d037554
parent75eeeb173cd3f6425247d3686c19e49117834fc3
Simplify EH control flow by observing that EH scopes form a simple
hierarchy of delegation, and that EH selector values are meaningful
function-wide (good thing, too, or inlining wouldn't work).
2,3d
1a
hierarchy of delegation and that EH selector values have the same
meaning everywhere in the function instead of being meaningful only
in the context of a specific selector.

This removes the need for routing edges through EH cleanups,
since a cleanup simply always branches to its enclosing scope.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137293 91177308-0d34-0410-b5e6-96231b3b80d8
13 files changed:
lib/CodeGen/CGCleanup.cpp
lib/CodeGen/CGCleanup.h
lib/CodeGen/CGException.cpp
lib/CodeGen/CGObjCMac.cpp
lib/CodeGen/CGObjCRuntime.cpp
lib/CodeGen/CGStmt.cpp
lib/CodeGen/CodeGenFunction.cpp
lib/CodeGen/CodeGenFunction.h
test/CodeGenCXX/destructors.cpp
test/CodeGenCXX/eh.cpp
test/CodeGenCXX/exceptions.cpp
test/CodeGenCXX/goto.cpp
test/CodeGenCXX/partial-destruction.cpp