Adapt for LLVM 15 coroutine change
Patch imported from cl/455403121, which adapts for
https://reviews.llvm.org/D127471
Bug: Fix building with latest LLVM
Change-Id: I668021b0607f6e8c9ee13da33990f0b57a53ac0a
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/66568
Reviewed-by: Alexis Hétu <sugoi@google.com>
Commit-Queue: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Reactor/LLVMReactor.cpp b/src/Reactor/LLVMReactor.cpp
index 6632ffd..cfd4629 100644
--- a/src/Reactor/LLVMReactor.cpp
+++ b/src/Reactor/LLVMReactor.cpp
@@ -4186,7 +4186,11 @@
auto promisePtrTy = promiseTy->getPointerTo();
jit->function = rr::createFunction("coroutine_begin", handleTy, T(Params));
+#if LLVM_VERSION_MAJOR >= 15
+ jit->function->setPresplitCoroutine();
+#else
jit->function->addFnAttr("coroutine.presplit", "0");
+#endif
jit->coroutine.await = rr::createFunction("coroutine_await", boolTy, { handleTy, promisePtrTy });
jit->coroutine.destroy = rr::createFunction("coroutine_destroy", voidTy, { handleTy });
jit->coroutine.yieldType = promiseTy;