feat(zebin): Add support for .kernel_arg_metadata section.

This commit adds support for parsing new .kernel_arg_metadata zeInfo's section,
which will be parsed only on demand (it won't get parsed on initial
zeInfo parsing).

Usage of populated structs will be added in the next commit.
Implemented section's parsing, decoding & populating corresponding fields in
kernelDescriptor.

Related-To: NEO-7372
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
This commit is contained in:
Kacper Nowak
2022-10-11 17:06:26 +00:00
committed by Compute-Runtime-Automation
parent 1044a8aeee
commit 22dbae1771
5 changed files with 555 additions and 2 deletions

View File

@@ -121,6 +121,7 @@ constexpr ConstStringRef kernels("kernels");
constexpr ConstStringRef version("version");
constexpr ConstStringRef globalHostAccessTable("global_host_access_table");
constexpr ConstStringRef functions("functions");
constexpr ConstStringRef kernelMiscInfo("kernels_misc_info");
namespace Kernel {
constexpr ConstStringRef attributes("user_attributes");
@@ -365,6 +366,19 @@ constexpr ConstStringRef executionEnv("execution_env");
using namespace Kernel::ExecutionEnv;
} // namespace Function
namespace KernelMiscInfo {
constexpr ConstStringRef name("name");
constexpr ConstStringRef argsInfo("args_info");
namespace ArgsInfo {
constexpr ConstStringRef index("index");
constexpr ConstStringRef name("name");
constexpr ConstStringRef addressQualifier("address_qualifier");
constexpr ConstStringRef accessQualifier("access_qualifier");
constexpr ConstStringRef typeName("type_name");
constexpr ConstStringRef typeQualifiers("type_qualifiers");
} // namespace ArgsInfo
} // namespace KernelMiscInfo
} // namespace Tags
namespace Types {
@@ -772,6 +786,20 @@ namespace ExecutionEnv {
using namespace Kernel::ExecutionEnv;
}
} // namespace Function
namespace Miscellaneous {
using ArgIndexT = uint32_t;
struct KernelArgMiscInfoT {
ArgIndexT index;
std::string kernelName;
std::string argName;
std::string accessQualifier;
std::string addressQualifier;
std::string typeName;
std::string typeQualifiers;
};
} // namespace Miscellaneous
} // namespace Types
} // namespace ZebinKernelMetadata