[Mesa-dev] [PATCH v2 29/73] ac/nir: add ac_nir_context::main_function

Nicolai Hähnle nhaehnle at gmail.com
Wed Jul 5 10:48:13 UTC 2017


From: Nicolai Hähnle <nicolai.haehnle at amd.com>

---
 src/amd/common/ac_nir_to_llvm.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 5f7a938..86ba27e 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -58,20 +58,21 @@ struct nir_to_llvm_context;
 
 struct ac_nir_context {
 	struct ac_llvm_context ac;
 	struct ac_shader_abi *abi;
 
 	gl_shader_stage stage;
 
 	struct hash_table *defs;
 	struct hash_table *phis;
 
+	LLVMValueRef main_function;
 	LLVMBasicBlockRef continue_block;
 	LLVMBasicBlockRef break_block;
 
 	LLVMValueRef outputs[RADEON_LLVM_MAX_OUTPUTS * 4];
 
 	int num_locals;
 	LLVMValueRef *locals;
 
 	struct nir_to_llvm_context *nctx; /* TODO get rid of this */
 };
@@ -6003,20 +6004,22 @@ void ac_nir_translate(struct ac_llvm_context *ac, struct ac_shader_abi *abi,
 
 	ctx.ac = *ac;
 	ctx.abi = abi;
 
 	ctx.nctx = nctx;
 	if (nctx)
 		nctx->nir = &ctx;
 
 	ctx.stage = nir->stage;
 
+	ctx.main_function = LLVMGetBasicBlockParent(LLVMGetInsertBlock(ctx.ac.builder));
+
 	nir_foreach_variable(variable, &nir->outputs)
 		handle_shader_output_decl(&ctx, nir, variable);
 
 	ctx.defs = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
 	                                   _mesa_key_pointer_equal);
 	ctx.phis = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
 	                                   _mesa_key_pointer_equal);
 
 	func = (struct nir_function *)exec_list_get_head(&nir->functions);
 
-- 
2.9.3



More information about the mesa-dev mailing list