[PATCH] Work-in-progress omnibus patch for native Windows C++ EH outlining

Andy Kaylor andrew.kaylor at intel.com
Wed Feb 25 12:36:44 PST 2015


Hi rnk, majnemer, ABataev,

I don't actually intend for this to receive a detailed review or to be committed in its current form.  I'm submitting this patch just to provide a preview of where I'm going with the native Windows C++ EH outlining.

This patch includes the in-flight changes in D7844 and D7865.  It also adds landing block pre-analysis support, catch and cleanup handler pruning, shared and nested handler support and landing pad body replacement (with a stub form of the yet to be finalized llvm.eh.actions intrinsic).  We can talk about what to peel off next after the other patches land.

The code here still needs extensive re-factoring to minimize duplicate code and redundant logic.  It also needs a good bit of clean-up.  In particular, the clean-up code identification needs to be made more robust.  I have some ideas about that but nothing implemented.

Feedback on the general algorithms and approach is welcome and will be appreciated.  Suggestions as to better idioms, data structures and utility functions I should be using are likewise welcome.  Style and formatting feedback is not necessary, but if you see me habitually doing something that is so jarring that you just want to tell me "Stop doing that!" feel free to do so.

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D7886

Files:
  include/llvm/Transforms/Utils/Cloning.h
  lib/CodeGen/WinEHPrepare.cpp
  lib/Transforms/Utils/CloneFunction.cpp
  test/CodeGen/X86/cppeh-catch-all.ll
  test/CodeGen/X86/cppeh-catch-scalar.ll
  test/CodeGen/X86/cppeh-frame-vars.ll
  test/CodeGen/X86/cppeh-min-unwind.ll
  test/CodeGen/X86/cppeh-nested-2.ll
  test/CodeGen/X86/cppeh-nonalloca-frame-values.ll
  test\CodeGen\X86\cppeh-nested-2.ll
  test\CodeGen\X86\cppeh-nonalloca-frame-values.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7886.20695.patch
Type: text/x-patch
Size: 108091 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150225/7ad76e7c/attachment.bin>


More information about the llvm-commits mailing list