1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/lib/Transforms/Coroutines
Adrian Prantl 73fb46a3c5 Salvage debug info for function arguments in coro-split funclets.
This patch improves the availability for variables stored in the
coroutine frame by emitting an alloca to hold the pointer to the frame
object and rewriting dbg.declare intrinsics to point inside the frame
object using salvaged DIExpressions. Finally, a new alloca is created
in the funclet to hold the FramePtr pointer to ensure that it is
available throughout the entire function at -O0.

This path also effectively reverts D90772. The testcase updates
highlight nicely how every removed CHECK for a dbg.value is preceded
by a new CHECK for a dbg.declare.

Thanks to JunMa, Yifeng, and Bruno for their thoughtful reviews!

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

rdar://71866936
2021-01-26 15:01:26 -08:00
..
CMakeLists.txt llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
CoroCleanup.cpp Start of an llvm.coro.async implementation 2020-11-04 10:29:21 -08:00
CoroEarly.cpp [coro.async] Make sure we process async coroutines 2021-01-22 07:04:01 -08:00
CoroElide.cpp [Coroutine] Do not CoroElide if there are musttail calls 2021-01-18 09:06:21 -08:00
CoroFrame.cpp Salvage debug info for function arguments in coro-split funclets. 2021-01-26 15:01:26 -08:00
CoroInstr.h Add a llvm.coro.end.async intrinsic 2020-12-22 10:52:28 -08:00
CoroInternal.h Salvage debug info for function arguments in coro-split funclets. 2021-01-26 15:01:26 -08:00
CoroSplit.cpp Salvage debug info for function arguments in coro-split funclets. 2021-01-26 15:01:26 -08:00
Coroutines.cpp [Coroutines] checkAsyncFuncPointer - use cast<> instead of dyn_cast<> for dereferenced pointer. NFCI. 2021-01-05 10:31:45 +00:00