Table of Contents

Namespace Ubiquity.NET.Llvm.Metadata

This namespace hosts all of the wrappers for the LLVM Metadata. The namespace contains the root of the metadata type system IrMetadata.

[NOTE] The name IrMetadata is used to help deal with a number of naming issues and conflicts with existing types or namespaces. (CA1724 is not your friend on this one. The name Metadata conflicts with namespace System.Runtime.Remoting.Metadata, which apparently is ONLY a legacy desktop framework namespace, but the tooling still complains about a conflict between the namespace name and a type name). To resolve this the type is named as closely as possible without causing the conflict.

Classes

ConstantAsMetadata

Constant Value as metadata

IrMetadata

Root of the LLVM IR Metadata hierarchy

LocalAsMetadata

Contains a local Value as IrMetadata

MDNode

IrMetadata node for LLVM IR Bitcode modules

MDString

Stores a string in IrMetadata

MDTuple

Tuple of IrMetadata nodes

MetadataAsValue

Wraps metadata as a Value

MetadataOperandCollection

Support class to provide read/update semantics to the operands of a container element

ModuleFlag

ModuleHandle Flags Tuple for a module

NamedMDNode

Wraps an LLVM NamedMDNode

OperandBundleNames

Static class to hold constant strings for well known operand bundle tag names

ValueAsMetadata

Used to wrap an Value in the IrMetadata hierarchy

Enums

MetadataKind

Enumeration to define metadata type kind