diff options
author | Arnold Schwaighofer <aschwaighofer@apple.com> | 2021-12-06 09:23:50 -0800 |
---|---|---|
committer | Arnold Schwaighofer <aschwaighofer@apple.com> | 2021-12-06 10:59:43 -0800 |
commit | 64ba9dd943aab8b7bdb44a1c3ae05ed2a940280d (patch) | |
tree | ab6ff2bcd65bbfe9fa56835f4c641da085e570f9 /llvm/lib/CodeGen/MachineScheduler.cpp | |
parent | 0ef8ad08db6c154f14c0e060b71106dacd8f29fd (diff) | |
download | llvm-64ba9dd943aab8b7bdb44a1c3ae05ed2a940280d.zip llvm-64ba9dd943aab8b7bdb44a1c3ae05ed2a940280d.tar.gz llvm-64ba9dd943aab8b7bdb44a1c3ae05ed2a940280d.tar.bz2 |
[coro async] Disable lifetime.start sinking for ABI::Async and ABI::Retcon
It does not handle loops correctly i.e it moves the lifetime.start
intrinsic into a loop rendering the stack object as not alive for part
of the loop.
```
entry:
%obj = alloca i8
lifetime.start(%obj)
br loop
loop:
coro.suspend()
escape(%obj)
cond_br %cond, label %exit, label loop
br loop
exit:
lifetime.end(%obj
```
After sinking:
```
entry:
%obj = alloca i8
br loop
loop:
coro.suspend()
lifetime.start(%obj)
escape(%obj)
cond_br %cond, label %exit, label loop
br loop
exit:
lifetime.end(%obj
```
rdar://83411917
Differential Revision: https://reviews.llvm.org/D110953
Diffstat (limited to 'llvm/lib/CodeGen/MachineScheduler.cpp')
0 files changed, 0 insertions, 0 deletions