llvm-project/llvm/lib/Transforms/Coroutines
Chuanqi Xu c8ecf12bc3 [Coroutines] Offering llvm.coro.align intrinsic
It is a known problem that we can't align the switch-based coroutine
frame if the alignment exceeds std::max_align_t (which is 16 usually).

We could solve the problem on the middle-end by dynamically transforming
or in the frontend by emitting aligned allocation function.

If we need to solve it in the frontend, the middle end need to offer an
intrinsic to tell the alignment at least. This patch tries to offer such
an intrinsic called llvm.coro.align.

Reviewed By: https://reviews.llvm.org/D117542

Differential revision: https://reviews.llvm.org/D117542
2022-01-19 09:52:45 +08:00
..
CMakeLists.txt llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
CoroCleanup.cpp Coro: Remove coro_end and coro_suspend_retcon in private unprocessed functions 2021-11-18 07:48:24 -08:00
CoroEarly.cpp [Coroutines] Set presplit attribute in Clang and mlir 2022-01-05 10:25:02 +08:00
CoroElide.cpp [Coroutine] Record the elided coroutines 2021-07-27 13:14:09 +08:00
CoroFrame.cpp [NFC] [Coroutines] Rename ReuseFrameSlot to OptimizeFrame 2022-01-05 11:40:27 +08:00
CoroInstr.h [Coroutines] Offering llvm.coro.align intrinsic 2022-01-19 09:52:45 +08:00
CoroInternal.h [Coroutines] Offering llvm.coro.align intrinsic 2022-01-19 09:52:45 +08:00
CoroSplit.cpp [Coroutines] Offering llvm.coro.align intrinsic 2022-01-19 09:52:45 +08:00
Coroutines.cpp [Coroutines] Offering llvm.coro.align intrinsic 2022-01-19 09:52:45 +08:00