From: Marek Olšák Date: Wed, 6 Jan 2016 20:21:07 +0000 (+0100) Subject: gallium/radeon: add a function for adding llvm function attributes X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d611fce23dce77e674a3fca6e7ed555570efbedb;p=mesa.git gallium/radeon: add a function for adding llvm function attributes This will be used for setting the new InitialPSInputAddr attribute. Reviewed-by: Nicolai Hähnle --- diff --git a/src/gallium/drivers/radeon/radeon_llvm_emit.c b/src/gallium/drivers/radeon/radeon_llvm_emit.c index 3d0987624a6..474154e52ff 100644 --- a/src/gallium/drivers/radeon/radeon_llvm_emit.c +++ b/src/gallium/drivers/radeon/radeon_llvm_emit.c @@ -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() diff --git a/src/gallium/drivers/radeon/radeon_llvm_emit.h b/src/gallium/drivers/radeon/radeon_llvm_emit.h index 45f05a9e0e1..84dbd2584a1 100644 --- a/src/gallium/drivers/radeon/radeon_llvm_emit.h +++ b/src/gallium/drivers/radeon/radeon_llvm_emit.h @@ -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);