LLVM
8.0.1
|
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/None.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/STLExtras.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.
Namespaces | |
llvm | |
This class represents lattice values for constants. | |
llvm::mdconst | |
Transitional API for extracting constants from Metadata. | |
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< detail::IsValidPointer< X, Y >::value, bool >::type | llvm::mdconst::hasa (Y &&MD) |
Check whether Metadata has a Value. More... | |
template<class X , class Y > | |
std::enable_if< detail::IsValidReference< X, Y & >::value, bool >::type | llvm::mdconst::hasa (Y &MD) |
template<class X , class Y > | |
std::enable_if< detail::IsValidPointer< X, Y >::value, X * >::type | llvm::mdconst::extract (Y &&MD) |
Extract a Value from Metadata. More... | |
template<class X , class Y > | |
std::enable_if< detail::IsValidReference< X, Y & >::value, X * >::type | llvm::mdconst::extract (Y &MD) |
template<class X , class Y > | |
std::enable_if< detail::IsValidPointer< X, Y >::value, X * >::type | llvm::mdconst::extract_or_null (Y &&MD) |
Extract a Value from Metadata, allowing null. More... | |
template<class X , class Y > | |
std::enable_if< detail::IsValidPointer< X, Y >::value, X * >::type | llvm::mdconst::dyn_extract (Y &&MD) |
Extract a Value from Metadata, if any. More... | |
template<class X , class Y > | |
std::enable_if< detail::IsValidPointer< X, Y >::value, X * >::type | llvm::mdconst::dyn_extract_or_null (Y &&MD) |
Extract a Value from Metadata, if any, allowing null. More... | |
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 845 of file Metadata.h.
#define HANDLE_MDNODE_LEAF | ( | CLASS | ) | using Temp##CLASS = std::unique_ptr<CLASS, TempMDNodeDeleter>; |
Definition at line 843 of file Metadata.h.
#define HANDLE_MDNODE_LEAF | ( | CLASS | ) |
Definition at line 843 of file Metadata.h.
#define HANDLE_METADATA | ( | CLASS | ) | class CLASS; |
Definition at line 1262 of file Metadata.h.
#define HANDLE_METADATA | ( | CLASS | ) | using CLASS##Array = MDTupleTypedArrayWrapper<CLASS>; |
Definition at line 1262 of file Metadata.h.
#define HANDLE_METADATA_LEAF | ( | CLASS | ) | CLASS##Kind, |
Definition at line 154 of file Metadata.h.
#define HANDLE_METADATA_LEAF | ( | CLASS | ) |
Definition at line 154 of file Metadata.h.