/**
 * 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");
	}
}
Exemple #2
0
/**
 * 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);
}