summaryrefslogtreecommitdiff
path: root/utils/lit/tests
diff options
context:
space:
mode:
authorGor Nishanov <GorNishanov@gmail.com>2017-01-25 02:25:54 +0000
committerGor Nishanov <GorNishanov@gmail.com>2017-01-25 02:25:54 +0000
commit431645e04393da431451561fb889d71ea5a2bf4e (patch)
tree16b583eaaec30567f4a1a84d9366ce3381a86cca /utils/lit/tests
parentd367f44048534bdb4d2d976c088bbad9fb125c0a (diff)
[coroutines] Spill the result of the invoke instruction correctly
Summary: When we decide that the result of the invoke instruction need to be spilled, we need to insert the spill into a block that is on the normal edge coming out of the invoke instruction. (Prior to this change the code would insert the spill immediately after the invoke instruction, which breaks the IR, since invoke is a terminator instruction). In the following example, we will split the edge going into %cont and insert the spill there. ``` %r = invoke double @print(double 0.0) to label %cont unwind label %pad cont: %0 = call i8 @llvm.coro.suspend(token none, i1 false) switch i8 %0, label %suspend [i8 0, label %resume i8 1, label %cleanup] resume: call double @print(double %r) ``` Reviewers: majnemer Reviewed By: majnemer Subscribers: mehdi_amini, llvm-commits, EricWF Differential Revision: https://reviews.llvm.org/D29102 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293006 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/lit/tests')
0 files changed, 0 insertions, 0 deletions