ac/nir: move cast_ptr() to ac_llvm_build.c
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
parent
bf6368297b
commit
895632baef
|
@ -2368,3 +2368,11 @@ LLVMValueRef ac_build_alloca_undef(struct ac_llvm_context *ac,
|
||||||
LLVMBuildStore(ac->builder, LLVMGetUndef(type), ptr);
|
LLVMBuildStore(ac->builder, LLVMGetUndef(type), ptr);
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LLVMValueRef ac_cast_ptr(struct ac_llvm_context *ctx, LLVMValueRef ptr,
|
||||||
|
LLVMTypeRef type)
|
||||||
|
{
|
||||||
|
int addr_space = LLVMGetPointerAddressSpace(LLVMTypeOf(ptr));
|
||||||
|
return LLVMBuildBitCast(ctx->builder, ptr,
|
||||||
|
LLVMPointerType(type, addr_space), "");
|
||||||
|
}
|
||||||
|
|
|
@ -395,6 +395,9 @@ LLVMValueRef ac_build_alloca(struct ac_llvm_context *ac, LLVMTypeRef type,
|
||||||
LLVMValueRef ac_build_alloca_undef(struct ac_llvm_context *ac, LLVMTypeRef type,
|
LLVMValueRef ac_build_alloca_undef(struct ac_llvm_context *ac, LLVMTypeRef type,
|
||||||
const char *name);
|
const char *name);
|
||||||
|
|
||||||
|
LLVMValueRef ac_cast_ptr(struct ac_llvm_context *ctx, LLVMValueRef ptr,
|
||||||
|
LLVMTypeRef type);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2090,14 +2090,6 @@ static void visit_load_const(struct ac_nir_context *ctx,
|
||||||
_mesa_hash_table_insert(ctx->defs, &instr->def, value);
|
_mesa_hash_table_insert(ctx->defs, &instr->def, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
static LLVMValueRef cast_ptr(struct ac_llvm_context *ctx, LLVMValueRef ptr,
|
|
||||||
LLVMTypeRef type)
|
|
||||||
{
|
|
||||||
int addr_space = LLVMGetPointerAddressSpace(LLVMTypeOf(ptr));
|
|
||||||
return LLVMBuildBitCast(ctx->builder, ptr,
|
|
||||||
LLVMPointerType(type, addr_space), "");
|
|
||||||
}
|
|
||||||
|
|
||||||
static LLVMValueRef
|
static LLVMValueRef
|
||||||
get_buffer_size(struct ac_nir_context *ctx, LLVMValueRef descriptor, bool in_elements)
|
get_buffer_size(struct ac_nir_context *ctx, LLVMValueRef descriptor, bool in_elements)
|
||||||
{
|
{
|
||||||
|
@ -2352,7 +2344,7 @@ radv_load_resource(struct ac_shader_abi *abi, LLVMValueRef index,
|
||||||
offset = LLVMBuildAdd(ctx->ac.builder, offset, index, "");
|
offset = LLVMBuildAdd(ctx->ac.builder, offset, index, "");
|
||||||
|
|
||||||
desc_ptr = ac_build_gep0(&ctx->ac, desc_ptr, offset);
|
desc_ptr = ac_build_gep0(&ctx->ac, desc_ptr, offset);
|
||||||
desc_ptr = cast_ptr(&ctx->ac, desc_ptr, ctx->ac.v4i32);
|
desc_ptr = ac_cast_ptr(&ctx->ac, desc_ptr, ctx->ac.v4i32);
|
||||||
LLVMSetMetadata(desc_ptr, ctx->ac.uniform_md_kind, ctx->ac.empty_md);
|
LLVMSetMetadata(desc_ptr, ctx->ac.uniform_md_kind, ctx->ac.empty_md);
|
||||||
|
|
||||||
return desc_ptr;
|
return desc_ptr;
|
||||||
|
@ -2379,7 +2371,7 @@ static LLVMValueRef visit_load_push_constant(struct ac_nir_context *ctx,
|
||||||
get_src(ctx, instr->src[0]), "");
|
get_src(ctx, instr->src[0]), "");
|
||||||
|
|
||||||
ptr = ac_build_gep0(&ctx->ac, ctx->abi->push_constants, addr);
|
ptr = ac_build_gep0(&ctx->ac, ctx->abi->push_constants, addr);
|
||||||
ptr = cast_ptr(&ctx->ac, ptr, get_def_type(ctx, &instr->dest.ssa));
|
ptr = ac_cast_ptr(&ctx->ac, ptr, get_def_type(ctx, &instr->dest.ssa));
|
||||||
|
|
||||||
return LLVMBuildLoad(ctx->ac.builder, ptr, "");
|
return LLVMBuildLoad(ctx->ac.builder, ptr, "");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue