llvm-project/llvm/lib/Transforms/Coroutines
Xun Li 5b533d6cde [Coroutine] Fix a bug where Coroutine incorrectly spills phi and invoke defs before CoroBegin
When a spill definition is before CoroBegin, we cannot spill it to the frame immediately after the definition. We have to spill it after the frame is ready.
The current implementation handles it properly for any other kinds of instructions except for PhINode and InvokeInst, which could also be defined before CoroBegin.
This patch fixes it by moving the CoroBegin dominance check earlier, so that it covers all cases.
Added a test.

Differential Revision: https://reviews.llvm.org/D87810
2020-09-17 08:13:07 -07:00
..
CMakeLists.txt [Transforms][Coroutines] Add missing header path to CMakeLists.txt 2020-09-15 10:37:25 +01:00
CoroCleanup.cpp [Coroutines][4/6] New pass manager: coro-cleanup 2020-02-19 00:30:27 -05:00
CoroEarly.cpp [llvm][NFC][CallSite] Remove CallSite from CoroEarly 2020-04-20 18:15:25 -07:00
CoroElide.cpp AllocaInst should store Align instead of MaybeAlign. 2020-05-16 14:53:16 -07:00
CoroFrame.cpp [Coroutine] Fix a bug where Coroutine incorrectly spills phi and invoke defs before CoroBegin 2020-09-17 08:13:07 -07:00
CoroInstr.h [Alignment][NFC] Use proper getter to retrieve alignment from ConstantInt and ConstantSDNode 2020-07-03 08:06:43 +00:00
CoroInternal.h Revert D85812 "[coroutine] should disable inline before calling coro split" 2020-08-24 11:41:05 -07:00
CoroSplit.cpp [Coro][NewPM] Handle llvm.coro.prepare.retcon in NPM coro-split pass 2020-09-16 09:09:10 -07:00
Coroutines.cpp [CallSite removal] Remove unneeded includes of CallSite.h. NFC 2020-04-22 00:07:13 -07:00
LLVMBuild.txt