Go to file
Joseph Tremoulet e92e0a9042 Fix inliner funclet unwind memoization
Summary:
The inliner may need to determine where a given funclet unwinds to,
and this determination may depend on other funclets throughout the
funclet tree.  The code that performs this walk in getUnwindDestToken
memoizes results to avoid redundant computations.  In the case that
a funclet's unwind destination is derived from its ancestor, there's
code to walk back down the tree from the ancestor updating the memo
map of its descendants to record the unwind destination.  This change
fixes that code to account for the case that some descendant has a
different unwind destination, which can happen if that unwind dest
is a descendant of the EHPad being queried and thus didn't determine
its unwind destination.

Also update test inline-funclets.ll, which is supposed to cover such
scenarios, to include a case that fails an assertion without this fix
but passes with it.

Fixes PR29151.


Reviewers: majnemer

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D24117

llvm-svn: 280610
2016-09-04 01:23:20 +00:00
clang Trailing dot that shouldn't have been committed. 2016-09-04 00:51:02 +00:00
clang-tools-extra Remove link to clang's release notes; keeping it up-to-date is hard 2016-09-02 20:39:46 +00:00
compiler-rt [asan] Move scariness_score_test.cc to a common subdirectory 2016-09-02 07:18:35 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc configure.py: Add polaris10 and polaris11 2016-08-30 18:00:41 +00:00
libcxx Fix bad locale test data when using the newest glibc 2016-09-04 00:48:54 +00:00
libcxxabi [lit] Replace print with lit_config.note(). 2016-09-02 13:56:05 +00:00
libunwind consistently add \n to log and trace messages 2016-08-30 15:38:10 +00:00
lld ReaderWriter: Use ilist_noalloc_traits for TrieEdge, NFC 2016-09-03 01:29:36 +00:00
lldb XFAIL TestGdbRemoteExitCode failing tests 2016-09-04 00:43:10 +00:00
llgo [llgo] add llgo source path to LLVM_GO_PACKAGES 2016-07-27 03:01:00 +00:00
llvm Fix inliner funclet unwind memoization 2016-09-04 01:23:20 +00:00
openmp Move function into cpp file under KMP_AFFINITY_SUPPORTED guard. 2016-09-02 20:54:58 +00:00
parallel-libs [SE] Add getByteCount methods for device memory 2016-09-03 00:32:07 +00:00
polly ScopInfo: Do not derive assumptions from all GEP pointer instructions 2016-09-03 21:55:25 +00:00