diff options
author | Gor Nishanov <GorNishanov@gmail.com> | 2016-09-09 05:39:00 +0000 |
---|---|---|
committer | Gor Nishanov <GorNishanov@gmail.com> | 2016-09-09 05:39:00 +0000 |
commit | faf36c2e0b0dd074727e6b40078d87ed02eed117 (patch) | |
tree | 11b69fdacc51f4f0a348a4ead0247d4f20d34b34 /llvm/lib/Target/Mips/MipsFrameLowering.cpp | |
parent | 5f04d819a55a6a9f37216cf13bf5b939d5a48086 (diff) | |
download | bcm5719-llvm-faf36c2e0b0dd074727e6b40078d87ed02eed117.tar.gz bcm5719-llvm-faf36c2e0b0dd074727e6b40078d87ed02eed117.zip |
[Coroutines] Part13: Handle single edge PHINodes across suspends
Summary:
If one of the uses of the value is a single edge PHINode, handle it.
Original:
%val = something
<suspend>
%p = PHINode [%val]
After Spill + Part13:
%val = something
%slot = gep val.spill.slot
store %val, %slot
<suspend>
%p = load %slot
Plus tiny fixes/changes:
* use correct index for coro.free in CoroCleanup
* fixup id parameter in coro.free to allow authoring coroutine in plain C with __builtins
Reviewers: majnemer
Subscribers: mehdi_amini, llvm-commits
Differential Revision: https://reviews.llvm.org/D24242
llvm-svn: 281020
Diffstat (limited to 'llvm/lib/Target/Mips/MipsFrameLowering.cpp')
0 files changed, 0 insertions, 0 deletions