llvm-project/llvm/test/Transforms/Coroutines
Brian Gesiak d7b68132d8 [coroutines][PR40979] Ignore unreachable uses across suspend points
Summary:
Depends on https://reviews.llvm.org/D59069.

https://bugs.llvm.org/show_bug.cgi?id=40979 describes a bug in which the
-coro-split pass would assert that a use was across a suspend point from
a definition. Normally this would mean that a value would "spill" across
a suspend point and thus need to be stored in the coroutine frame. However,
in this case the use was unreachable, and so it would not be necessary
to store the definition on the frame.

To prevent the assert, simply remove unreachable basic blocks from a
coroutine function before computing spills. This avoids the assert
reported in PR40979.

Reviewers: GorNishanov, tks2103

Reviewed By: GorNishanov

Subscribers: EricWF, jdoerfert, llvm-commits, lewissbaker

Tags: #llvm

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

llvm-svn: 355852
2019-03-11 18:31:28 +00:00
..
ArgAddr.ll
coro-catchswitch.ll
coro-cleanup.ll
coro-debug.ll Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
coro-early.ll
coro-eh-aware-edge-split.ll
coro-elide.ll
coro-frame-unreachable.ll [coroutines][PR40979] Ignore unreachable uses across suspend points 2019-03-11 18:31:28 +00:00
coro-frame.ll
coro-heap-elide.ll [Coroutines] PR34897: Fix incorrect elisions 2018-05-11 03:12:28 +00:00
coro-materialize.ll
coro-padding.ll [coroutines] Respect alloca alignment requirements when building coroutine frame 2018-04-03 20:54:20 +00:00
coro-spill-after-phi.ll
coro-spill-corobegin.ll
coro-split-00.ll
coro-split-01.ll
coro-split-02.ll
coro-split-alloc.ll
coro-split-dbg.ll Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
coro-split-eh.ll
coro-split-hidden.ll
coro-split-musttail.ll
ex0.ll
ex1.ll
ex2.ll
ex3.ll
ex4.ll
ex5.ll
no-suspend.ll [coroutines] Improve suspend point simplification 2018-12-11 21:23:09 +00:00
phi-coro-end.ll
restart-trigger.ll
smoketest.ll