[WinEHPrepare] Add rudimentary support for the new EH instructions
authorDavid Majnemer <david.majnemer@gmail.com>
Thu, 6 Aug 2015 21:07:55 +0000 (21:07 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Thu, 6 Aug 2015 21:07:55 +0000 (21:07 +0000)
commitcb675bb03a593d2fcf71ddb0135e43a025035704
tree69f1bb37b983a08dfe7e83818e865b45d4a97023
parentaf511be69abcdd41ab4f1c793537a6329495c780
[WinEHPrepare] Add rudimentary support for the new EH instructions

Summary:
This adds somewhat basic preparation functionality including:
- Formation of funclets via coloring basic blocks.
- Cloning of polychromatic blocks to ensure that funclets have unique
  program counters.
- Demotion of values used between different funclets.
- Some amount of cleanup once we have removed predecessors from basic
  blocks.
- Verification that we are left with a CFG that makes some amount of
  sense.

N.B. Arguments and numbering still need to be done.

Reviewers: rnk, JosephTremoulet

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244272 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/WinEHPrepare.cpp