llvm-project/llvm
Joseph Tremoulet e28885e693 [WinEH] Verify unwind edges against EH pad tree
Summary:
Funclet EH personalities require a tree-like nesting among funclets
(enforced by the ParentPad linkage in the IR), and also require that
unwind edges conform to certain rules with respect to the tree:
 - An unwind edge may exit 0 or more ancestor pads
 - An unwind edge must enter exactly one EH pad, which must be distinct
   from any exited pads
 - A cleanupret's edge must exit its cleanuppad

Describe these rules in the LangRef, and enforce them in the verifier.


Reviewers: rnk, majnemer, andrew.w.kaylor

Subscribers: llvm-commits

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

llvm-svn: 257272
2016-01-10 04:28:38 +00:00
..
autoconf [OPENMP] Make -fopenmp to turn on OpenMP support by default. 2015-12-10 05:45:58 +00:00
bindings Deprecate a few C APIs. 2015-12-18 23:46:42 +00:00
cmake tools/llvm-config: improve shared library support 2016-01-07 00:18:56 +00:00
docs [WinEH] Verify unwind edges against EH pad tree 2016-01-10 04:28:38 +00:00
examples [Orc] Fix Kaleidoscope example for change in r254693. 2015-12-04 02:32:32 +00:00
include [Orc] Fix MSVC build errors due to r257265 by adding explicit move construction 2016-01-09 22:05:08 +00:00
lib [WinEH] Verify unwind edges against EH pad tree 2016-01-10 04:28:38 +00:00
projects [CMake] Disable adding the test suite as a projects subdirectory 2015-10-28 18:36:56 +00:00
resources
test [WinEH] Verify unwind edges against EH pad tree 2016-01-10 04:28:38 +00:00
tools [Orc] Enable user-supplied memory managers in the CompileOnDemand layer. 2016-01-09 20:55:18 +00:00
unittests [Orc][RuntimeDyld] Prevent duplicate calls to finalizeMemory on shared memory 2016-01-09 19:50:40 +00:00
utils Revert "Teach the CMake build system to run lit's test suite. These can be run" 2016-01-09 21:42:57 +00:00
.arcconfig
.clang-format
.clang-tidy adding readability-identifier-naming to llvm clang-tidy configuration. 2015-12-08 17:44:51 +00:00
.gitignore
CMakeLists.txt Revert "Teach the CMake build system to run lit's test suite. These can be run" 2016-01-09 21:42:57 +00:00
CODE_OWNERS.TXT The PS4 baton passes. 2015-12-19 20:04:03 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in
Makefile.rules Create Makefile variables for 'share' and 'libexec' 2015-11-09 16:10:00 +00:00
README.txt Revert previous test commit. 2016-01-04 19:13:29 +00:00
configure [OPENMP] Make -fopenmp to turn on OpenMP support by default. 2015-12-10 05:45:58 +00:00
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.