aboutsummaryrefslogtreecommitdiffstats
path: root/src/amd/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/amd/common')
-rw-r--r--src/amd/common/ac_llvm_build.c17
-rw-r--r--src/amd/common/ac_llvm_util.h3
-rw-r--r--src/amd/common/ac_nir_to_llvm.c12
3 files changed, 18 insertions, 14 deletions
diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
index f4d91567fa1..94ec569ad9f 100644
--- a/src/amd/common/ac_llvm_build.c
+++ b/src/amd/common/ac_llvm_build.c
@@ -26,6 +26,7 @@
#include "ac_llvm_build.h"
#include <llvm-c/Core.h>
+#include <llvm/Config/llvm-config.h>
#include "c11/threads.h"
@@ -443,7 +444,7 @@ ac_build_optimization_barrier(struct ac_llvm_context *ctx,
LLVMValueRef
ac_build_shader_clock(struct ac_llvm_context *ctx)
{
- const char *intr = HAVE_LLVM >= 0x0900 && ctx->chip_class >= GFX8 ?
+ const char *intr = LLVM_VERSION_MAJOR >= 9 && ctx->chip_class >= GFX8 ?
"llvm.amdgcn.s.memrealtime" : "llvm.readcyclecounter";
LLVMValueRef tmp = ac_build_intrinsic(ctx, intr, ctx->i64, NULL, 0, 0);
return LLVMBuildBitCast(ctx->builder, tmp, ctx->v2i32, "");
@@ -455,7 +456,7 @@ ac_build_ballot(struct ac_llvm_context *ctx,
{
const char *name;
- if (HAVE_LLVM >= 0x900) {
+ if (LLVM_VERSION_MAJOR >= 9) {
if (ctx->wave_size == 64)
name = "llvm.amdgcn.icmp.i64.i32";
else
@@ -485,7 +486,7 @@ ac_build_ballot(struct ac_llvm_context *ctx,
LLVMValueRef ac_get_i1_sgpr_mask(struct ac_llvm_context *ctx,
LLVMValueRef value)
{
- const char *name = HAVE_LLVM >= 0x900 ? "llvm.amdgcn.icmp.i64.i1" : "llvm.amdgcn.icmp.i1";
+ const char *name = LLVM_VERSION_MAJOR >= 9 ? "llvm.amdgcn.icmp.i64.i1" : "llvm.amdgcn.icmp.i1";
LLVMValueRef args[3] = {
value,
ctx->i1false,
@@ -1511,7 +1512,7 @@ ac_build_tbuffer_load_short(struct ac_llvm_context *ctx,
{
LLVMValueRef res;
- if (HAVE_LLVM >= 0x900) {
+ if (LLVM_VERSION_MAJOR >= 9) {
voffset = LLVMBuildAdd(ctx->builder, voffset, immoffset, "");
/* LLVM 9+ supports i8/i16 with struct/raw intrinsics. */
@@ -1543,7 +1544,7 @@ ac_build_tbuffer_load_byte(struct ac_llvm_context *ctx,
{
LLVMValueRef res;
- if (HAVE_LLVM >= 0x900) {
+ if (LLVM_VERSION_MAJOR >= 9) {
voffset = LLVMBuildAdd(ctx->builder, voffset, immoffset, "");
/* LLVM 9+ supports i8/i16 with struct/raw intrinsics. */
@@ -1685,7 +1686,7 @@ ac_build_opencoded_load_format(struct ac_llvm_context *ctx,
load_log_size += -log_recombine;
}
- assert(load_log_size >= 2 || HAVE_LLVM >= 0x0900);
+ assert(load_log_size >= 2 || LLVM_VERSION_MAJOR >= 9);
LLVMValueRef loads[32]; /* up to 32 bytes */
for (unsigned i = 0; i < load_num_channels; ++i) {
@@ -1955,7 +1956,7 @@ ac_build_tbuffer_store_short(struct ac_llvm_context *ctx,
{
vdata = LLVMBuildBitCast(ctx->builder, vdata, ctx->i16, "");
- if (HAVE_LLVM >= 0x900) {
+ if (LLVM_VERSION_MAJOR >= 9) {
/* LLVM 9+ supports i8/i16 with struct/raw intrinsics. */
ac_build_buffer_store_common(ctx, rsrc, vdata, NULL,
voffset, soffset, 1,
@@ -1982,7 +1983,7 @@ ac_build_tbuffer_store_byte(struct ac_llvm_context *ctx,
{
vdata = LLVMBuildBitCast(ctx->builder, vdata, ctx->i8, "");
- if (HAVE_LLVM >= 0x900) {
+ if (LLVM_VERSION_MAJOR >= 9) {
/* LLVM 9+ supports i8/i16 with struct/raw intrinsics. */
ac_build_buffer_store_common(ctx, rsrc, vdata, NULL,
voffset, soffset, 1,
diff --git a/src/amd/common/ac_llvm_util.h b/src/amd/common/ac_llvm_util.h
index 8209b6dcabc..60c9a17e447 100644
--- a/src/amd/common/ac_llvm_util.h
+++ b/src/amd/common/ac_llvm_util.h
@@ -28,6 +28,7 @@
#include <stdbool.h>
#include <llvm-c/TargetMachine.h>
+#include <llvm/Config/llvm-config.h>
#include "amd_family.h"
@@ -152,7 +153,7 @@ ac_has_vec3_support(enum chip_class chip, bool use_format)
return false;
}
- return HAVE_LLVM >= 0x900;
+ return LLVM_VERSION_MAJOR >= 9;
}
#ifdef __cplusplus
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 13578770d4a..5ed21b1650b 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -21,6 +21,8 @@
* IN THE SOFTWARE.
*/
+#include <llvm/Config/llvm-config.h>
+
#include "ac_nir_to_llvm.h"
#include "ac_llvm_build.h"
#include "ac_llvm_util.h"
@@ -1806,7 +1808,7 @@ static LLVMValueRef visit_atomic_ssbo(struct ac_nir_context *ctx,
params[arg_count++] = ac_llvm_extract_elem(&ctx->ac, get_src(ctx, instr->src[2]), 0);
params[arg_count++] = descriptor;
- if (HAVE_LLVM >= 0x900) {
+ if (LLVM_VERSION_MAJOR >= 9) {
/* XXX: The new raw/struct atomic intrinsics are buggy with
* LLVM 8, see r358579.
*/
@@ -2546,7 +2548,7 @@ static LLVMValueRef get_image_buffer_descriptor(struct ac_nir_context *ctx,
bool write, bool atomic)
{
LLVMValueRef rsrc = get_image_descriptor(ctx, instr, AC_DESC_BUFFER, write);
- if (ctx->ac.chip_class == GFX9 && HAVE_LLVM < 0x900 && atomic) {
+ if (ctx->ac.chip_class == GFX9 && LLVM_VERSION_MAJOR < 9 && atomic) {
LLVMValueRef elem_count = LLVMBuildExtractElement(ctx->ac.builder, rsrc, LLVMConstInt(ctx->ac.i32, 2, 0), "");
LLVMValueRef stride = LLVMBuildExtractElement(ctx->ac.builder, rsrc, LLVMConstInt(ctx->ac.i32, 1, 0), "");
stride = LLVMBuildLShr(ctx->ac.builder, stride, LLVMConstInt(ctx->ac.i32, 16, 0), "");
@@ -2791,7 +2793,7 @@ static LLVMValueRef visit_image_atomic(struct ac_nir_context *ctx,
params[param_count++] = LLVMBuildExtractElement(ctx->ac.builder, get_src(ctx, instr->src[1]),
ctx->ac.i32_0, ""); /* vindex */
params[param_count++] = ctx->ac.i32_0; /* voffset */
- if (HAVE_LLVM >= 0x900) {
+ if (LLVM_VERSION_MAJOR >= 9) {
/* XXX: The new raw/struct atomic intrinsics are buggy
* with LLVM 8, see r358579.
*/
@@ -3052,7 +3054,7 @@ static LLVMValueRef visit_var_atomic(struct ac_nir_context *ctx,
LLVMValueRef result;
LLVMValueRef src = get_src(ctx, instr->src[src_idx]);
- const char *sync_scope = HAVE_LLVM >= 0x0900 ? "workgroup-one-as" : "workgroup";
+ const char *sync_scope = LLVM_VERSION_MAJOR >= 9 ? "workgroup-one-as" : "workgroup";
if (instr->intrinsic == nir_intrinsic_shared_atomic_comp_swap ||
instr->intrinsic == nir_intrinsic_deref_atomic_comp_swap) {
@@ -4723,7 +4725,7 @@ setup_constant_data(struct ac_nir_context *ctx,
* the code sections. See https://reviews.llvm.org/D65813.
*/
unsigned address_space =
- HAVE_LLVM < 0x1000 ? AC_ADDR_SPACE_GLOBAL : AC_ADDR_SPACE_CONST;
+ LLVM_VERSION_MAJOR < 10 ? AC_ADDR_SPACE_GLOBAL : AC_ADDR_SPACE_CONST;
LLVMValueRef global =
LLVMAddGlobalInAddressSpace(ctx->ac.module, type,