radeonsi: make functions for creating LLVM functions non-static
authorMarek Olšák <marek.olsak@amd.com>
Thu, 16 Aug 2018 01:41:52 +0000 (21:41 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 16 May 2019 17:10:07 +0000 (13:10 -0400)
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Acked-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeonsi/si_shader.c
src/gallium/drivers/radeonsi/si_shader_internal.h

index 6455bb5dcd0252b7a772148aafd40546437c6ea7..e05bbfde62329b240d745bda57e08835a596d0ba 100644 (file)
@@ -51,22 +51,6 @@ struct si_shader_output_values
        ubyte vertex_stream[4];
 };
 
-/**
- * Used to collect types and other info about arguments of the LLVM function
- * before the function is created.
- */
-struct si_function_info {
-       LLVMTypeRef types[100];
-       LLVMValueRef *assign[100];
-       unsigned num_sgpr_params;
-       unsigned num_params;
-};
-
-enum si_arg_regfile {
-       ARG_SGPR,
-       ARG_VGPR
-};
-
 static void si_init_shader_ctx(struct si_shader_context *ctx,
                               struct si_screen *sscreen,
                               struct ac_llvm_compiler *compiler);
@@ -114,13 +98,13 @@ static bool is_merged_shader(struct si_shader_context *ctx)
               ctx->type == PIPE_SHADER_GEOMETRY;
 }
 
-static void si_init_function_info(struct si_function_info *fninfo)
+void si_init_function_info(struct si_function_info *fninfo)
 {
        fninfo->num_params = 0;
        fninfo->num_sgpr_params = 0;
 }
 
-static unsigned add_arg_assign(struct si_function_info *fninfo,
+unsigned add_arg_assign(struct si_function_info *fninfo,
                        enum si_arg_regfile regfile, LLVMTypeRef type,
                        LLVMValueRef *assign)
 {
@@ -4228,11 +4212,11 @@ static void si_llvm_emit_barrier(const struct lp_build_tgsi_action *action,
        ac_build_s_barrier(&ctx->ac);
 }
 
-static void si_create_function(struct si_shader_context *ctx,
-                              const char *name,
-                              LLVMTypeRef *returns, unsigned num_returns,
-                              struct si_function_info *fninfo,
-                              unsigned max_workgroup_size)
+void si_create_function(struct si_shader_context *ctx,
+                       const char *name,
+                       LLVMTypeRef *returns, unsigned num_returns,
+                       struct si_function_info *fninfo,
+                       unsigned max_workgroup_size)
 {
        int i;
 
index 235c46ecf92798c0016be3a473b40dfb5c062794..6e21bc7c26b3c47b2ce8a678ea9045711ce72dca 100644 (file)
@@ -45,6 +45,22 @@ struct ac_shader_binary;
 #define RADEON_LLVM_MAX_SYSTEM_VALUES 11
 #define RADEON_LLVM_MAX_ADDRS 16
 
+enum si_arg_regfile {
+       ARG_SGPR,
+       ARG_VGPR
+};
+
+/**
+ * Used to collect types and other info about arguments of the LLVM function
+ * before the function is created.
+ */
+struct si_function_info {
+       LLVMTypeRef types[100];
+       LLVMValueRef *assign[100];
+       unsigned num_sgpr_params;
+       unsigned num_params;
+};
+
 struct si_shader_context {
        struct lp_build_tgsi_context bld_base;
        struct gallivm_state gallivm;
@@ -218,6 +234,15 @@ si_shader_context_from_abi(struct ac_shader_abi *abi)
        return container_of(abi, ctx, abi);
 }
 
+void si_init_function_info(struct si_function_info *fninfo);
+unsigned add_arg_assign(struct si_function_info *fninfo,
+                       enum si_arg_regfile regfile, LLVMTypeRef type,
+                       LLVMValueRef *assign);
+void si_create_function(struct si_shader_context *ctx,
+                       const char *name,
+                       LLVMTypeRef *returns, unsigned num_returns,
+                       struct si_function_info *fninfo,
+                       unsigned max_workgroup_size);
 unsigned si_llvm_compile(LLVMModuleRef M, struct ac_shader_binary *binary,
                         struct ac_llvm_compiler *compiler,
                         struct pipe_debug_callback *debug,