[PATCH] D12108: [WinEH] Require token linkage in EH pad/ret signatures

Joseph Tremoulet via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 18 11:17:24 PDT 2015


JosephTremoulet created this revision.
JosephTremoulet added reviewers: majnemer, rnk.
JosephTremoulet added a subscriber: llvm-commits.

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.

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.

http://reviews.llvm.org/D12108

Files:
  docs/ExceptionHandling.rst
  docs/LangRef.rst
  include/llvm/Bitcode/LLVMBitCodes.h
  include/llvm/IR/IRBuilder.h
  include/llvm/IR/Instructions.h
  lib/Analysis/IPA/InlineCost.cpp
  lib/AsmParser/LLParser.cpp
  lib/Bitcode/Reader/BitcodeReader.cpp
  lib/Bitcode/Writer/BitcodeWriter.cpp
  lib/CodeGen/WinEHPrepare.cpp
  lib/IR/AsmWriter.cpp
  lib/IR/Instruction.cpp
  lib/IR/Instructions.cpp
  lib/IR/Verifier.cpp
  lib/Transforms/Instrumentation/MemorySanitizer.cpp
  lib/Transforms/Utils/InlineFunction.cpp
  test/CodeGen/WinEH/wineh-demotion.ll
  test/Feature/exception.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12108.32429.patch
Type: text/x-patch
Size: 62026 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150818/1d7c45f7/attachment.bin>


More information about the llvm-commits mailing list