llvm-project/llvm/test
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
..
Analysis [Loop Vectorizer] Fixed memory confilict checks. 2016-08-28 08:53:53 +00:00
Assembler DebugInfo: Add flag to CU to disable emission of inline debug info into the skeleton CU 2016-08-24 18:29:49 +00:00
Bindings
Bitcode [PM] Port NameAnonFunction pass to new pass manager 2016-08-12 14:03:36 +00:00
BugPoint
CodeGen [Profile] preserve branch metadata lowering select in CGP 2016-09-03 21:26:36 +00:00
DebugInfo Revert r280549. 2016-09-03 03:18:49 +00:00
Examples
ExecutionEngine ExecutionEngine: fix a bug in the movt/movw relocator 2016-08-29 20:42:03 +00:00
Feature Revert "Revert "Invariant start/end intrinsics overloaded for address space"" 2016-08-13 23:31:24 +00:00
FileCheck
Instrumentation [sanitizer-coverage] add two more modes of instrumentation: trace-div and trace-gep, mostly usaful for value-profile-based fuzzing; llvm part 2016-08-30 01:12:10 +00:00
Integer
JitListener
LTO [LTO] Change addSaveTemps API: do not add dot to the supplied prefix path 2016-08-18 00:12:33 +00:00
LibDriver
Linker IR: Drop uniquing when an MDNode Value operand is deleted 2016-08-03 18:19:43 +00:00
MC [PowerPC] Support asm parsing for bc[l][a][+-] mnemonics 2016-09-03 02:31:44 +00:00
Object Next set of additional error checks for invalid Mach-O files for bad load commands 2016-08-31 17:57:46 +00:00
ObjectYAML [macho2yaml] Don't write empty linkedit data 2016-08-17 21:46:04 +00:00
Other [PM] Introduce basic update capabilities to the new PM's CGSCC pass 2016-08-24 09:37:14 +00:00
SymbolRewriter [PM] Port SymbolRewriter to the new PM 2016-07-25 20:52:00 +00:00
TableGen
ThinLTO/X86 Fix ThinLTO crash with debug info 2016-09-03 21:12:33 +00:00
Transforms Fix inliner funclet unwind memoization 2016-09-04 01:23:20 +00:00
Unit
Verifier [coroutines] Part 4[ab]: Coroutine Devirtualization: Lower coro.resume and coro.destroy. 2016-08-04 20:30:07 +00:00
YAMLParser
tools [llvm-readobj] - Teach readobj to print DT_AUXILIARY dynamic tag in human readable form. 2016-09-02 07:35:19 +00:00
.clang-format
CMakeLists.txt Restore "Resolution-based LTO API." 2016-08-11 14:58:12 +00:00
TestRunner.sh
lit.cfg Restore "Resolution-based LTO API." 2016-08-11 14:58:12 +00:00
lit.site.cfg.in