class MetadataVerifier

Declaration

class MetadataVerifier { /* full declaration omitted */ };

Description

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.

Declared at: llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h:45

Member Variables

private bool Strict

Method Overview

  • public MetadataVerifier(bool Strict)
  • public bool verify(msgpack::DocNode & HSAMetadataRoot)
  • private bool verifyArray(msgpack::DocNode & Node, function_ref<bool (msgpack::DocNode &)> verifyNode, Optional<size_t> Size = None)
  • private bool verifyEntry(msgpack::MapDocNode & MapNode, llvm::StringRef Key, bool Required, function_ref<bool (msgpack::DocNode &)> verifyNode)
  • private bool verifyInteger(msgpack::DocNode & Node)
  • private bool verifyIntegerEntry(msgpack::MapDocNode & MapNode, llvm::StringRef Key, bool Required)
  • private bool verifyKernel(msgpack::DocNode & Node)
  • private bool verifyKernelArgs(msgpack::DocNode & Node)
  • private bool verifyScalar(msgpack::DocNode & Node, msgpack::Type SKind, function_ref<bool (msgpack::DocNode &)> verifyValue = {})
  • private bool verifyScalarEntry(msgpack::MapDocNode & MapNode, llvm::StringRef Key, bool Required, msgpack::Type SKind, function_ref<bool (msgpack::DocNode &)> verifyValue = {})

Methods

MetadataVerifier(bool Strict)

Description

Construct a MetadataVerifier, specifying whether it will operate in \p Strict mode.

Declared at: llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h:68

Parameters

bool Strict

bool verify(msgpack::DocNode& HSAMetadataRoot)

Description

Verify given HSA metadata.

Declared at: llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h:73

Parameters

msgpack::DocNode& HSAMetadataRoot

Returns

True when successful, false when metadata is invalid.

bool verifyArray(
    msgpack::DocNode& Node,
    function_ref<bool(msgpack::DocNode&)>
        verifyNode,
    Optional<size_t> Size = None)

Declared at: llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h:51

Parameters

msgpack::DocNode& Node
function_ref<bool(msgpack::DocNode&)> verifyNode
Optional<size_t> Size = None

bool verifyEntry(
    msgpack::MapDocNode& MapNode,
    llvm::StringRef Key,
    bool Required,
    function_ref<bool(msgpack::DocNode&)>
        verifyNode)

Declared at: llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h:54

Parameters

msgpack::MapDocNode& MapNode
llvm::StringRef Key
bool Required
function_ref<bool(msgpack::DocNode&)> verifyNode

bool verifyInteger(msgpack::DocNode& Node)

Declared at: llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h:50

Parameters

msgpack::DocNode& Node

bool verifyIntegerEntry(
    msgpack::MapDocNode& MapNode,
    llvm::StringRef Key,
    bool Required)

Declared at: llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h:60

Parameters

msgpack::MapDocNode& MapNode
llvm::StringRef Key
bool Required

bool verifyKernel(msgpack::DocNode& Node)

Declared at: llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h:63

Parameters

msgpack::DocNode& Node

bool verifyKernelArgs(msgpack::DocNode& Node)

Declared at: llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h:62

Parameters

msgpack::DocNode& Node

bool verifyScalar(
    msgpack::DocNode& Node,
    msgpack::Type SKind,
    function_ref<bool(msgpack::DocNode&)>
        verifyValue = {})

Declared at: llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h:48

Parameters

msgpack::DocNode& Node
msgpack::Type SKind
function_ref<bool(msgpack::DocNode&)> verifyValue = {}

bool verifyScalarEntry(
    msgpack::MapDocNode& MapNode,
    llvm::StringRef Key,
    bool Required,
    msgpack::Type SKind,
    function_ref<bool(msgpack::DocNode&)>
        verifyValue = {})

Declared at: llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h:57

Parameters

msgpack::MapDocNode& MapNode
llvm::StringRef Key
bool Required
msgpack::Type SKind
function_ref<bool(msgpack::DocNode&)> verifyValue = {}