gallium/radeon: add a function for adding llvm function attributes
authorMarek Olšák <marek.olsak@amd.com>
Wed, 6 Jan 2016 20:21:07 +0000 (21:21 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 9 Feb 2016 20:19:51 +0000 (21:19 +0100)
This will be used for setting the new InitialPSInputAddr attribute.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeon/radeon_llvm_emit.c
src/gallium/drivers/radeon/radeon_llvm_emit.h

index 3d0987624a6e3b8a86eb6fea99afffa4f8d9e71c..474154e52ffac4997234ccc7e67073f5817cd657 100644 (file)
@@ -55,6 +55,14 @@ enum radeon_llvm_shader_type {
        RADEON_LLVM_SHADER_CS = 3,
 };
 
+void radeon_llvm_add_attribute(LLVMValueRef F, const char *name, int value)
+{
+       char str[16];
+
+       snprintf(str, sizeof(str), "%i", value);
+       LLVMAddTargetDependentFunctionAttr(F, name, str);
+}
+
 /**
  * Set the shader type we want to compile
  *
@@ -62,7 +70,6 @@ enum radeon_llvm_shader_type {
  */
 void radeon_llvm_shader_type(LLVMValueRef F, unsigned type)
 {
-       char Str[2];
        enum radeon_llvm_shader_type llvm_type;
 
        switch (type) {
@@ -84,9 +91,7 @@ void radeon_llvm_shader_type(LLVMValueRef F, unsigned type)
                assert(0);
        }
 
-       sprintf(Str, "%1d", llvm_type);
-
-       LLVMAddTargetDependentFunctionAttr(F, "ShaderType", Str);
+       radeon_llvm_add_attribute(F, "ShaderType", llvm_type);
 }
 
 static void init_r600_target()
index 45f05a9e0e1df6cf98f320ed5cc07af7eb742eb7..84dbd2584a15f84ea715767e19b7f841db968dea 100644 (file)
@@ -34,6 +34,7 @@
 struct pipe_debug_callback;
 struct radeon_shader_binary;
 
+void radeon_llvm_add_attribute(LLVMValueRef F, const char *name, int value);
 void radeon_llvm_shader_type(LLVMValueRef F, unsigned type);
 
 LLVMTargetRef radeon_llvm_get_r600_target(const char *triple);