From c8520c2a8fed749e6c280895748effb589bff79d Mon Sep 17 00:00:00 2001 From: Mihai Preda Date: Mon, 2 May 2022 16:08:16 +0300 Subject: [PATCH] gallivm: use LLVM opaque pointers in lp_bld_struct.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Acked-by: Marek Olšák Acked-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/auxiliary/gallivm/lp_bld_struct.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_struct.c b/src/gallium/auxiliary/gallivm/lp_bld_struct.c index 067740b5c88..bd969d4681a 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_struct.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_struct.c @@ -134,15 +134,7 @@ lp_build_pointer_get(LLVMBuilderRef builder, LLVMValueRef ptr, LLVMValueRef index) { - LLVMValueRef element_ptr; - LLVMValueRef res; - assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); - element_ptr = LLVMBuildGEP(builder, ptr, &index, 1, ""); - res = LLVMBuildLoad(builder, element_ptr, ""); -#ifdef DEBUG - lp_build_name(res, "%s[%s]", LLVMGetValueName(ptr), LLVMGetValueName(index)); -#endif - return res; + return lp_build_pointer_get_unaligned(builder, ptr, index, 0); } @@ -157,7 +149,8 @@ lp_build_pointer_get_unaligned(LLVMBuilderRef builder, assert(LLVMGetTypeKind(LLVMTypeOf(ptr)) == LLVMPointerTypeKind); element_ptr = LLVMBuildGEP(builder, ptr, &index, 1, ""); res = LLVMBuildLoad(builder, element_ptr, ""); - LLVMSetAlignment(res, alignment); + if (alignment) + LLVMSetAlignment(res, alignment); #ifdef DEBUG lp_build_name(res, "%s[%s]", LLVMGetValueName(ptr), LLVMGetValueName(index)); #endif @@ -172,7 +165,7 @@ lp_build_pointer_set(LLVMBuilderRef builder, LLVMValueRef value) { LLVMValueRef element_ptr; - element_ptr = LLVMBuildGEP(builder, ptr, &index, 1, ""); + element_ptr = LLVMBuildGEP2(builder, LLVMTypeOf(value), ptr, &index, 1, ""); LLVMBuildStore(builder, value, element_ptr); } @@ -186,7 +179,7 @@ lp_build_pointer_set_unaligned(LLVMBuilderRef builder, { LLVMValueRef element_ptr; LLVMValueRef instr; - element_ptr = LLVMBuildGEP(builder, ptr, &index, 1, ""); + element_ptr = LLVMBuildGEP2(builder, LLVMTypeOf(value), ptr, &index, 1, ""); instr = LLVMBuildStore(builder, value, element_ptr); LLVMSetAlignment(instr, alignment); }