|
@@ -296,30 +296,24 @@ void CodeGenFunction::EmitOpenCLKernelMetadata(const FunctionDecl *FD,
|
|
GenOpenCLArgMetadata(FD, Fn, CGM, Context, kernelMDArgs);
|
|
GenOpenCLArgMetadata(FD, Fn, CGM, Context, kernelMDArgs);
|
|
|
|
|
|
if (FD->hasAttr<WorkGroupSizeHintAttr>()) {
|
|
if (FD->hasAttr<WorkGroupSizeHintAttr>()) {
|
|
- llvm::SmallVector <llvm::Value*, 5> attrMDArgs;
|
|
|
|
- attrMDArgs.push_back(llvm::MDString::get(Context, "work_group_size_hint"));
|
|
|
|
WorkGroupSizeHintAttr *attr = FD->getAttr<WorkGroupSizeHintAttr>();
|
|
WorkGroupSizeHintAttr *attr = FD->getAttr<WorkGroupSizeHintAttr>();
|
|
- llvm::Type *iTy = llvm::IntegerType::get(Context, 32);
|
|
|
|
- attrMDArgs.push_back(llvm::ConstantInt::get(iTy,
|
|
|
|
- llvm::APInt(32, (uint64_t)attr->getXDim())));
|
|
|
|
- attrMDArgs.push_back(llvm::ConstantInt::get(iTy,
|
|
|
|
- llvm::APInt(32, (uint64_t)attr->getYDim())));
|
|
|
|
- attrMDArgs.push_back(llvm::ConstantInt::get(iTy,
|
|
|
|
- llvm::APInt(32, (uint64_t)attr->getZDim())));
|
|
|
|
|
|
+ llvm::Value *attrMDArgs[] = {
|
|
|
|
+ llvm::MDString::get(Context, "work_group_size_hint"),
|
|
|
|
+ Builder.getInt32(attr->getXDim()),
|
|
|
|
+ Builder.getInt32(attr->getYDim()),
|
|
|
|
+ Builder.getInt32(attr->getZDim())
|
|
|
|
+ };
|
|
kernelMDArgs.push_back(llvm::MDNode::get(Context, attrMDArgs));
|
|
kernelMDArgs.push_back(llvm::MDNode::get(Context, attrMDArgs));
|
|
}
|
|
}
|
|
|
|
|
|
if (FD->hasAttr<ReqdWorkGroupSizeAttr>()) {
|
|
if (FD->hasAttr<ReqdWorkGroupSizeAttr>()) {
|
|
- llvm::SmallVector <llvm::Value*, 5> attrMDArgs;
|
|
|
|
- attrMDArgs.push_back(llvm::MDString::get(Context, "reqd_work_group_size"));
|
|
|
|
ReqdWorkGroupSizeAttr *attr = FD->getAttr<ReqdWorkGroupSizeAttr>();
|
|
ReqdWorkGroupSizeAttr *attr = FD->getAttr<ReqdWorkGroupSizeAttr>();
|
|
- llvm::Type *iTy = llvm::IntegerType::get(Context, 32);
|
|
|
|
- attrMDArgs.push_back(llvm::ConstantInt::get(iTy,
|
|
|
|
- llvm::APInt(32, (uint64_t)attr->getXDim())));
|
|
|
|
- attrMDArgs.push_back(llvm::ConstantInt::get(iTy,
|
|
|
|
- llvm::APInt(32, (uint64_t)attr->getYDim())));
|
|
|
|
- attrMDArgs.push_back(llvm::ConstantInt::get(iTy,
|
|
|
|
- llvm::APInt(32, (uint64_t)attr->getZDim())));
|
|
|
|
|
|
+ llvm::Value *attrMDArgs[] = {
|
|
|
|
+ llvm::MDString::get(Context, "reqd_work_group_size"),
|
|
|
|
+ Builder.getInt32(attr->getXDim()),
|
|
|
|
+ Builder.getInt32(attr->getYDim()),
|
|
|
|
+ Builder.getInt32(attr->getZDim())
|
|
|
|
+ };
|
|
kernelMDArgs.push_back(llvm::MDNode::get(Context, attrMDArgs));
|
|
kernelMDArgs.push_back(llvm::MDNode::get(Context, attrMDArgs));
|
|
}
|
|
}
|
|
|
|
|