Mesa (master): radeonsi: move LLVMTargetMachineRef creation to a separate function

Marek Olšák mareko at kemper.freedesktop.org
Mon Jul 4 22:56:12 UTC 2016


Module: Mesa
Branch: master
Commit: 6781a2a9942c760776a6b769e8891916bb8c3a82
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6781a2a9942c760776a6b769e8891916bb8c3a82

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Sat Jun 11 18:53:15 2016 +0200

radeonsi: move LLVMTargetMachineRef creation to a separate function

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

---

 src/gallium/drivers/radeonsi/si_pipe.c | 32 ++++++++++++++++++--------------
 1 file changed, 18 insertions(+), 14 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
index 57c3fbd..06b32db 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -123,14 +123,29 @@ static void si_emit_string_marker(struct pipe_context *ctx,
 	dd_parse_apitrace_marker(string, len, &sctx->apitrace_call_number);
 }
 
+static LLVMTargetMachineRef
+si_create_llvm_target_machine(struct si_screen *sscreen)
+{
+	const char *triple = "amdgcn--";
+
+	return LLVMCreateTargetMachine(radeon_llvm_get_r600_target(triple), triple,
+				       r600_get_llvm_processor_name(sscreen->b.family),
+#if HAVE_LLVM >= 0x0308
+				       sscreen->b.debug_flags & DBG_SI_SCHED ?
+					       SI_LLVM_DEFAULT_FEATURES ",+si-scheduler" :
+#endif
+					       SI_LLVM_DEFAULT_FEATURES,
+				       LLVMCodeGenLevelDefault,
+				       LLVMRelocDefault,
+				       LLVMCodeModelDefault);
+}
+
 static struct pipe_context *si_create_context(struct pipe_screen *screen,
                                               void *priv, unsigned flags)
 {
 	struct si_context *sctx = CALLOC_STRUCT(si_context);
 	struct si_screen* sscreen = (struct si_screen *)screen;
 	struct radeon_winsys *ws = sscreen->b.ws;
-	LLVMTargetRef r600_target;
-	const char *triple = "amdgcn--";
 	int shader, i;
 
 	if (!sctx)
@@ -279,18 +294,7 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen,
 	sctx->scratch_waves = MAX2(32 * sscreen->b.info.num_good_compute_units,
 				   max_threads_per_block / 64);
 
-	/* Initialize LLVM TargetMachine */
-	r600_target = radeon_llvm_get_r600_target(triple);
-	sctx->tm = LLVMCreateTargetMachine(r600_target, triple,
-					   r600_get_llvm_processor_name(sscreen->b.family),
-#if HAVE_LLVM >= 0x0308
-					   sscreen->b.debug_flags & DBG_SI_SCHED ?
-						SI_LLVM_DEFAULT_FEATURES ",+si-scheduler" :
-#endif
-						SI_LLVM_DEFAULT_FEATURES,
-					   LLVMCodeGenLevelDefault,
-					   LLVMRelocDefault,
-					   LLVMCodeModelDefault);
+	sctx->tm = si_create_llvm_target_machine(sscreen);
 
 	return &sctx->b.b;
 fail:




More information about the mesa-commit mailing list