/** * Set the shader type we want to compile * * @param type shader type to set */ void radeon_llvm_shader_type(LLVMValueRef F, unsigned type) { char Str[2]; enum radeon_llvm_shader_type llvm_type; switch (type) { case TGSI_PROCESSOR_VERTEX: llvm_type = RADEON_LLVM_SHADER_VS; break; case TGSI_PROCESSOR_GEOMETRY: llvm_type = RADEON_LLVM_SHADER_GS; break; case TGSI_PROCESSOR_FRAGMENT: llvm_type = RADEON_LLVM_SHADER_PS; break; case TGSI_PROCESSOR_COMPUTE: llvm_type = RADEON_LLVM_SHADER_CS; break; default: assert(0); } sprintf(Str, "%1d", llvm_type); LLVMAddTargetDependentFunctionAttr(F, "ShaderType", Str); if (type != TGSI_PROCESSOR_COMPUTE) { LLVMAddTargetDependentFunctionAttr(F, "unsafe-fp-math", "true"); } }
/** * Set the shader type we want to compile * * @param type shader type to set */ void radeon_llvm_shader_type(LLVMValueRef F, unsigned type) { char Str[2]; sprintf(Str, "%1d", type); LLVMAddTargetDependentFunctionAttr(F, "ShaderType", Str); }
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); }
void ac_llvm_add_target_dep_function_attr(LLVMValueRef F, const char *name, unsigned value) { char str[16]; snprintf(str, sizeof(str), "0x%x", value); LLVMAddTargetDependentFunctionAttr(F, name, str); }