003 File Manager
Current Path:
/usr/src/contrib/llvm-project/llvm/include/llvm/BinaryFormat
usr
/
src
/
contrib
/
llvm-project
/
llvm
/
include
/
llvm
/
BinaryFormat
/
📁
..
📄
AMDGPUMetadataVerifier.h
(2.49 KB)
📄
COFF.h
(23.07 KB)
📄
Dwarf.def
(38.22 KB)
📄
Dwarf.h
(21.29 KB)
📄
DynamicTags.def
(12.92 KB)
📄
ELF.h
(59.45 KB)
📁
ELFRelocs
📄
MachO.def
(5.86 KB)
📄
MachO.h
(49.72 KB)
📄
Magic.h
(3.14 KB)
📄
Minidump.h
(8.86 KB)
📄
MinidumpConstants.def
(6.52 KB)
📄
MsgPack.def
(3.17 KB)
📄
MsgPack.h
(3.34 KB)
📄
MsgPackDocument.h
(14.2 KB)
📄
MsgPackReader.h
(4.34 KB)
📄
MsgPackWriter.h
(4.09 KB)
📄
Wasm.h
(10.55 KB)
📄
WasmRelocs.def
(891 B)
📄
XCOFF.h
(11.84 KB)
Editing: AMDGPUMetadataVerifier.h
//===- AMDGPUMetadataVerifier.h - MsgPack Types -----------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // /// \file /// This is a verifier for AMDGPU HSA metadata, which can verify both /// well-typed metadata and untyped metadata. When verifying in the non-strict /// mode, untyped metadata is coerced into the correct type if possible. // //===----------------------------------------------------------------------===// #ifndef LLVM_BINARYFORMAT_AMDGPUMETADATAVERIFIER_H #define LLVM_BINARYFORMAT_AMDGPUMETADATAVERIFIER_H #include "llvm/BinaryFormat/MsgPackDocument.h" namespace llvm { namespace AMDGPU { namespace HSAMD { namespace V3 { /// Verifier for AMDGPU HSA metadata. /// /// Operates in two modes: /// /// In strict mode, metadata must already be well-typed. /// /// In non-strict mode, metadata is coerced into expected types when possible. class MetadataVerifier { bool Strict; bool verifyScalar(msgpack::DocNode &Node, msgpack::Type SKind, function_ref<bool(msgpack::DocNode &)> verifyValue = {}); bool verifyInteger(msgpack::DocNode &Node); bool verifyArray(msgpack::DocNode &Node, function_ref<bool(msgpack::DocNode &)> verifyNode, Optional<size_t> Size = None); bool verifyEntry(msgpack::MapDocNode &MapNode, StringRef Key, bool Required, function_ref<bool(msgpack::DocNode &)> verifyNode); bool verifyScalarEntry(msgpack::MapDocNode &MapNode, StringRef Key, bool Required, msgpack::Type SKind, function_ref<bool(msgpack::DocNode &)> verifyValue = {}); bool verifyIntegerEntry(msgpack::MapDocNode &MapNode, StringRef Key, bool Required); bool verifyKernelArgs(msgpack::DocNode &Node); bool verifyKernel(msgpack::DocNode &Node); public: /// Construct a MetadataVerifier, specifying whether it will operate in \p /// Strict mode. MetadataVerifier(bool Strict) : Strict(Strict) {} /// Verify given HSA metadata. /// /// \returns True when successful, false when metadata is invalid. bool verify(msgpack::DocNode &HSAMetadataRoot); }; } // end namespace V3 } // end namespace HSAMD } // end namespace AMDGPU } // end namespace llvm #endif // LLVM_BINARYFORMAT_AMDGPUMETADATAVERIFIER_H
Upload File
Create Folder