[CoroutineAccessors] Use retcon.once variant.

Allocate a coroutine frame in the caller based on the size in the
corresponding "function pointer" and pass it along with an allocator to
the callee.
This commit is contained in:
Nate Chandler
2025-02-14 16:07:38 -08:00
parent 3d655f58a2
commit dd8cbe3e0a
34 changed files with 1049 additions and 140 deletions

View File

@@ -3431,6 +3431,11 @@ static bool ParseIRGenArgs(IRGenOptions &Opts, ArgList &Args,
// AsyncFunctionPointer access.
Opts.IndirectAsyncFunctionPointer = Triple.isOSBinFormatCOFF();
// PE/COFF cannot deal with the cross-module reference to the
// CoroFunctionPointer data block. Force the use of indirect
// CoroFunctionPointer access.
Opts.IndirectCoroFunctionPointer = Triple.isOSBinFormatCOFF();
// On some Harvard architectures that allow sliding code and data address space
// offsets independently, it's impossible to make direct relative reference to
// code from data because the relative offset between them is not representable.