Commit 3784f288 authored by Rishipal Singh Bhatia's avatar Rishipal Singh Bhatia

Moving more metadata variables to the new framework

Change-Id: I94c384387f617ac502bcd2b5eef3f0d217f23504
parent d447bc8d
......@@ -92,7 +92,7 @@ bool AddImplicitArgs::runOnModule(Module &M)
(ctx->getModuleMetaData()->compOpt.HasBufferOffsetArg ||
IGC_IS_FLAG_ENABLED(EnableSupportBufferOffset)))
{
ImplicitArgs::addBufferOffsetArgs(*pFunc, m_pMdUtils);
ImplicitArgs::addBufferOffsetArgs(*pFunc, m_pMdUtils, ctx->getModuleMetaData());
}
// Create the new function body and insert it into the module
......
......@@ -384,11 +384,15 @@ void ImplicitArgs::addNumberedArgs(llvm::Function& F, ImplicitArg::ArgMap& argMa
// Add one implicit argument for each pointer argument to global or constant buffer.
// Note that F is the original input function (ie, without implicit arguments).
void ImplicitArgs::addBufferOffsetArgs(llvm::Function& F, IGCMD::MetaDataUtils* pMdUtils)
void ImplicitArgs::addBufferOffsetArgs(llvm::Function& F, IGCMD::MetaDataUtils* pMdUtils, IGC::ModuleMetaData *modMD)
{
ImplicitArg::ArgMap OffsetArgs;
FunctionInfoMetaDataHandle funcInfoMD =
pMdUtils->getFunctionsInfoItem(const_cast<Function*>(&F));
assert(modMD->FuncMD.find(&F) != modMD->FuncMD.end());
FunctionMetaData* funcMD = &modMD->FuncMD.find(&F)->second;
for (auto& Arg : F.args() )
{
Value* AV = &Arg;
......@@ -401,11 +405,16 @@ void ImplicitArgs::addBufferOffsetArgs(llvm::Function& F, IGCMD::MetaDataUtils*
}
int argNo = Arg.getArgNo();
std::string argbaseType = "";
if (funcMD->m_OpenCLArgBaseTypes.size() > (unsigned)argNo)
argbaseType = funcMD->m_OpenCLArgBaseTypes[argNo];
// Do not generate implicit arg for any image arguments
KernelArg::ArgType ImgArgType;
if (KernelArg::isImage(
&Arg, funcInfoMD->getOpenCLArgBaseTypesItem(argNo), ImgArgType) ||
KernelArg::isSampler(&Arg, funcInfoMD->getOpenCLArgBaseTypesItem(argNo)))
&Arg, argbaseType, ImgArgType) ||
KernelArg::isSampler(&Arg, argbaseType))
{
continue;
}
......
......@@ -276,7 +276,7 @@ namespace IGC
/// implicit argument for each explicit pointer argument to global or constant buffer.
/// @param F The function for which to create the implicit argument's metadata
/// @param pMdUtils The Metadata API object
static void addBufferOffsetArgs(llvm::Function& F, IGCMD::MetaDataUtils* pMdUtils);
static void addBufferOffsetArgs(llvm::Function& F, IGCMD::MetaDataUtils* pMdUtils, IGC::ModuleMetaData* modMD);
/// @brief Returns the (implicit) function argument associated with the given implicit argument type
/// @param F The function for which the implict argument should be returned
......
......@@ -449,16 +449,20 @@ bool ProcessBuiltinMetaData::runOnModule(Module& M)
void ProcessBuiltinMetaData::updateBuiltinFunctionMetaData(llvm::Function* pFunc)
{
IGCMD::FunctionInfoMetaDataHandle fHandle = IGCMD::FunctionInfoMetaDataHandle(IGCMD::FunctionInfoMetaData::get());
IGC::ModuleMetaData* modMD = getAnalysis<CodeGenContextWrapper>().getCodeGenContext()->getModuleMetaData();
FunctionMetaData *funcMD = &modMD->FuncMD[pFunc]; //okay to insert if not present
fHandle->setType(IGC::IGCMD::FunctionTypeEnum::OtherFunctionType);
funcMD->functionType = IGC::FunctionTypeMD::UserFunction;
for (auto arg = pFunc->arg_begin(); arg != pFunc->arg_end(); ++arg)
{
std::string typeStr;
llvm::raw_string_ostream x(typeStr);
arg->getType()->print(x);
fHandle->addOpenCLArgNamesItem(arg->getName());
fHandle->addOpenCLArgAccessQualifiersItem("none");
fHandle->addOpenCLArgBaseTypesItem(x.str());
funcMD->m_OpenCLArgNames.push_back(arg->getName());
funcMD->m_OpenCLArgAccessQualifiers.push_back("none");
funcMD->m_OpenCLArgBaseTypes.push_back(x.str());
}
m_pMdUtil->setFunctionsInfoItem(pFunc, fHandle);
}
......@@ -331,17 +331,23 @@ void COpenCLKernel::CreateKernelArgInfo()
{
FunctionInfoMetaDataHandle funcInfoMD = m_pMdUtils->getFunctionsInfoItem(entry);
uint count = funcInfoMD->size_OpenCLArgAccessQualifiers();
uint count = 0;
if (m_Context->getModuleMetaData()->FuncMD.find(entry) != m_Context->getModuleMetaData()->FuncMD.end())
{
FunctionMetaData* funcMD = &m_Context->getModuleMetaData()->FuncMD[entry];
count = funcMD->m_OpenCLArgAccessQualifiers.size();
}
for (uint i = 0; i < count; ++i)
{
iOpenCL::KernelArgumentInfoAnnotation* kernelArgInfo = new iOpenCL::KernelArgumentInfoAnnotation();
FunctionMetaData* funcMD = &m_Context->getModuleMetaData()->FuncMD[entry];
// Format the strings the way the OpenCL runtime expects them
// The access qualifier is expected to have a "__" prefix,
// or an upper-case "NONE" if there is no qualifier
kernelArgInfo->AccessQualifier = funcInfoMD->getOpenCLArgAccessQualifiersItem(i);
kernelArgInfo->AccessQualifier = funcMD->m_OpenCLArgAccessQualifiers[i];
if (kernelArgInfo->AccessQualifier == "none" || kernelArgInfo->AccessQualifier == "")
{
kernelArgInfo->AccessQualifier = "NONE";
......@@ -352,7 +358,7 @@ void COpenCLKernel::CreateKernelArgInfo()
}
// The address space is expected to have a __ prefix
switch (funcInfoMD->getOpenCLArgAddressSpacesItem(i))
switch(funcMD->m_OpenCLArgAddressSpaces[i])
{
case ADDRESS_SPACE_CONSTANT:
kernelArgInfo->AddressQualifier = "__constant";
......@@ -373,13 +379,13 @@ void COpenCLKernel::CreateKernelArgInfo()
// ArgNames is not guaranteed to be present if -cl-kernel-arg-info
// is not passed in.
if (funcInfoMD->isOpenCLArgNamesHasValue())
if(funcMD->m_OpenCLArgNames.size() > i)
{
kernelArgInfo->ArgumentName = funcInfoMD->getOpenCLArgNamesItem(i);
kernelArgInfo->ArgumentName = funcMD->m_OpenCLArgNames[i];
}
// The type name is expected to also have the type size, appended after a ";"
kernelArgInfo->TypeName = funcInfoMD->getOpenCLArgTypesItem(i) + ";";
kernelArgInfo->TypeName = funcMD->m_OpenCLArgTypes[i] + ";";
// Unfortunately, unlike SPIR, legacy OCL uses an ABI that has byval pointers.
// So, if the parameter is a byval pointer, look at the contained type
......@@ -397,7 +403,7 @@ void COpenCLKernel::CreateKernelArgInfo()
}
// If there are no type qualifiers, "NONE" is expected
kernelArgInfo->TypeQualifier = funcInfoMD->getOpenCLArgTypeQualifiersItem(i);
kernelArgInfo->TypeQualifier = funcMD->m_OpenCLArgTypeQualifiers[i];
if (kernelArgInfo->TypeQualifier == "")
{
kernelArgInfo->TypeQualifier = "NONE";
......
......@@ -464,7 +464,7 @@ VISAVariableLocation VISAModule::GetVariableLocation(const llvm::Instruction* pI
unsigned int explicitArgsNum = IGCLLVM::GetFuncArgSize(m_pEntryFunc) - itr->second->size_ImplicitArgInfoList();
if (pArgument->getArgNo() < explicitArgsNum)
{
const std::string typeStr = itr->second->getOpenCLArgBaseTypesItem(pArgument->getArgNo());
const std::string typeStr = modMD->FuncMD[const_cast<Function*>(m_pEntryFunc)].m_OpenCLArgBaseTypes[pArgument->getArgNo()];
KernelArg::ArgType argType = KernelArg::calcArgType(pArgument, typeStr);
FunctionMetaData *funcMD = &modMD->FuncMD[const_cast<Function*>(m_pEntryFunc)];
ResourceAllocMD *resourceAlloc = &funcMD->resourceAlloc;
......
......@@ -1901,12 +1901,6 @@ FunctionInfoMetaData::FunctionInfoMetaData(const llvm::MDNode* pNode, bool hasId
m_LocalOffsets(getLocalOffsetsNode(pNode), true),
m_ResourceAlloc(ResourceAllocMetaData::get(getResourceAllocNode(pNode), true)),
m_OpenCLVectorTypeHint(VectorTypeHintMetaData::get(getOpenCLVectorTypeHintNode(pNode), true)),
m_OpenCLArgAddressSpaces(getOpenCLArgAddressSpacesNode(pNode), true),
m_OpenCLArgAccessQualifiers(getOpenCLArgAccessQualifiersNode(pNode), true),
m_OpenCLArgTypes(getOpenCLArgTypesNode(pNode), true),
m_OpenCLArgBaseTypes(getOpenCLArgBaseTypesNode(pNode), true),
m_OpenCLArgTypeQualifiers(getOpenCLArgTypeQualifiersNode(pNode), true),
m_OpenCLArgNames(getOpenCLArgNamesNode(pNode), true),
m_pNode(pNode)
{}
......@@ -1921,13 +1915,7 @@ FunctionInfoMetaData::FunctionInfoMetaData(): m_Type("function_type"),
m_SubGroupSize(SubGroupSizeMetaDataHandle::ObjectType::get("sub_group_size")),
m_LocalOffsets("local_offsets"),
m_ResourceAlloc(ResourceAllocMetaDataHandle::ObjectType::get("resource_alloc")),
m_OpenCLVectorTypeHint(VectorTypeHintMetaDataHandle::ObjectType::get("opencl_vec_type_hint")),
m_OpenCLArgAddressSpaces("opencl_kernel_arg_addr_space"),
m_OpenCLArgAccessQualifiers("opencl_kernel_arg_access_qual"),
m_OpenCLArgTypes("opencl_kernel_arg_type"),
m_OpenCLArgBaseTypes("opencl_kernel_arg_base_type"),
m_OpenCLArgTypeQualifiers("opencl_kernel_arg_type_qual"),
m_OpenCLArgNames("opencl_kernel_arg_name"),
m_OpenCLVectorTypeHint(VectorTypeHintMetaDataHandle::ObjectType::get("opencl_vec_type_hint")),
m_pNode(NULL)
{}
......@@ -1943,13 +1931,7 @@ FunctionInfoMetaData::FunctionInfoMetaData(const char* name):
m_SubGroupSize(SubGroupSizeMetaDataHandle::ObjectType::get("sub_group_size")),
m_LocalOffsets("local_offsets"),
m_ResourceAlloc(ResourceAllocMetaDataHandle::ObjectType::get("resource_alloc")),
m_OpenCLVectorTypeHint(VectorTypeHintMetaDataHandle::ObjectType::get("opencl_vec_type_hint")),
m_OpenCLArgAddressSpaces("opencl_kernel_arg_addr_space"),
m_OpenCLArgAccessQualifiers("opencl_kernel_arg_access_qual"),
m_OpenCLArgTypes("opencl_kernel_arg_type"),
m_OpenCLArgBaseTypes("opencl_kernel_arg_base_type"),
m_OpenCLArgTypeQualifiers("opencl_kernel_arg_type_qual"),
m_OpenCLArgNames("opencl_kernel_arg_name"),
m_OpenCLVectorTypeHint(VectorTypeHintMetaDataHandle::ObjectType::get("opencl_vec_type_hint")),
m_pNode(NULL)
{}
......@@ -2005,41 +1987,7 @@ bool FunctionInfoMetaData::hasValue() const
{
return true;
}
if (m_OpenCLArgAddressSpaces.hasValue())
{
return true;
}
if (m_OpenCLArgAccessQualifiers.hasValue())
{
return true;
}
if (m_OpenCLArgTypes.hasValue())
{
return true;
}
if (m_OpenCLArgBaseTypes.hasValue())
{
return true;
}
if (m_OpenCLArgTypeQualifiers.hasValue())
{
return true;
}
if (m_OpenCLArgNames.hasValue())
{
return true;
}
return NULL != m_pNode || dirty();
}
......@@ -2083,30 +2031,6 @@ bool FunctionInfoMetaData::dirty() const
{
return true;
}
if( m_OpenCLArgAddressSpaces.dirty() )
{
return true;
}
if( m_OpenCLArgAccessQualifiers.dirty() )
{
return true;
}
if( m_OpenCLArgTypes.dirty() )
{
return true;
}
if( m_OpenCLArgBaseTypes.dirty() )
{
return true;
}
if( m_OpenCLArgTypeQualifiers.dirty() )
{
return true;
}
if( m_OpenCLArgNames.dirty() )
{
return true;
}
return false;
}
......@@ -2123,12 +2047,6 @@ void FunctionInfoMetaData::discardChanges()
m_LocalOffsets.discardChanges();
m_ResourceAlloc.discardChanges();
m_OpenCLVectorTypeHint.discardChanges();
m_OpenCLArgAddressSpaces.discardChanges();
m_OpenCLArgAccessQualifiers.discardChanges();
m_OpenCLArgTypes.discardChanges();
m_OpenCLArgBaseTypes.discardChanges();
m_OpenCLArgTypeQualifiers.discardChanges();
m_OpenCLArgNames.discardChanges();
}
///
......@@ -2183,37 +2101,6 @@ llvm::Metadata* FunctionInfoMetaData::generateNode(llvm::LLVMContext& context) c
{
args.push_back(m_OpenCLVectorTypeHint.generateNode(context));
}
if (isOpenCLArgAddressSpacesHasValue())
{
args.push_back(m_OpenCLArgAddressSpaces.generateNode(context));
}
if (isOpenCLArgAccessQualifiersHasValue())
{
args.push_back( m_OpenCLArgAccessQualifiers.generateNode(context));
}
if (isOpenCLArgTypesHasValue())
{
args.push_back( m_OpenCLArgTypes.generateNode(context));
}
if (isOpenCLArgBaseTypesHasValue())
{
args.push_back( m_OpenCLArgBaseTypes.generateNode(context));
}
if (isOpenCLArgTypeQualifiersHasValue())
{
args.push_back( m_OpenCLArgTypeQualifiers.generateNode(context));
}
if (isOpenCLArgNamesHasValue())
{
args.push_back( m_OpenCLArgNames.generateNode(context));
}
return llvm::MDNode::get(context, args);
}
......@@ -2245,13 +2132,7 @@ void FunctionInfoMetaData::save(llvm::LLVMContext& context, llvm::MDNode* pNode)
m_SubGroupSize.save(context, llvm::cast<llvm::MDNode>(getSubGroupSizeNode(pNode)));
m_LocalOffsets.save(context, llvm::cast<llvm::MDNode>(getLocalOffsetsNode(pNode)));
m_ResourceAlloc.save(context, llvm::cast<llvm::MDNode>(getResourceAllocNode(pNode)));
m_OpenCLVectorTypeHint.save(context, llvm::cast<llvm::MDNode>(getOpenCLVectorTypeHintNode(pNode)));
m_OpenCLArgAddressSpaces.save(context, llvm::cast<llvm::MDNode>(getOpenCLArgAddressSpacesNode(pNode)));
m_OpenCLArgAccessQualifiers.save(context, llvm::cast<llvm::MDNode>(getOpenCLArgAccessQualifiersNode(pNode)));
m_OpenCLArgTypes.save(context, llvm::cast<llvm::MDNode>(getOpenCLArgTypesNode(pNode)));
m_OpenCLArgBaseTypes.save(context, llvm::cast<llvm::MDNode>(getOpenCLArgBaseTypesNode(pNode)));
m_OpenCLArgTypeQualifiers.save(context, llvm::cast<llvm::MDNode>(getOpenCLArgTypeQualifiersNode(pNode)));
m_OpenCLArgNames.save(context, llvm::cast<llvm::MDNode>(getOpenCLArgNamesNode(pNode)));
m_OpenCLVectorTypeHint.save(context, llvm::cast<llvm::MDNode>(getOpenCLVectorTypeHintNode(pNode)));
}
llvm::Metadata* FunctionInfoMetaData::getTypeNode( const llvm::MDNode* pParentNode) const
......@@ -2433,114 +2314,6 @@ llvm::MDNode* FunctionInfoMetaData::getOpenCLVectorTypeHintNode( const llvm::MDN
}
return NULL;
}
llvm::MDNode* FunctionInfoMetaData::getOpenCLArgAddressSpacesNode( const llvm::MDNode* pParentNode) const
{
if( !pParentNode )
{
return NULL;
}
unsigned int offset = _Mybase::getStartIndex();
for(NodeIterator i = NodeIterator(pParentNode, 0+offset), e = NodeIterator(pParentNode); i != e; ++i )
{
if( isNamedNode(i.get(), "opencl_kernel_arg_addr_space") )
{
return llvm::dyn_cast<llvm::MDNode>(i.get());
}
}
return NULL;
}
llvm::MDNode* FunctionInfoMetaData::getOpenCLArgAccessQualifiersNode( const llvm::MDNode* pParentNode) const
{
if( !pParentNode )
{
return NULL;
}
unsigned int offset = _Mybase::getStartIndex();
for(NodeIterator i = NodeIterator(pParentNode, 0+offset), e = NodeIterator(pParentNode); i != e; ++i )
{
if( isNamedNode(i.get(), "opencl_kernel_arg_access_qual") )
{
return llvm::dyn_cast<llvm::MDNode>(i.get());
}
}
return NULL;
}
llvm::MDNode* FunctionInfoMetaData::getOpenCLArgTypesNode( const llvm::MDNode* pParentNode) const
{
if( !pParentNode )
{
return NULL;
}
unsigned int offset = _Mybase::getStartIndex();
for(NodeIterator i = NodeIterator(pParentNode, 0+offset), e = NodeIterator(pParentNode); i != e; ++i )
{
if( isNamedNode(i.get(), "opencl_kernel_arg_type") )
{
return llvm::dyn_cast<llvm::MDNode>(i.get());
}
}
return NULL;
}
llvm::MDNode* FunctionInfoMetaData::getOpenCLArgBaseTypesNode( const llvm::MDNode* pParentNode) const
{
if( !pParentNode )
{
return NULL;
}
unsigned int offset = _Mybase::getStartIndex();
for(NodeIterator i = NodeIterator(pParentNode, 0+offset), e = NodeIterator(pParentNode); i != e; ++i )
{
if( isNamedNode(i.get(), "opencl_kernel_arg_base_type") )
{
return llvm::dyn_cast<llvm::MDNode>(i.get());
}
}
return NULL;
}
llvm::MDNode* FunctionInfoMetaData::getOpenCLArgTypeQualifiersNode( const llvm::MDNode* pParentNode) const
{
if( !pParentNode )
{
return NULL;
}
unsigned int offset = _Mybase::getStartIndex();
for(NodeIterator i = NodeIterator(pParentNode, 0+offset), e = NodeIterator(pParentNode); i != e; ++i )
{
if( isNamedNode(i.get(), "opencl_kernel_arg_type_qual") )
{
return llvm::dyn_cast<llvm::MDNode>(i.get());
}
}
return NULL;
}
llvm::MDNode* FunctionInfoMetaData::getOpenCLArgNamesNode(const llvm::MDNode* pParentNode) const
{
if (!pParentNode)
{
return NULL;
}
unsigned int offset = _Mybase::getStartIndex();
for (NodeIterator i = NodeIterator(pParentNode, 0 + offset), e = NodeIterator(pParentNode); i != e; ++i)
{
if (isNamedNode(i.get(), "opencl_kernel_arg_name"))
{
return llvm::dyn_cast<llvm::MDNode>(i.get());
}
}
return NULL;
}
static bool isNamedNode(const llvm::Metadata* pNode, const char* name)
{
......
......@@ -77,24 +77,6 @@ typedef MetaObjectHandle<PointerProgramBinaryInfosMetaDataList> PointerProgramBi
typedef MetaDataList<int8_t> InlineBufferMetaDataList;
typedef MetaObjectHandle<InlineBufferMetaDataList> InlineBufferMetaDataListHandle;
typedef MetaDataList<int32_t> ArgAddressSpacesMetaDataList;
typedef MetaObjectHandle<ArgAddressSpacesMetaDataList> ArgAddressSpacesMetaDataListHandle;
typedef MetaDataList<std::string> ArgAccessQualifiersMetaDataList;
typedef MetaObjectHandle<ArgAccessQualifiersMetaDataList> ArgAccessQualifiersMetaDataListHandle;
typedef MetaDataList<std::string> ArgTypesMetaDataList;
typedef MetaObjectHandle<ArgTypesMetaDataList> ArgTypesMetaDataListHandle;
typedef MetaDataList<std::string> ArgBaseTypesMetaDataList;
typedef MetaObjectHandle<ArgBaseTypesMetaDataList> ArgBaseTypesMetaDataListHandle;
typedef MetaDataList<std::string> ArgTypeQualifiersMetaDataList;
typedef MetaObjectHandle<ArgTypeQualifiersMetaDataList> ArgTypeQualifiersMetaDataListHandle;
typedef MetaDataList<std::string> ArgNamesMetaDataList;
typedef MetaObjectHandle<ArgNamesMetaDataList> ArgNamesMetaDataListHandle;
///
// Read/Write the InlineSampler structure from/to LLVM metadata
......@@ -1607,13 +1589,8 @@ public:
typedef NamedMetaDataValue<int32_t>::value_type PrivateMemoryPerWIType;
typedef MetaDataList<int32_t> OpenCLArgAddressSpacesList;
typedef NamedMetaDataValue<int32_t>::value_type NeedBindlessHandleType;
typedef MetaDataList<std::string> OpenCLArgAccessQualifiersList;
typedef MetaDataList<std::string> OpenCLArgTypesList;
typedef MetaDataList<std::string> OpenCLArgBaseTypesList;
typedef MetaDataList<std::string> OpenCLArgTypeQualifiersList;
typedef MetaDataList<std::string> OpenCLArgNamesList;
public:
///
......@@ -1885,365 +1862,6 @@ public:
return m_OpenCLVectorTypeHint;
}
/// OpenCLArgAddressSpaces related methods
OpenCLArgAddressSpacesList::iterator begin_OpenCLArgAddressSpaces()
{
return m_OpenCLArgAddressSpaces.begin();
}
OpenCLArgAddressSpacesList::iterator end_OpenCLArgAddressSpaces()
{
return m_OpenCLArgAddressSpaces.end();
}
OpenCLArgAddressSpacesList::const_iterator begin_OpenCLArgAddressSpaces() const
{
return m_OpenCLArgAddressSpaces.begin();
}
OpenCLArgAddressSpacesList::const_iterator end_OpenCLArgAddressSpaces() const
{
return m_OpenCLArgAddressSpaces.end();
}
size_t size_OpenCLArgAddressSpaces() const
{
return m_OpenCLArgAddressSpaces.size();
}
bool empty_OpenCLArgAddressSpaces() const
{
return m_OpenCLArgAddressSpaces.empty();
}
bool isOpenCLArgAddressSpacesHasValue() const
{
return m_OpenCLArgAddressSpaces.hasValue();
}
OpenCLArgAddressSpacesList::item_type getOpenCLArgAddressSpacesItem( size_t index ) const
{
return m_OpenCLArgAddressSpaces.getItem(index);
}
void clearOpenCLArgAddressSpaces()
{
m_OpenCLArgAddressSpaces.clear();
}
void setOpenCLArgAddressSpacesItem( size_t index, const OpenCLArgAddressSpacesList::item_type& item )
{
return m_OpenCLArgAddressSpaces.setItem(index, item);
}
void addOpenCLArgAddressSpacesItem(const OpenCLArgAddressSpacesList::item_type& val)
{
m_OpenCLArgAddressSpaces.push_back(val);
}
OpenCLArgAddressSpacesList::iterator eraseOpenCLArgAddressSpacesItem(OpenCLArgAddressSpacesList::iterator i)
{
return m_OpenCLArgAddressSpaces.erase(i);
}
/// OpenCLArgAccessQualifiers related methods
OpenCLArgAccessQualifiersList::iterator begin_OpenCLArgAccessQualifiers()
{
return m_OpenCLArgAccessQualifiers.begin();
}
OpenCLArgAccessQualifiersList::iterator end_OpenCLArgAccessQualifiers()
{
return m_OpenCLArgAccessQualifiers.end();
}
OpenCLArgAccessQualifiersList::const_iterator begin_OpenCLArgAccessQualifiers() const
{
return m_OpenCLArgAccessQualifiers.begin();
}
OpenCLArgAccessQualifiersList::const_iterator end_OpenCLArgAccessQualifiers() const
{
return m_OpenCLArgAccessQualifiers.end();
}
size_t size_OpenCLArgAccessQualifiers() const
{
return m_OpenCLArgAccessQualifiers.size();
}
bool empty_OpenCLArgAccessQualifiers() const
{
return m_OpenCLArgAccessQualifiers.empty();
}
bool isOpenCLArgAccessQualifiersHasValue() const
{
return m_OpenCLArgAccessQualifiers.hasValue();
}
OpenCLArgAccessQualifiersList::item_type getOpenCLArgAccessQualifiersItem( size_t index ) const
{
return m_OpenCLArgAccessQualifiers.getItem(index);
}
void clearOpenCLArgAccessQualifiers()
{
m_OpenCLArgAccessQualifiers.clear();
}
void setOpenCLArgAccessQualifiersItem( size_t index, const OpenCLArgAccessQualifiersList::item_type& item )
{
return m_OpenCLArgAccessQualifiers.setItem(index, item);
}
void addOpenCLArgAccessQualifiersItem(const OpenCLArgAccessQualifiersList::item_type& val)
{
m_OpenCLArgAccessQualifiers.push_back(val);
}
OpenCLArgAccessQualifiersList::iterator eraseOpenCLArgAccessQualifiersItem(OpenCLArgAccessQualifiersList::iterator i)
{
return m_OpenCLArgAccessQualifiers.erase(i);
}
/// OpenCLArgTypes related methods
OpenCLArgTypesList::iterator begin_OpenCLArgTypes()
{
return m_OpenCLArgTypes.begin();
}
OpenCLArgTypesList::iterator end_OpenCLArgTypes()
{
return m_OpenCLArgTypes.end();
}
OpenCLArgTypesList::const_iterator begin_OpenCLArgTypes() const
{
return m_OpenCLArgTypes.begin();
}
OpenCLArgTypesList::const_iterator end_OpenCLArgTypes() const
{
return m_OpenCLArgTypes.end();
}
size_t size_OpenCLArgTypes() const
{
return m_OpenCLArgTypes.size();
}
bool empty_OpenCLArgTypes() const
{
return m_OpenCLArgTypes.empty();
}
bool isOpenCLArgTypesHasValue() const
{
return m_OpenCLArgTypes.hasValue();
}
OpenCLArgTypesList::item_type getOpenCLArgTypesItem( size_t index ) const
{
return m_OpenCLArgTypes.getItem(index);
}
void clearOpenCLArgTypes()
{
m_OpenCLArgTypes.clear();
}
void setOpenCLArgTypesItem( size_t index, const OpenCLArgTypesList::item_type& item )
{
return m_OpenCLArgTypes.setItem(index, item);
}
void addOpenCLArgTypesItem(const OpenCLArgTypesList::item_type& val)
{
m_OpenCLArgTypes.push_back(val);
}
OpenCLArgTypesList::iterator eraseOpenCLArgTypesItem(OpenCLArgTypesList::iterator i)
{
return m_OpenCLArgTypes.erase(i);
}
/// OpenCLArgBaseTypes related methods
OpenCLArgBaseTypesList::iterator begin_OpenCLArgBaseTypes()
{
return m_OpenCLArgBaseTypes.begin();
}
OpenCLArgBaseTypesList::iterator end_OpenCLArgBaseTypes()
{
return m_OpenCLArgBaseTypes.end();
}
OpenCLArgBaseTypesList::const_iterator begin_OpenCLArgBaseTypes() const
{
return m_OpenCLArgBaseTypes.begin();
}
OpenCLArgBaseTypesList::const_iterator end_OpenCLArgBaseTypes() const
{
return m_OpenCLArgBaseTypes.end();
}
size_t size_OpenCLArgBaseTypes() const
{
return m_OpenCLArgBaseTypes.size();
}
bool empty_OpenCLArgBaseTypes() const
{
return m_OpenCLArgBaseTypes.empty();
}
bool isOpenCLArgBaseTypesHasValue() const
{
return m_OpenCLArgBaseTypes.hasValue();
}
OpenCLArgBaseTypesList::item_type getOpenCLArgBaseTypesItem( size_t index ) const
{