Revert "ac,radeonsi: fix compilations issues with LLVM 11"
authorMichel Dänzer <mdaenzer@redhat.com>
Mon, 18 May 2020 11:53:30 +0000 (13:53 +0200)
committerMarge Bot <eric+marge@anholt.net>
Tue, 19 May 2020 07:19:35 +0000 (07:19 +0000)
This reverts commit 42b1696ef627a5bfee29911a780fa0a4dbf04610.

The corresponding LLVM changes were reverted.

Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5087>

src/amd/llvm/ac_llvm_build.c
src/amd/llvm/ac_llvm_util.h
src/amd/llvm/ac_nir_to_llvm.c
src/amd/vulkan/radv_nir_to_llvm.c
src/gallium/drivers/radeonsi/si_shader_llvm.c

index ebcb91bd4b3374c02d1bb60e19773d15c4822cdd..edb6c9a06c7b1b328df2ff957d1bee2355ef8a4d 100644 (file)
@@ -144,7 +144,7 @@ int
 ac_get_llvm_num_components(LLVMValueRef value)
 {
        LLVMTypeRef type = LLVMTypeOf(value);
 ac_get_llvm_num_components(LLVMValueRef value)
 {
        LLVMTypeRef type = LLVMTypeOf(value);
-       unsigned num_components = LLVMGetTypeKind(type) == LLVMFixedVectorTypeKind
+       unsigned num_components = LLVMGetTypeKind(type) == LLVMVectorTypeKind
                                      ? LLVMGetVectorSize(type)
                                      : 1;
        return num_components;
                                      ? LLVMGetVectorSize(type)
                                      : 1;
        return num_components;
@@ -155,7 +155,7 @@ ac_llvm_extract_elem(struct ac_llvm_context *ac,
                     LLVMValueRef value,
                     int index)
 {
                     LLVMValueRef value,
                     int index)
 {
-       if (LLVMGetTypeKind(LLVMTypeOf(value)) != LLVMFixedVectorTypeKind) {
+       if (LLVMGetTypeKind(LLVMTypeOf(value)) != LLVMVectorTypeKind) {
                assert(index == 0);
                return value;
        }
                assert(index == 0);
                return value;
        }
@@ -167,7 +167,7 @@ ac_llvm_extract_elem(struct ac_llvm_context *ac,
 int
 ac_get_elem_bits(struct ac_llvm_context *ctx, LLVMTypeRef type)
 {
 int
 ac_get_elem_bits(struct ac_llvm_context *ctx, LLVMTypeRef type)
 {
-       if (LLVMGetTypeKind(type) == LLVMFixedVectorTypeKind)
+       if (LLVMGetTypeKind(type) == LLVMVectorTypeKind)
                type = LLVMGetElementType(type);
 
        if (LLVMGetTypeKind(type) == LLVMIntegerTypeKind)
                type = LLVMGetElementType(type);
 
        if (LLVMGetTypeKind(type) == LLVMIntegerTypeKind)
@@ -206,7 +206,7 @@ ac_get_type_size(LLVMTypeRef type)
                if (LLVMGetPointerAddressSpace(type) == AC_ADDR_SPACE_CONST_32BIT)
                        return 4;
                return 8;
                if (LLVMGetPointerAddressSpace(type) == AC_ADDR_SPACE_CONST_32BIT)
                        return 4;
                return 8;
-       case LLVMFixedVectorTypeKind:
+       case LLVMVectorTypeKind:
                return LLVMGetVectorSize(type) *
                       ac_get_type_size(LLVMGetElementType(type));
        case LLVMArrayTypeKind:
                return LLVMGetVectorSize(type) *
                       ac_get_type_size(LLVMGetElementType(type));
        case LLVMArrayTypeKind:
@@ -235,7 +235,7 @@ static LLVMTypeRef to_integer_type_scalar(struct ac_llvm_context *ctx, LLVMTypeR
 LLVMTypeRef
 ac_to_integer_type(struct ac_llvm_context *ctx, LLVMTypeRef t)
 {
 LLVMTypeRef
 ac_to_integer_type(struct ac_llvm_context *ctx, LLVMTypeRef t)
 {
-       if (LLVMGetTypeKind(t) == LLVMFixedVectorTypeKind) {
+       if (LLVMGetTypeKind(t) == LLVMVectorTypeKind) {
                LLVMTypeRef elem_type = LLVMGetElementType(t);
                return LLVMVectorType(to_integer_type_scalar(ctx, elem_type),
                                      LLVMGetVectorSize(t));
                LLVMTypeRef elem_type = LLVMGetElementType(t);
                return LLVMVectorType(to_integer_type_scalar(ctx, elem_type),
                                      LLVMGetVectorSize(t));
@@ -290,7 +290,7 @@ static LLVMTypeRef to_float_type_scalar(struct ac_llvm_context *ctx, LLVMTypeRef
 LLVMTypeRef
 ac_to_float_type(struct ac_llvm_context *ctx, LLVMTypeRef t)
 {
 LLVMTypeRef
 ac_to_float_type(struct ac_llvm_context *ctx, LLVMTypeRef t)
 {
-       if (LLVMGetTypeKind(t) == LLVMFixedVectorTypeKind) {
+       if (LLVMGetTypeKind(t) == LLVMVectorTypeKind) {
                LLVMTypeRef elem_type = LLVMGetElementType(t);
                return LLVMVectorType(to_float_type_scalar(ctx, elem_type),
                                      LLVMGetVectorSize(t));
                LLVMTypeRef elem_type = LLVMGetElementType(t);
                return LLVMVectorType(to_float_type_scalar(ctx, elem_type),
                                      LLVMGetVectorSize(t));
@@ -352,7 +352,7 @@ void ac_build_type_name_for_intr(LLVMTypeRef type, char *buf, unsigned bufsize)
 
        assert(bufsize >= 8);
 
 
        assert(bufsize >= 8);
 
-       if (LLVMGetTypeKind(type) == LLVMFixedVectorTypeKind) {
+       if (LLVMGetTypeKind(type) == LLVMVectorTypeKind) {
                int ret = snprintf(buf, bufsize, "v%u",
                                        LLVMGetVectorSize(type));
                if (ret < 0) {
                int ret = snprintf(buf, bufsize, "v%u",
                                        LLVMGetVectorSize(type));
                if (ret < 0) {
@@ -627,7 +627,7 @@ ac_build_expand(struct ac_llvm_context *ctx,
        LLVMTypeRef elemtype;
        LLVMValueRef chan[dst_channels];
 
        LLVMTypeRef elemtype;
        LLVMValueRef chan[dst_channels];
 
-       if (LLVMGetTypeKind(LLVMTypeOf(value)) == LLVMFixedVectorTypeKind) {
+       if (LLVMGetTypeKind(LLVMTypeOf(value)) == LLVMVectorTypeKind) {
                unsigned vec_size = LLVMGetVectorSize(LLVMTypeOf(value));
 
                if (src_channels == dst_channels && vec_size == dst_channels)
                unsigned vec_size = LLVMGetVectorSize(LLVMTypeOf(value));
 
                if (src_channels == dst_channels && vec_size == dst_channels)
index db745f9a5d406379d990b9ca3079ba2d6a0d1d4c..f9650bdf4f1b024293bd64aa1a3920b1b306f899 100644 (file)
 extern "C" {
 #endif
 
 extern "C" {
 #endif
 
-#if LLVM_VERSION_MAJOR < 11
-#define LLVMFixedVectorTypeKind LLVMVectorTypeKind
-#endif
-
 struct ac_compiler_passes;
 
 enum ac_func_attr {
 struct ac_compiler_passes;
 
 enum ac_func_attr {
index eec0a10efc86ab6e83cb444c2f5afb9ef8274ef1..27fd64ef6c01fd16b40aaccc5a9f1738b23aded9 100644 (file)
@@ -246,7 +246,7 @@ static LLVMValueRef emit_bcsel(struct ac_llvm_context *ctx,
        LLVMTypeRef src1_type = LLVMTypeOf(src1);
        LLVMTypeRef src2_type = LLVMTypeOf(src2);
 
        LLVMTypeRef src1_type = LLVMTypeOf(src1);
        LLVMTypeRef src2_type = LLVMTypeOf(src2);
 
-       assert(LLVMGetTypeKind(LLVMTypeOf(src0)) != LLVMFixedVectorTypeKind);
+       assert(LLVMGetTypeKind(LLVMTypeOf(src0)) != LLVMVectorTypeKind);
 
        if (LLVMGetTypeKind(src1_type) == LLVMPointerTypeKind &&
            LLVMGetTypeKind(src2_type) != LLVMPointerTypeKind) {
 
        if (LLVMGetTypeKind(src1_type) == LLVMPointerTypeKind &&
            LLVMGetTypeKind(src2_type) != LLVMPointerTypeKind) {
@@ -2194,7 +2194,7 @@ static LLVMValueRef load_tess_varyings(struct ac_nir_context *ctx,
        LLVMTypeRef dest_type = get_def_type(ctx, &instr->dest.ssa);
 
        LLVMTypeRef src_component_type;
        LLVMTypeRef dest_type = get_def_type(ctx, &instr->dest.ssa);
 
        LLVMTypeRef src_component_type;
-       if (LLVMGetTypeKind(dest_type) == LLVMFixedVectorTypeKind)
+       if (LLVMGetTypeKind(dest_type) == LLVMVectorTypeKind)
                src_component_type = LLVMGetElementType(dest_type);
        else
                src_component_type = dest_type;
                src_component_type = LLVMGetElementType(dest_type);
        else
                src_component_type = dest_type;
@@ -2354,7 +2354,7 @@ static LLVMValueRef visit_load_var(struct ac_nir_context *ctx,
                bool split_loads = ctx->ac.chip_class == GFX6 && elem_size_bytes < 4;
 
                if (stride != natural_stride || split_loads) {
                bool split_loads = ctx->ac.chip_class == GFX6 && elem_size_bytes < 4;
 
                if (stride != natural_stride || split_loads) {
-                       if (LLVMGetTypeKind(result_type) == LLVMFixedVectorTypeKind)
+                       if (LLVMGetTypeKind(result_type) == LLVMVectorTypeKind)
                                result_type = LLVMGetElementType(result_type);
 
                        LLVMTypeRef ptr_type = LLVMPointerType(result_type,
                                result_type = LLVMGetElementType(result_type);
 
                        LLVMTypeRef ptr_type = LLVMPointerType(result_type,
@@ -2530,7 +2530,7 @@ visit_store_var(struct ac_nir_context *ctx,
                        LLVMBuildStore(ctx->ac.builder, val, address);
                } else {
                        LLVMTypeRef val_type = LLVMTypeOf(val);
                        LLVMBuildStore(ctx->ac.builder, val, address);
                } else {
                        LLVMTypeRef val_type = LLVMTypeOf(val);
-                       if (LLVMGetTypeKind(LLVMTypeOf(val)) == LLVMFixedVectorTypeKind)
+                       if (LLVMGetTypeKind(LLVMTypeOf(val)) == LLVMVectorTypeKind)
                                val_type = LLVMGetElementType(val_type);
 
                        LLVMTypeRef ptr_type = LLVMPointerType(val_type,
                                val_type = LLVMGetElementType(val_type);
 
                        LLVMTypeRef ptr_type = LLVMPointerType(val_type,
@@ -5022,7 +5022,7 @@ static void visit_deref(struct ac_nir_context *ctx,
                LLVMTypeRef type = LLVMPointerType(pointee_type, address_space);
 
                if (LLVMTypeOf(result) != type) {
                LLVMTypeRef type = LLVMPointerType(pointee_type, address_space);
 
                if (LLVMTypeOf(result) != type) {
-                       if (LLVMGetTypeKind(LLVMTypeOf(result)) == LLVMFixedVectorTypeKind) {
+                       if (LLVMGetTypeKind(LLVMTypeOf(result)) == LLVMVectorTypeKind) {
                                result = LLVMBuildBitCast(ctx->ac.builder, result,
                                                          type, "");
                        } else {
                                result = LLVMBuildBitCast(ctx->ac.builder, result,
                                                          type, "");
                        } else {
index 3f214f79b92b825db4a8d2bdf28ee9f4835783ce..51416262df19edb2f7b2f1834cb47b9dcd065376 100644 (file)
@@ -1173,7 +1173,7 @@ radv_fixup_vertex_input_fetches(struct radv_shader_context *ctx,
        LLVMValueRef one = is_float ? ctx->ac.f32_1 : ctx->ac.i32_1;
        LLVMValueRef chan[4];
 
        LLVMValueRef one = is_float ? ctx->ac.f32_1 : ctx->ac.i32_1;
        LLVMValueRef chan[4];
 
-       if (LLVMGetTypeKind(LLVMTypeOf(value)) == LLVMFixedVectorTypeKind) {
+       if (LLVMGetTypeKind(LLVMTypeOf(value)) == LLVMVectorTypeKind) {
                unsigned vec_size = LLVMGetVectorSize(LLVMTypeOf(value));
 
                if (num_channels == 4 && num_channels == vec_size)
                unsigned vec_size = LLVMGetVectorSize(LLVMTypeOf(value));
 
                if (num_channels == 4 && num_channels == vec_size)
index 5c5833bd36c40306e4a015edc22c5f9c43162ff9..538c0ffde82326e704515b17f2af57811ff129db 100644 (file)
@@ -534,7 +534,7 @@ void si_build_wrapper_function(struct si_shader_context *ctx, LLVMValueRef *part
       if (LLVMGetTypeKind(type) == LLVMPointerTypeKind) {
          type = LLVMGetElementType(type);
 
       if (LLVMGetTypeKind(type) == LLVMPointerTypeKind) {
          type = LLVMGetElementType(type);
 
-         if (LLVMGetTypeKind(type) == LLVMFixedVectorTypeKind) {
+         if (LLVMGetTypeKind(type) == LLVMVectorTypeKind) {
             if (LLVMGetVectorSize(type) == 4)
                arg_type = AC_ARG_CONST_DESC_PTR;
             else if (LLVMGetVectorSize(type) == 8)
             if (LLVMGetVectorSize(type) == 4)
                arg_type = AC_ARG_CONST_DESC_PTR;
             else if (LLVMGetVectorSize(type) == 8)