[PATCH] [WinEH] Fix problem with mapping handler blocks when multiple clauses share a handler implementation.

Andy Kaylor andrew.kaylor at intel.com
Mon Apr 20 13:53:58 PDT 2015


Hi majnemer, rnk,

This addresses a failure which could occur when optimized IR eliminated handler-specific blocks and created a single shared handler representation.  The IR unconditionally flows into a handler block even when a selector dispatch would normally be expected.  I believe this can only happen if the landing pad has a catch-all handler and the handlers for prior clauses are identical to the catch-all implementation with no intervening clean-up.

My proposed solution effectively eliminates the type-specific catch handlers from the final IR produced, but I think this is good because the resulting code will be more compact yet functionally equivalent.

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D9125

Files:
  lib/CodeGen/WinEHPrepare.cpp
  test/CodeGen/WinEH/cppeh-shared-empty-catch.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9125.24059.patch
Type: text/x-patch
Size: 7814 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150420/6a3887bc/attachment.bin>


More information about the llvm-commits mailing list