1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
llvm-mirror/include/llvm
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
..
ADT Disable Visual C++ 2013 Debug mode assert on null pointer in some STL algorithms, 2015-08-21 17:31:03 +00:00
Analysis [ValueTracking] computeOverflowForSignedAdd and isKnownNonNegative 2015-08-20 18:27:04 +00:00
AsmParser AsmParser: Save and restore the parsing state for types using SlotMapping. 2015-08-21 21:32:39 +00:00
Bitcode [WinEH] Require token linkage in EH pad/ret signatures 2015-08-23 00:26:33 +00:00
CodeGen [DAGCombiner] Added SMAX/SMIN/UMAX/UMIN constant folding 2015-08-19 21:11:58 +00:00
Config Temporarily revert r244012 while we see if it's really necessary. 2015-08-05 05:32:22 +00:00
DebugInfo -Wdeprecated-clean: Fix cases of violating the rule of 5 in ways that are deprecated in C++11 2015-08-05 20:20:29 +00:00
ExecutionEngine Remove and forbid raw_svector_ostream::flush() calls. 2015-08-13 18:12:56 +00:00
IR [WinEH] Require token linkage in EH pad/ret signatures 2015-08-23 00:26:33 +00:00
IRReader Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LibDriver LibDriver: Replace references to lld-link2 with lld-link. 2015-08-06 19:00:42 +00:00
LineEditor Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Linker Linker: Remove empty destructor. 2015-08-21 04:51:24 +00:00
LTO LTO: Maintain target triple, FeatureStr and CGOptLevel in the module or LTOCodeGenerator. 2015-08-22 02:25:53 +00:00
MC Extend MCAsmLexer so that it can peek forward several tokens 2015-08-17 14:35:25 +00:00
Object Don't iterate over all sections in the ELFFile constructor. 2015-08-10 21:29:35 +00:00
Option Add an ArgList::AddAllArgs that accepts a vector of OptSpecifier. 2015-07-29 17:34:41 +00:00
Passes Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ProfileData Fix some comment typos. 2015-08-08 18:27:36 +00:00
Support [ARM] Fix MachO CPU Subtype selection 2015-08-21 21:52:48 +00:00
TableGen [TableGen] Remove unused constructor. 2015-08-12 06:43:10 +00:00
Target [PeepholeOptimizer] Look through PHIs to find additional register sources 2015-08-19 18:53:36 +00:00
Transforms TransformUtils: Introduce module splitter. 2015-08-21 02:48:20 +00:00
CMakeLists.txt Remove llvm_headers_do_not_build for the benefit of XCode and Visual Studio users. 2014-08-14 00:51:47 +00:00
InitializePasses.h [PM/AA] Remove the last relics of the separate IPA library from LLVM, 2015-08-18 17:51:53 +00:00
LinkAllIR.h
LinkAllPasses.h [PM] Port ScalarEvolution to the new pass manager. 2015-08-17 02:08:17 +00:00
module.modulemap Add Value.def to the list of textual includes, excluding it from the modules build. 2015-06-26 20:16:44 +00:00
module.modulemap.build
Pass.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PassAnalysisSupport.h [LPM] Teach the legacy pass manager to support *using* an analysis 2015-08-19 03:02:12 +00:00
PassInfo.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PassRegistry.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PassSupport.h Support: Clean up TSan annotations. 2015-08-18 22:31:24 +00:00