[PATCH] D15517: [WinEH] Use operand bundles to describe call sites

David Majnemer via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 14 19:11:19 PST 2015


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

SimplifyCFG allows tail merging with code which terminates in
unreachable which, in turn, makes it possible for an invoke to end up in
a funclet which it was not originally part of.

Using operand bundles on invokes allows us to determine whether or not
an invoke was part of a funclet in the source program.

Furthermore, it allows us to unambiguously answer questions about the
legality of inlining into call sites which the personality may have
trouble with.

http://reviews.llvm.org/D15517

Files:
  include/llvm/IR/InstrTypes.h
  include/llvm/IR/LLVMContext.h
  include/llvm/Transforms/Utils/Local.h
  lib/CodeGen/WinEHPrepare.cpp
  lib/IR/LLVMContext.cpp
  lib/IR/Verifier.cpp
  lib/Transforms/Utils/InlineFunction.cpp
  lib/Transforms/Utils/Local.cpp
  test/CodeGen/WinEH/wineh-cloning.ll
  test/CodeGen/WinEH/wineh-demotion.ll
  test/CodeGen/WinEH/wineh-no-demotion.ll
  test/CodeGen/X86/funclet-layout.ll
  test/CodeGen/X86/seh-catchpad.ll
  test/CodeGen/X86/seh-except-finally.ll
  test/CodeGen/X86/win-catchpad-nested-cxx.ll
  test/CodeGen/X86/win-catchpad-nested.ll
  test/CodeGen/X86/win32-eh-states.ll
  test/CodeGen/X86/win32-seh-nested-finally.ll
  test/CodeGen/X86/wineh-coreclr.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15517.42814.patch
Type: text/x-patch
Size: 28180 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151215/90649bef/attachment-0001.bin>


More information about the llvm-commits mailing list