mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-26 03:30:22 +01:00
gallivm: guess CPU features also on ARM
getHostCPUFeatures() is also available on ARM, for even longer time than for x86. Use it -- it potentially enables instructions that may speed things up. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Cc: <mesa-stable@lists.freedesktop.org> Closes: https://gitlab.freedesktop.org/mesa/mesa/merge_requests/518 Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
36478b9f77
commit
bc6bfc861f
1 changed files with 6 additions and 7 deletions
|
|
@ -556,11 +556,11 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
|
|||
|
||||
llvm::SmallVector<std::string, 16> MAttrs;
|
||||
|
||||
#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
|
||||
#if HAVE_LLVM >= 0x0400
|
||||
/* llvm-3.7+ implements sys::getHostCPUFeatures for x86,
|
||||
* which allows us to enable/disable code generation based
|
||||
* on the results of cpuid.
|
||||
#if HAVE_LLVM >= 0x0400 && (defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64) || defined(PIPE_ARCH_ARM))
|
||||
/* llvm-3.3+ implements sys::getHostCPUFeatures for Arm
|
||||
* and llvm-3.7+ for x86, which allows us to enable/disable
|
||||
* code generation based on the results of cpuid on these
|
||||
* architectures.
|
||||
*/
|
||||
llvm::StringMap<bool> features;
|
||||
llvm::sys::getHostCPUFeatures(features);
|
||||
|
|
@ -570,7 +570,7 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
|
|||
++f) {
|
||||
MAttrs.push_back(((*f).second ? "+" : "-") + (*f).first().str());
|
||||
}
|
||||
#else
|
||||
#elif defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
|
||||
/*
|
||||
* We need to unset attributes because sometimes LLVM mistakenly assumes
|
||||
* certain features are present given the processor name.
|
||||
|
|
@ -625,7 +625,6 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT,
|
|||
MAttrs.push_back("-avx512vl");
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(PIPE_ARCH_PPC)
|
||||
MAttrs.push_back(util_cpu_caps.has_altivec ? "+altivec" : "-altivec");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue