From: Nicolai Hähnle Date: Fri, 19 May 2017 16:47:02 +0000 (+0200) Subject: ac/nir: pass ac_llvm_context to *build_alloca* helpers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1a508cf8d637532a16c428520c8644b7ab5712fa;p=mesa.git ac/nir: pass ac_llvm_context to *build_alloca* helpers Reviewed-by: Marek Olšák --- diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 7839ad84110..5cf4c03a19e 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -4971,16 +4971,16 @@ handle_fs_inputs_pre(struct nir_to_llvm_context *ctx, } static LLVMValueRef -ac_build_alloca(struct nir_to_llvm_context *ctx, +ac_build_alloca(struct ac_llvm_context *ac, LLVMTypeRef type, const char *name) { - LLVMBuilderRef builder = ctx->builder; + 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(ctx->context); + LLVMBuilderRef first_builder = LLVMCreateBuilderInContext(ac->context); LLVMValueRef res; if (first_instr) { @@ -4997,12 +4997,12 @@ ac_build_alloca(struct nir_to_llvm_context *ctx, return res; } -static LLVMValueRef si_build_alloca_undef(struct nir_to_llvm_context *ctx, +static LLVMValueRef si_build_alloca_undef(struct ac_llvm_context *ac, LLVMTypeRef type, const char *name) { - LLVMValueRef ptr = ac_build_alloca(ctx, type, name); - LLVMBuildStore(ctx->builder, LLVMGetUndef(type), ptr); + LLVMValueRef ptr = ac_build_alloca(ac, type, name); + LLVMBuildStore(ac->builder, LLVMGetUndef(type), ptr); return ptr; } @@ -5045,7 +5045,7 @@ handle_shader_output_decl(struct nir_to_llvm_context *ctx, for (unsigned i = 0; i < attrib_count; ++i) { for (unsigned chan = 0; chan < 4; chan++) { ctx->nir->outputs[radeon_llvm_reg_index_soa(idx + i, chan)] = - si_build_alloca_undef(ctx, ctx->f32, ""); + si_build_alloca_undef(&ctx->ac, ctx->f32, ""); } } ctx->output_mask |= mask_attribs; @@ -5131,7 +5131,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->nctx, ctx->ac.f32, "temp"); + si_build_alloca_undef(&ctx->ac, ctx->ac.f32, "temp"); } } } @@ -6149,7 +6149,7 @@ LLVMModuleRef ac_translate_nir_to_llvm(LLVMTargetMachineRef tm, create_function(&ctx); if (nir->stage == MESA_SHADER_GEOMETRY) { - ctx.gs_next_vertex = ac_build_alloca(&ctx, ctx.i32, "gs_next_vertex"); + ctx.gs_next_vertex = ac_build_alloca(&ctx.ac, ctx.i32, "gs_next_vertex"); ctx.gs_max_out_vertices = nir->info.gs.vertices_out; } else if (nir->stage == MESA_SHADER_TESS_EVAL) {