mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 07:38:10 +02:00
gallivm: fix coroutines on aarch64 with llvm 8
The coroutine split pass is missing a dependency before LLVM 9.0,
and fails to initialise properly if the CallGraphWrapperPass hasn't
be initialised earlier (x86 does it due to some of it's passes
requiring it).
This is a workaround for llvm 8 (coroutines are only supported in 8
and higher). It adds another pass that has a dependency on the pass
the coroutines split requires. This pass shouldn't have any raal
effects.
Fixes: d32690b43c (gallivm: add coroutine pass manager support)
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
This commit is contained in:
parent
05b008c961
commit
f59ff014b1
1 changed files with 6 additions and 0 deletions
|
|
@ -46,6 +46,9 @@
|
|||
#endif
|
||||
#include <llvm-c/BitWriter.h>
|
||||
#if GALLIVM_HAVE_CORO
|
||||
#if LLVM_VERSION_MAJOR <= 8 && defined(PIPE_ARCH_AARCH64)
|
||||
#include <llvm-c/Transforms/IPO.h>
|
||||
#endif
|
||||
#include <llvm-c/Transforms/Coroutines.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -134,6 +137,9 @@ create_pass_manager(struct gallivm_state *gallivm)
|
|||
}
|
||||
|
||||
#if GALLIVM_HAVE_CORO
|
||||
#if LLVM_VERSION_MAJOR <= 8 && defined(PIPE_ARCH_AARCH64)
|
||||
LLVMAddFunctionAttrsPass(gallivm->cgpassmgr);
|
||||
#endif
|
||||
LLVMAddCoroEarlyPass(gallivm->cgpassmgr);
|
||||
LLVMAddCoroSplitPass(gallivm->cgpassmgr);
|
||||
LLVMAddCoroElidePass(gallivm->cgpassmgr);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue