本文整理汇总了C++中TypedValue::clone方法的典型用法代码示例。如果您正苦于以下问题:C++ TypedValue::clone方法的具体用法?C++ TypedValue::clone怎么用?C++ TypedValue::clone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TypedValue
的用法示例。
在下文中一共展示了TypedValue::clone方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setArgument
void Kernel::setArgument(unsigned int index, TypedValue value)
{
assert(index < m_function->arg_size());
const llvm::Value *argument = getArgument(index);
// Deallocate existing argument
if (m_values.count(argument))
{
delete[] m_values[argument].data;
}
#if LLVM_VERSION >= 40
if (getArgumentTypeName(index).str() == "sampler_t")
{
// Get an llvm::ConstantInt that represents the sampler value
llvm::Type *i32 = llvm::Type::getInt32Ty(m_program->getLLVMContext());
llvm::Constant *samplerValue = llvm::ConstantInt::get(i32, value.getSInt());
// A sampler argument is a pointer to the llvm::ConstantInt value
TypedValue sampler;
sampler.size = sizeof(size_t);
sampler.num = 1;
sampler.data = new unsigned char[sizeof(size_t)];
sampler.setPointer((size_t)samplerValue);
m_values[argument] = sampler;
}
else
#endif
{
m_values[argument] = value.clone();
}
}