summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2017-03-05 23:19:57 +0100
committerMarek Olšák <[email protected]>2017-03-06 14:13:04 +0100
commit9b08f044bef03194759064c3d680143d264f507f (patch)
tree2f0fdb6bb67f514aae967ca9846112ac4a4a7b7d
parent6398a092131ab0c9cb47f2a6f78ae1d8ba0ea65c (diff)
radeonsi: fix LLVM 3.9 - don't use non-matching attributes on declarations
Call site attributes are used since LLVM 4.0. This also reverts commit b19caecbd6f310c1663b0cfe483d113ae3bd5fe2 "radeon/ac: fix intrinsic version check", because this is the correct fix. Reviewed-by: Dave Airlie <[email protected]>
-rw-r--r--src/amd/common/ac_llvm_build.c6
-rw-r--r--src/gallium/drivers/radeonsi/si_shader.c6
2 files changed, 7 insertions, 5 deletions
diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
index acda5e26db7..20c6eb80560 100644
--- a/src/amd/common/ac_llvm_build.c
+++ b/src/amd/common/ac_llvm_build.c
@@ -693,7 +693,7 @@ ac_build_buffer_load(struct ac_llvm_context *ctx,
/* READNONE means writes can't
* affect it, while READONLY means
* that writes can affect it. */
- readonly_memory ?
+ readonly_memory && HAVE_LLVM >= 0x0400 ?
AC_FUNC_ATTR_READNONE :
AC_FUNC_ATTR_READONLY);
} else {
@@ -736,7 +736,7 @@ LLVMValueRef ac_build_buffer_load_format(struct ac_llvm_context *ctx,
LLVMValueRef voffset,
bool readonly_memory)
{
- if (HAVE_LLVM >= 0x0400) {
+ if (HAVE_LLVM >= 0x0309) {
LLVMValueRef args [] = {
LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, ""),
vindex,
@@ -751,7 +751,7 @@ LLVMValueRef ac_build_buffer_load_format(struct ac_llvm_context *ctx,
/* READNONE means writes can't
* affect it, while READONLY means
* that writes can affect it. */
- readonly_memory ?
+ readonly_memory && HAVE_LLVM >= 0x0400 ?
AC_FUNC_ATTR_READNONE :
AC_FUNC_ATTR_READONLY);
}
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index 319c0c8cc87..4e133ecebf6 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -3442,13 +3442,15 @@ static unsigned get_load_intr_attribs(bool readonly_memory)
{
/* READNONE means writes can't affect it, while READONLY means that
* writes can affect it. */
- return readonly_memory ? LP_FUNC_ATTR_READNONE :
+ return readonly_memory && HAVE_LLVM >= 0x0400 ?
+ LP_FUNC_ATTR_READNONE :
LP_FUNC_ATTR_READONLY;
}
static unsigned get_store_intr_attribs(bool writeonly_memory)
{
- return writeonly_memory ? LP_FUNC_ATTR_INACCESSIBLE_MEM_ONLY :
+ return writeonly_memory && HAVE_LLVM >= 0x0400 ?
+ LP_FUNC_ATTR_INACCESSIBLE_MEM_ONLY :
LP_FUNC_ATTR_WRITEONLY;
}