OSDN Git Service

[WinEH] Iterate state changes instead of invokes
authorJoseph Tremoulet <jotrem@microsoft.com>
Tue, 13 Oct 2015 16:44:30 +0000 (16:44 +0000)
committerJoseph Tremoulet <jotrem@microsoft.com>
Tue, 13 Oct 2015 16:44:30 +0000 (16:44 +0000)
commitd27645714f7193dfb6f906415723be29f0319d0c
tree8c677ac33beaf23caa98dcc318b14be604bf9d22
parentf747d124daab9f732b6693f7b45a1abf213282b7
[WinEH] Iterate state changes instead of invokes

Summary:
Add an iterator that can walk across blocks and which visits the state
transitions rather than state ranges, with explicit transitions to -1
indicating the presence of top-level calls that may throw and cause the
current function to unwind to caller.  This will simplify code that needs
to identify nested try regions.

Refactor SEH and C++EH table generation to use the new
InvokeStateChangeIterator, and remove the InvokeLabelIterator they were
using.

Reviewers: majnemer, andrew.w.kaylor, rnk

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D13623

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250179 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/AsmPrinter/WinException.cpp
lib/CodeGen/AsmPrinter/WinException.h