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

Author: Nicolai Hähnle <[email protected]>
Date:   Wed Sep 13 14:36:23 2017 +0200

amd/common: add chip_class to ac_llvm_context

Reviewed-by: Marek Olšák <[email protected]>

---

 src/amd/common/ac_llvm_build.c                      | 5 ++++-
 src/amd/common/ac_llvm_build.h                      | 7 ++++++-
 src/amd/common/ac_nir_to_llvm.c                     | 4 ++--
 src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c | 2 +-
 4 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
index 7193b80be5..4077bd81bb 100644
--- a/src/amd/common/ac_llvm_build.c
+++ b/src/amd/common/ac_llvm_build.c
@@ -46,10 +46,13 @@
  * 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, LLVMContextRef context,
+                    enum chip_class chip_class)
 {
        LLVMValueRef args[1];
 
+       ctx->chip_class = chip_class;
+
        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 14ec03f5c8..b6434893cf 100644
--- a/src/amd/common/ac_llvm_build.h
+++ b/src/amd/common/ac_llvm_build.h
@@ -28,6 +28,8 @@
 #include <stdbool.h>
 #include <llvm-c/TargetMachine.h>
 
+#include "amd_family.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -61,10 +63,13 @@ struct ac_llvm_context {
        unsigned fpmath_md_kind;
        LLVMValueRef fpmath_md_2p5_ulp;
        LLVMValueRef empty_md;
+
+       enum chip_class chip_class;
 };
 
 void
-ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context);
+ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context,
+                    enum chip_class chip_class);
 
 unsigned ac_get_type_size(LLVMTypeRef type);
 
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index ba98cb2bde..870620e787 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -6329,7 +6329,7 @@ LLVMModuleRef 
ac_translate_nir_to_llvm(LLVMTargetMachineRef tm,
        ctx.context = LLVMContextCreate();
        ctx.module = LLVMModuleCreateWithNameInContext("shader", ctx.context);
 
-       ac_llvm_context_init(&ctx.ac, ctx.context);
+       ac_llvm_context_init(&ctx.ac, ctx.context, options->chip_class);
        ctx.ac.module = ctx.module;
 
        memset(shader_info, 0, sizeof(*shader_info));
@@ -6653,7 +6653,7 @@ void ac_create_gs_copy_shader(LLVMTargetMachineRef tm,
        ctx.options = options;
        ctx.shader_info = shader_info;
 
-       ac_llvm_context_init(&ctx.ac, ctx.context);
+       ac_llvm_context_init(&ctx.ac, ctx.context, options->chip_class);
        ctx.ac.module = ctx.module;
 
        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 231f16f049..0ad394d461 100644
--- a/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c
+++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c
@@ -1193,7 +1193,7 @@ void si_llvm_context_init(struct si_shader_context *ctx,
        ctx->gallivm.builder = lp_create_builder(ctx->gallivm.context,
                                                 float_mode);
 
-       ac_llvm_context_init(&ctx->ac, ctx->gallivm.context);
+       ac_llvm_context_init(&ctx->ac, ctx->gallivm.context, 
sscreen->b.chip_class);
        ctx->ac.module = ctx->gallivm.module;
        ctx->ac.builder = ctx->gallivm.builder;
 

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to