From: Junyan He <[email protected]> We define ourself's ArgInfo structure to ease the serialization of the arguement.
Signed-off-by: Junyan He <[email protected]> --- backend/src/backend/context.cpp | 6 +++++- backend/src/backend/program.cpp | 2 +- backend/src/backend/program.hpp | 13 +++++++++++-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/backend/src/backend/context.cpp b/backend/src/backend/context.cpp index b8dfa8c..b230aa8 100644 --- a/backend/src/backend/context.cpp +++ b/backend/src/backend/context.cpp @@ -452,7 +452,11 @@ namespace gbe const auto &arg = fn.getArg(argID); kernel->args[argID].align = arg.align; - kernel->args[argID].info = arg.info; + kernel->args[argID].info.addrSpace = arg.info.addrSpace; + kernel->args[argID].info.typeName = arg.info.typeName; + kernel->args[argID].info.accessQual = arg.info.accessQual; + kernel->args[argID].info.typeQual = arg.info.typeQual; + kernel->args[argID].info.argName = arg.info.argName; switch (arg.type) { case ir::FunctionArgument::VALUE: case ir::FunctionArgument::STRUCTURE: diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp index 0ee76fc..fd9e179 100644 --- a/backend/src/backend/program.cpp +++ b/backend/src/backend/program.cpp @@ -1023,7 +1023,7 @@ namespace gbe { static void *kernelGetArgInfo(gbe_kernel genKernel, uint32_t argID, uint32_t value) { if (genKernel == NULL) return NULL; const gbe::Kernel *kernel = (const gbe::Kernel*) genKernel; - ir::FunctionArgument::InfoFromLLVM* info = kernel->getArgInfo(argID); + KernelArgument::ArgInfo* info = kernel->getArgInfo(argID); switch (value) { case GBE_GET_ARG_INFO_ADDRSPACE: diff --git a/backend/src/backend/program.hpp b/backend/src/backend/program.hpp index cff2463..4836c51 100644 --- a/backend/src/backend/program.hpp +++ b/backend/src/backend/program.hpp @@ -49,7 +49,16 @@ namespace gbe { uint32_t size; //!< Size of the argument uint32_t align; //!< addr alignment of the argument uint8_t bti; //!< binding table index for __global buffer - ir::FunctionArgument::InfoFromLLVM info; + + // Strings for arg info. + struct ArgInfo { + uint32_t addrSpace; + std::string typeName; + std::string accessQual; + std::string typeQual; + std::string argName; + }; + ArgInfo info; }; /*! Stores the offset where to patch where to patch */ @@ -161,7 +170,7 @@ namespace gbe { global_wk_sz1, global_wk_sz2, output_sz); } - ir::FunctionArgument::InfoFromLLVM* getArgInfo(uint32_t id) const { return &args[id].info; } + KernelArgument::ArgInfo* getArgInfo(uint32_t id) const { return &args[id].info; } /*! Set compile work group size */ void setCompileWorkGroupSize(const size_t wg_sz[3]) { -- 1.9.1 _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
