LLVM 20.0.0git
|
This file contains the declarations for metadata subclasses. More...
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/ilist_node.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/IR/Constant.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/CBindingWrapping.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <memory>
#include <string>
#include <type_traits>
#include <utility>
#include "llvm/IR/Metadata.def"
Go to the source code of this file.
Classes | |
class | llvm::Metadata |
Root of the metadata hierarchy. More... | |
class | llvm::MetadataAsValue |
Metadata wrapper in the Value hierarchy. More... | |
class | llvm::DebugValueUser |
Base class for tracking ValueAsMetadata/DIArgLists with user lookups and Owner callbacks outside of ValueAsMetadata. More... | |
class | llvm::MetadataTracking |
API for tracking metadata references through RAUW and deletion. More... | |
class | llvm::ReplaceableMetadataImpl |
Shared implementation of use-lists for replaceable metadata. More... | |
class | llvm::ValueAsMetadata |
Value wrapper in the Metadata hierarchy. More... | |
class | llvm::ConstantAsMetadata |
class | llvm::LocalAsMetadata |
struct | llvm::mdconst::detail::HasDereference< T, Result > |
struct | llvm::mdconst::detail::HasDereference< T, Result >::SFINAE< N > |
struct | llvm::mdconst::detail::IsValidPointer< V, M > |
struct | llvm::mdconst::detail::IsValidReference< V, M > |
class | llvm::MDString |
A single uniqued string. More... | |
struct | llvm::AAMDNodes |
A collection of metadata nodes that might be associated with a memory access used by the alias-analysis infrastructure. More... | |
struct | llvm::DenseMapInfo< AAMDNodes > |
class | llvm::MDOperand |
Tracking metadata reference owned by Metadata. More... | |
struct | llvm::simplify_type< MDOperand > |
struct | llvm::simplify_type< const MDOperand > |
class | llvm::ContextAndReplaceableUses |
Pointer to the context, with optional RAUW support. More... | |
struct | llvm::TempMDNodeDeleter |
class | llvm::MDNode |
Metadata node. More... | |
class | llvm::MDTuple |
Tuple of metadata. More... | |
class | llvm::AliasScopeNode |
This is a simple wrapper around an MDNode which provides a higher-level interface by hiding the details of how alias analysis information is encoded in its operands. More... | |
class | llvm::TypedMDOperandIterator< T > |
Typed iterator through MDNode operands. More... | |
class | llvm::MDTupleTypedArrayWrapper< T > |
Typed, array-like tuple of metadata. More... | |
class | llvm::DistinctMDOperandPlaceholder |
Placeholder metadata for operands of distinct MDNodes. More... | |
class | llvm::NamedMDNode |
A tuple of MDNodes. More... | |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
namespace | llvm::mdconst |
Transitional API for extracting constants from Metadata. | |
namespace | llvm::mdconst::detail |
Macros | |
#define | HANDLE_METADATA_LEAF(CLASS) CLASS##Kind, |
#define | HANDLE_METADATA(CLASS) class CLASS; |
#define | HANDLE_METADATA_LEAF(CLASS) |
#define | HANDLE_MDNODE_LEAF(CLASS) using Temp##CLASS = std::unique_ptr<CLASS, TempMDNodeDeleter>; |
#define | HANDLE_MDNODE_BRANCH(CLASS) HANDLE_MDNODE_LEAF(CLASS) |
#define | HANDLE_MDNODE_LEAF(CLASS) |
#define | HANDLE_METADATA(CLASS) using CLASS##Array = MDTupleTypedArrayWrapper<CLASS>; |
Enumerations | |
enum | llvm::LLVMConstants : uint32_t { llvm::DEBUG_METADATA_VERSION = 3 } |
Functions | |
Metadata ** | llvm::unwrap (LLVMMetadataRef *MDs) |
raw_ostream & | llvm::operator<< (raw_ostream &OS, const Metadata &MD) |
template<class T > | |
T & | llvm::mdconst::detail::make () |
template<class X , class Y > | |
std::enable_if_t< detail::IsValidPointer< X, Y >::value, bool > | llvm::mdconst::hasa (Y &&MD) |
Check whether Metadata has a Value. | |
template<class X , class Y > | |
std::enable_if_t< detail::IsValidReference< X, Y & >::value, bool > | llvm::mdconst::hasa (Y &MD) |
template<class X , class Y > | |
std::enable_if_t< detail::IsValidPointer< X, Y >::value, X * > | llvm::mdconst::extract (Y &&MD) |
Extract a Value from Metadata. | |
template<class X , class Y > | |
std::enable_if_t< detail::IsValidReference< X, Y & >::value, X * > | llvm::mdconst::extract (Y &MD) |
template<class X , class Y > | |
std::enable_if_t< detail::IsValidPointer< X, Y >::value, X * > | llvm::mdconst::extract_or_null (Y &&MD) |
Extract a Value from Metadata, allowing null. | |
template<class X , class Y > | |
std::enable_if_t< detail::IsValidPointer< X, Y >::value, X * > | llvm::mdconst::dyn_extract (Y &&MD) |
Extract a Value from Metadata, if any. | |
template<class X , class Y > | |
std::enable_if_t< detail::IsValidPointer< X, Y >::value, X * > | llvm::mdconst::dyn_extract_or_null (Y &&MD) |
Extract a Value from Metadata, if any, allowing null. | |
Variables | |
const uint64_t | llvm::NOMORE_ICP_MAGICNUM = -1 |
Magic number in the value profile metadata showing a target has been promoted for the instruction and shouldn't be promoted again. | |
This file contains the declarations for metadata subclasses.
They represent the different flavors of metadata that live in LLVM.
Definition in file Metadata.h.
#define HANDLE_MDNODE_BRANCH | ( | CLASS | ) | HANDLE_MDNODE_LEAF(CLASS) |
Definition at line 1043 of file Metadata.h.
#define HANDLE_MDNODE_LEAF | ( | CLASS | ) | using Temp##CLASS = std::unique_ptr<CLASS, TempMDNodeDeleter>; |
Definition at line 1041 of file Metadata.h.
#define HANDLE_MDNODE_LEAF | ( | CLASS | ) |
Definition at line 1041 of file Metadata.h.
#define HANDLE_METADATA | ( | CLASS | ) | class CLASS; |
Definition at line 1667 of file Metadata.h.
#define HANDLE_METADATA | ( | CLASS | ) | using CLASS##Array = MDTupleTypedArrayWrapper<CLASS>; |
Definition at line 1667 of file Metadata.h.
#define HANDLE_METADATA_LEAF | ( | CLASS | ) | CLASS##Kind, |
Definition at line 156 of file Metadata.h.
#define HANDLE_METADATA_LEAF | ( | CLASS | ) |
Definition at line 156 of file Metadata.h.