1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 22:42:46 +02:00
llvm-mirror/lib/Transforms/Instrumentation
Joseph Tremoulet 56089ea65e [WinEH] Require token linkage in EH pad/ret signatures
Summary:
WinEHPrepare is going to require that cleanuppad and catchpad produce values
of token type which are consumed by any cleanupret or catchret exiting the
pad.  This change updates the signatures of those operators to require/enforce
that the type produced by the pads is token type and that the rets have an
appropriate argument.

The catchpad argument of a `CatchReturnInst` must be a `CatchPadInst` (and
similarly for `CleanupReturnInst`/`CleanupPadInst`).  To accommodate that
restriction, this change adds a notion of an operator constraint to both
LLParser and BitcodeReader, allowing appropriate sentinels to be constructed
for forward references and appropriate error messages to be emitted for
illegal inputs.

Also add a verifier rule (noted in LangRef) that a catchpad with a catchpad
predecessor must have no other predecessors; this ensures that WinEHPrepare
will see the expected linear relationship between sibling catches on the
same try.

Lastly, remove some superfluous/vestigial casts from instruction operand
setters operating on BasicBlocks.

Reviewers: rnk, majnemer

Subscribers: llvm-commits

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

llvm-svn: 245797
2015-08-23 00:26:33 +00:00
..
AddressSanitizer.cpp [asan] Add ASAN support for AArch64 42-bit VMA 2015-08-20 18:30:40 +00:00
BoundsChecking.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
CMakeLists.txt Protection against stack-based memory corruption errors using SafeStack 2015-06-15 21:07:11 +00:00
DataFlowSanitizer.cpp Enable dfsan for aarch64 2015-07-30 20:49:35 +00:00
GCOVProfiling.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
InstrProfiling.cpp Tidy comment. 2015-06-29 20:03:46 +00:00
Instrumentation.cpp [sancov] Leave llvm.localescape in the entry block 2015-08-14 16:45:42 +00:00
LLVMBuild.txt Update libdeps since TLI was moved from Target to Analysis in r226078. 2015-01-15 05:21:00 +00:00
Makefile
MaximumSpanningTree.h
MemorySanitizer.cpp [WinEH] Require token linkage in EH pad/ret signatures 2015-08-23 00:26:33 +00:00
SafeStack.cpp Rename inst_range() to instructions() for consistency. NFC 2015-08-06 19:10:45 +00:00
SanitizerCoverage.cpp [sancov] Fix an unused variable warning introduced in r245067 2015-08-14 17:03:45 +00:00
ThreadSanitizer.cpp Try to appease VS 2015 warnings from http://reviews.llvm.org/D11890 2015-08-15 19:06:14 +00:00