From 4695984dbcb6b0cd325dba91927959769c89373d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 4 Jul 2018 01:37:30 -0400 Subject: [PATCH] ac: fold LLVMContext creation into ac_llvm_context_init Reviewed-by: Dave Airlie --- src/amd/common/ac_llvm_build.c | 6 +++--- src/amd/common/ac_llvm_build.h | 2 +- src/amd/vulkan/radv_nir_to_llvm.c | 10 ++++------ src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c | 5 +---- 4 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c index 93ae273f900..a77c29270d1 100644 --- a/src/amd/common/ac_llvm_build.c +++ b/src/amd/common/ac_llvm_build.c @@ -57,15 +57,15 @@ struct ac_llvm_flow { * The caller is responsible for initializing ctx::module and ctx::builder. */ void -ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context, +ac_llvm_context_init(struct ac_llvm_context *ctx, enum chip_class chip_class, enum radeon_family family) { LLVMValueRef args[1]; + ctx->context = LLVMContextCreate(); + ctx->chip_class = chip_class; ctx->family = family; - - ctx->context = context; ctx->module = NULL; ctx->builder = NULL; diff --git a/src/amd/common/ac_llvm_build.h b/src/amd/common/ac_llvm_build.h index 026955a5556..4e7cbcd5fa0 100644 --- a/src/amd/common/ac_llvm_build.h +++ b/src/amd/common/ac_llvm_build.h @@ -97,7 +97,7 @@ struct ac_llvm_context { }; void -ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context, +ac_llvm_context_init(struct ac_llvm_context *ctx, enum chip_class chip_class, enum radeon_family family); void diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c index 45ac0854c17..15c10493022 100644 --- a/src/amd/vulkan/radv_nir_to_llvm.c +++ b/src/amd/vulkan/radv_nir_to_llvm.c @@ -3137,10 +3137,9 @@ LLVMModuleRef ac_translate_nir_to_llvm(struct ac_llvm_compiler *ac_llvm, unsigned i; ctx.options = options; ctx.shader_info = shader_info; - ctx.context = LLVMContextCreate(); - ac_llvm_context_init(&ctx.ac, ctx.context, options->chip_class, - options->family); + ac_llvm_context_init(&ctx.ac, options->chip_class, options->family); + ctx.context = ctx.ac.context; ctx.ac.module = ac_create_module(ac_llvm->tm, ctx.context); enum ac_float_mode float_mode = @@ -3576,12 +3575,11 @@ radv_compile_gs_copy_shader(struct ac_llvm_compiler *ac_llvm, const struct radv_nir_compiler_options *options) { struct radv_shader_context ctx = {0}; - ctx.context = LLVMContextCreate(); ctx.options = options; ctx.shader_info = shader_info; - ac_llvm_context_init(&ctx.ac, ctx.context, options->chip_class, - options->family); + ac_llvm_context_init(&ctx.ac, options->chip_class, options->family); + ctx.context = ctx.ac.context; ctx.ac.module = ac_create_module(ac_llvm->tm, ctx.context); ctx.is_gs_copy_shader = true; diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c b/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c index b8cfd15a67f..b486be25749 100644 --- a/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c +++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c @@ -956,10 +956,7 @@ void si_llvm_context_init(struct si_shader_context *ctx, ctx->screen = sscreen; ctx->compiler = compiler; - ctx->ac.context = LLVMContextCreate(); - ac_llvm_context_init(&ctx->ac, ctx->ac.context, - sscreen->info.chip_class, sscreen->info.family); - + ac_llvm_context_init(&ctx->ac, sscreen->info.chip_class, sscreen->info.family); ctx->ac.module = ac_create_module(compiler->tm, ctx->ac.context); enum ac_float_mode float_mode = -- 2.30.2