diff options
author | Samuel Pitoiset <[email protected]> | 2018-03-09 16:22:44 +0100 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2018-03-13 14:05:06 +0100 |
commit | bf6368297b5dba11d2d3dfbc4486ac98112f4a6d (patch) | |
tree | 58979e8e4d3983556006de61d8979fee3c1f3407 /src/amd/common/ac_nir_to_llvm.c | |
parent | 370e356ebab4885fc19b2b1d1de2816b6cd4dfc8 (diff) |
ac/nir: move ac_build_alloca() to ac_llvm_build.c
As well as si_build_alloca_undef() and drop the si prefix.
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/amd/common/ac_nir_to_llvm.c')
-rw-r--r-- | src/amd/common/ac_nir_to_llvm.c | 42 |
1 files changed, 3 insertions, 39 deletions
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index b8cfdc3c1a4..9f2219a5467 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -5635,42 +5635,6 @@ handle_fs_inputs(struct radv_shader_context *ctx, ctx->abi.view_index = ctx->inputs[radeon_llvm_reg_index_soa(VARYING_SLOT_LAYER, 0)]; } -static LLVMValueRef -ac_build_alloca(struct ac_llvm_context *ac, - LLVMTypeRef type, - const char *name) -{ - LLVMBuilderRef builder = ac->builder; - LLVMBasicBlockRef current_block = LLVMGetInsertBlock(builder); - LLVMValueRef function = LLVMGetBasicBlockParent(current_block); - LLVMBasicBlockRef first_block = LLVMGetEntryBasicBlock(function); - LLVMValueRef first_instr = LLVMGetFirstInstruction(first_block); - LLVMBuilderRef first_builder = LLVMCreateBuilderInContext(ac->context); - LLVMValueRef res; - - if (first_instr) { - LLVMPositionBuilderBefore(first_builder, first_instr); - } else { - LLVMPositionBuilderAtEnd(first_builder, first_block); - } - - res = LLVMBuildAlloca(first_builder, type, name); - LLVMBuildStore(builder, LLVMConstNull(type), res); - - LLVMDisposeBuilder(first_builder); - - return res; -} - -static LLVMValueRef si_build_alloca_undef(struct ac_llvm_context *ac, - LLVMTypeRef type, - const char *name) -{ - LLVMValueRef ptr = ac_build_alloca(ac, type, name); - LLVMBuildStore(ac->builder, LLVMGetUndef(type), ptr); - return ptr; -} - static void scan_shader_output_decl(struct radv_shader_context *ctx, struct nir_variable *variable, @@ -5744,7 +5708,7 @@ handle_shader_output_decl(struct ac_nir_context *ctx, for (unsigned i = 0; i < attrib_count; ++i) { for (unsigned chan = 0; chan < 4; chan++) { ctx->abi->outputs[radeon_llvm_reg_index_soa(output_loc + i, chan)] = - si_build_alloca_undef(&ctx->ac, ctx->ac.f32, ""); + ac_build_alloca_undef(&ctx->ac, ctx->ac.f32, ""); } } } @@ -5830,7 +5794,7 @@ setup_locals(struct ac_nir_context *ctx, for (i = 0; i < ctx->num_locals; i++) { for (j = 0; j < 4; j++) { ctx->locals[i * 4 + j] = - si_build_alloca_undef(&ctx->ac, ctx->ac.f32, "temp"); + ac_build_alloca_undef(&ctx->ac, ctx->ac.f32, "temp"); } } } @@ -6021,7 +5985,7 @@ handle_vs_outputs_post(struct radv_shader_context *ctx, if(!*tmp_out) { for(unsigned i = 0; i < 4; ++i) ctx->abi.outputs[radeon_llvm_reg_index_soa(VARYING_SLOT_LAYER, i)] = - si_build_alloca_undef(&ctx->ac, ctx->ac.f32, ""); + ac_build_alloca_undef(&ctx->ac, ctx->ac.f32, ""); } LLVMBuildStore(ctx->ac.builder, ac_to_float(&ctx->ac, ctx->abi.view_index), *tmp_out); |