mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-21 13:00:22 +01:00
amd/common: move ac_build_phi from radeonsi
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit 052b974fed)
[Juan A. Suarez: resolve trivial conflicts]
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Conflicts:
src/amd/common/ac_llvm_build.c
src/amd/common/ac_llvm_build.h
This commit is contained in:
parent
b78c664115
commit
bd522741c4
3 changed files with 22 additions and 17 deletions
|
|
@ -179,6 +179,20 @@ void ac_build_type_name_for_intr(LLVMTypeRef type, char *buf, unsigned bufsize)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function that builds an LLVM IR PHI node and immediately adds
|
||||
* incoming edges.
|
||||
*/
|
||||
LLVMValueRef
|
||||
ac_build_phi(struct ac_llvm_context *ctx, LLVMTypeRef type,
|
||||
unsigned count_incoming, LLVMValueRef *values,
|
||||
LLVMBasicBlockRef *blocks)
|
||||
{
|
||||
LLVMValueRef phi = LLVMBuildPhi(ctx->builder, type, "");
|
||||
LLVMAddIncoming(phi, values, blocks, count_incoming);
|
||||
return phi;
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gather_values_extended(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *values,
|
||||
|
|
|
|||
|
|
@ -78,6 +78,11 @@ ac_build_intrinsic(struct ac_llvm_context *ctx, const char *name,
|
|||
|
||||
void ac_build_type_name_for_intr(LLVMTypeRef type, char *buf, unsigned bufsize);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_phi(struct ac_llvm_context *ctx, LLVMTypeRef type,
|
||||
unsigned count_incoming, LLVMValueRef *values,
|
||||
LLVMBasicBlockRef *blocks);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gather_values_extended(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *values,
|
||||
|
|
|
|||
|
|
@ -174,20 +174,6 @@ unsigned si_shader_io_get_unique_index(unsigned semantic_name, unsigned index)
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function that builds an LLVM IR PHI node and immediately adds
|
||||
* incoming edges.
|
||||
*/
|
||||
static LLVMValueRef
|
||||
build_phi(struct ac_llvm_context *ctx, LLVMTypeRef type,
|
||||
unsigned count_incoming, LLVMValueRef *values,
|
||||
LLVMBasicBlockRef *blocks)
|
||||
{
|
||||
LLVMValueRef phi = LLVMBuildPhi(ctx->builder, type, "");
|
||||
LLVMAddIncoming(phi, values, blocks, count_incoming);
|
||||
return phi;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the value of a shader input parameter and extract a bitfield.
|
||||
*/
|
||||
|
|
@ -2732,15 +2718,15 @@ static void si_llvm_emit_tcs_epilogue(struct lp_build_tgsi_context *bld_base)
|
|||
|
||||
values[0] = rel_patch_id;
|
||||
values[1] = LLVMGetUndef(ctx->i32);
|
||||
rel_patch_id = build_phi(&ctx->ac, ctx->i32, 2, values, blocks);
|
||||
rel_patch_id = ac_build_phi(&ctx->ac, ctx->i32, 2, values, blocks);
|
||||
|
||||
values[0] = tf_lds_offset;
|
||||
values[1] = LLVMGetUndef(ctx->i32);
|
||||
tf_lds_offset = build_phi(&ctx->ac, ctx->i32, 2, values, blocks);
|
||||
tf_lds_offset = ac_build_phi(&ctx->ac, ctx->i32, 2, values, blocks);
|
||||
|
||||
values[0] = invocation_id;
|
||||
values[1] = ctx->i32_1; /* cause the epilog to skip threads */
|
||||
invocation_id = build_phi(&ctx->ac, ctx->i32, 2, values, blocks);
|
||||
invocation_id = ac_build_phi(&ctx->ac, ctx->i32, 2, values, blocks);
|
||||
}
|
||||
|
||||
/* Return epilog parameters from this function. */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue