Accuracy of some operations was recently improved in the R600 backend,
at the cost of slower code. This is required for compute shaders,
but not for graphics shaders. Add unsafe-fp-math hint to make LLVM
generate faster but possibly less accurate code.
Piglit didn't indicate any regressions.
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
#include "radeon_llvm_emit.h"
#include "radeon_elf_util.h"
#include "util/u_memory.h"
+#include "pipe/p_shader_tokens.h"
#include <llvm-c/Target.h>
#include <llvm-c/TargetMachine.h>
sprintf(Str, "%1d", type);
LLVMAddTargetDependentFunctionAttr(F, "ShaderType", Str);
+
+ if (type != TGSI_PROCESSOR_COMPUTE) {
+ LLVMAddTargetDependentFunctionAttr(F, "unsafe-fp-math", "true");
+ }
}
static void init_r600_target() {