LLVM 22.0.0git
|
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Support/AlignOf.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/SMLoc.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/YAMLParser.h"
#include "llvm/Support/raw_ostream.h"
#include <array>
#include <cassert>
#include <map>
#include <memory>
#include <new>
#include <optional>
#include <string>
#include <system_error>
#include <type_traits>
#include <vector>
Go to the source code of this file.
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
namespace | llvm::yaml |
namespace | llvm::yaml::detail |
Macros | |
#define | LLVM_YAML_STRONG_TYPEDEF(_base, _type) |
YAML I/O does conversion based on types. But often native data types are just a typedef of built in intergral types (e.g. int). But the C++ type matching system sees through the typedef and all the typedefed types look like a built in type. This will cause the generic YAML I/O conversion to be used. To provide better control over the YAML conversion, you can use this macro instead of typedef. It will create a class with one field and automatic conversion operators to and from the base type. Based on BOOST_STRONG_TYPEDEF. | |
#define | LLVM_YAML_IS_SEQUENCE_VECTOR_IMPL(TYPE, FLOW) |
#define | LLVM_YAML_IS_SEQUENCE_VECTOR(type) |
Utility for declaring that a std::vector of a particular type should be considered a YAML sequence. | |
#define | LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(type) |
Utility for declaring that a std::vector of a particular type should be considered a YAML flow sequence. | |
#define | LLVM_YAML_DECLARE_MAPPING_TRAITS(Type) |
#define | LLVM_YAML_DECLARE_MAPPING_TRAITS_PRIVATE(Type) |
#define | LLVM_YAML_DECLARE_ENUM_TRAITS(Type) |
#define | LLVM_YAML_DECLARE_BITSET_TRAITS(Type) |
#define | LLVM_YAML_DECLARE_SCALAR_TRAITS(Type, MustQuote) |
#define | LLVM_YAML_IS_DOCUMENT_LIST_VECTOR(_type) |
Utility for declaring that a std::vector of a particular type should be considered a YAML document list. | |
#define | LLVM_YAML_IS_STRING_MAP(_type) |
Utility for declaring that std::map<std::string, _type> should be considered a YAML map. |
Typedefs | |
template<typename T> | |
using | llvm::yaml::check_resize_t = decltype(std::declval<T>().resize(0)) |
Enumerations | |
enum class | llvm::yaml::NodeKind : uint8_t { llvm::yaml::Scalar , llvm::yaml::Map , llvm::yaml::Sequence } |
enum class | llvm::yaml::QuotingType { llvm::yaml::None , llvm::yaml::Single , llvm::yaml::Double } |
Describe which type of quotes should be used when quoting is necessary. More... |
Functions | |
bool | llvm::yaml::isNumeric (StringRef S) |
bool | llvm::yaml::isNull (StringRef S) |
bool | llvm::yaml::isBool (StringRef S) |
QuotingType | llvm::yaml::needsQuotes (StringRef S, bool ForcePreserveAsString=true) |
template<typename T, typename Context> | |
void | llvm::yaml::detail::doMapping (IO &io, T &Val, Context &Ctx) |
template<typename T> | |
void | llvm::yaml::detail::doMapping (IO &io, T &Val, EmptyContext &Ctx) |
template<typename T> | |
std::enable_if_t< has_ScalarEnumerationTraits< T >::value, void > | llvm::yaml::yamlize (IO &io, T &Val, bool, EmptyContext &Ctx) |
template<typename T> | |
std::enable_if_t< has_ScalarBitSetTraits< T >::value, void > | llvm::yaml::yamlize (IO &io, T &Val, bool, EmptyContext &Ctx) |
template<typename T> | |
std::enable_if_t< has_ScalarTraits< T >::value, void > | llvm::yaml::yamlize (IO &io, T &Val, bool, EmptyContext &Ctx) |
template<typename T> | |
std::enable_if_t< has_BlockScalarTraits< T >::value, void > | llvm::yaml::yamlize (IO &YamlIO, T &Val, bool, EmptyContext &Ctx) |
template<typename T> | |
std::enable_if_t< has_TaggedScalarTraits< T >::value, void > | llvm::yaml::yamlize (IO &io, T &Val, bool, EmptyContext &Ctx) |
template<typename T, typename Context> | |
std::string | llvm::yaml::detail::doValidate (IO &io, T &Val, Context &Ctx) |
template<typename T> | |
std::string | llvm::yaml::detail::doValidate (IO &io, T &Val, EmptyContext &) |
template<typename T, typename Context> | |
std::enable_if_t< validatedMappingTraits< T, Context >::value, void > | llvm::yaml::yamlize (IO &io, T &Val, bool, Context &Ctx) |
template<typename T, typename Context> | |
bool | llvm::yaml::yamlizeMappingEnumInput (IO &io, T &Val) |
template<typename T, typename Context> | |
std::enable_if_t< unvalidatedMappingTraits< T, Context >::value, void > | llvm::yaml::yamlize (IO &io, T &Val, bool, Context &Ctx) |
template<typename T> | |
std::enable_if_t< has_CustomMappingTraits< T >::value, void > | llvm::yaml::yamlize (IO &io, T &Val, bool, EmptyContext &Ctx) |
template<typename T> | |
std::enable_if_t< has_PolymorphicTraits< T >::value, void > | llvm::yaml::yamlize (IO &io, T &Val, bool, EmptyContext &Ctx) |
template<typename T> | |
std::enable_if_t< missingTraits< T, EmptyContext >::value, void > | llvm::yaml::yamlize (IO &io, T &Val, bool, EmptyContext &Ctx) |
template<typename T, typename Context> | |
std::enable_if_t< has_SequenceTraits< T >::value, void > | llvm::yaml::yamlize (IO &io, T &Seq, bool, Context &Ctx) |
template<typename T> | |
std::enable_if_t< has_DocumentListTraits< T >::value, Input & > | llvm::yaml::operator>> (Input &yin, T &docList) |
template<typename T> | |
std::enable_if_t< has_MappingTraits< T, EmptyContext >::value, Input & > | llvm::yaml::operator>> (Input &yin, T &docMap) |
template<typename T> | |
std::enable_if_t< has_SequenceTraits< T >::value, Input & > | llvm::yaml::operator>> (Input &yin, T &docSeq) |
template<typename T> | |
std::enable_if_t< has_BlockScalarTraits< T >::value, Input & > | llvm::yaml::operator>> (Input &In, T &Val) |
template<typename T> | |
std::enable_if_t< has_CustomMappingTraits< T >::value, Input & > | llvm::yaml::operator>> (Input &In, T &Val) |
template<typename T> | |
std::enable_if_t< has_PolymorphicTraits< T >::value, Input & > | llvm::yaml::operator>> (Input &In, T &Val) |
template<typename T> | |
std::enable_if_t< missingTraits< T, EmptyContext >::value, Input & > | llvm::yaml::operator>> (Input &yin, T &docSeq) |
template<typename T> | |
std::enable_if_t< has_DocumentListTraits< T >::value, Output & > | llvm::yaml::operator<< (Output &yout, T &docList) |
template<typename T> | |
std::enable_if_t< has_MappingTraits< T, EmptyContext >::value, Output & > | llvm::yaml::operator<< (Output &yout, T &map) |
template<typename T> | |
std::enable_if_t< has_SequenceTraits< T >::value, Output & > | llvm::yaml::operator<< (Output &yout, T &seq) |
template<typename T> | |
std::enable_if_t< has_BlockScalarTraits< T >::value, Output & > | llvm::yaml::operator<< (Output &Out, T &Val) |
template<typename T> | |
std::enable_if_t< has_CustomMappingTraits< T >::value, Output & > | llvm::yaml::operator<< (Output &Out, T &Val) |
template<typename T> | |
std::enable_if_t< has_PolymorphicTraits< T >::value, Output & > | llvm::yaml::operator<< (Output &Out, T &Val) |
template<typename T> | |
std::enable_if_t< missingTraits< T, EmptyContext >::value, Output & > | llvm::yaml::operator<< (Output &yout, T &seq) |
#define LLVM_YAML_DECLARE_BITSET_TRAITS | ( | Type | ) |
Definition at line 1987 of file YAMLTraits.h.
#define LLVM_YAML_DECLARE_ENUM_TRAITS | ( | Type | ) |
Definition at line 1978 of file YAMLTraits.h.
#define LLVM_YAML_DECLARE_MAPPING_TRAITS | ( | Type | ) |
Definition at line 1960 of file YAMLTraits.h.
#define LLVM_YAML_DECLARE_MAPPING_TRAITS_PRIVATE | ( | Type | ) |
Definition at line 1969 of file YAMLTraits.h.
#define LLVM_YAML_DECLARE_SCALAR_TRAITS | ( | Type, | |
MustQuote ) |
Definition at line 1996 of file YAMLTraits.h.
#define LLVM_YAML_IS_DOCUMENT_LIST_VECTOR | ( | _type | ) |
Utility for declaring that a std::vector of a particular type should be considered a YAML document list.
Definition at line 2009 of file YAMLTraits.h.
#define LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR | ( | type | ) |
Utility for declaring that a std::vector of a particular type should be considered a YAML flow sequence.
Definition at line 1957 of file YAMLTraits.h.
#define LLVM_YAML_IS_SEQUENCE_VECTOR | ( | type | ) |
Utility for declaring that a std::vector of a particular type should be considered a YAML sequence.
Definition at line 1952 of file YAMLTraits.h.
Referenced by LLVM_YAML_IS_SEQUENCE_VECTOR().
#define LLVM_YAML_IS_SEQUENCE_VECTOR_IMPL | ( | TYPE, | |
FLOW ) |
Definition at line 1937 of file YAMLTraits.h.
#define LLVM_YAML_IS_STRING_MAP | ( | _type | ) |
Utility for declaring that std::map<std::string, _type> should be considered a YAML map.
Definition at line 2023 of file YAMLTraits.h.
#define LLVM_YAML_STRONG_TYPEDEF | ( | _base, | |
_type ) |
YAML I/O does conversion based on types. But often native data types are just a typedef of built in intergral types (e.g. int). But the C++ type matching system sees through the typedef and all the typedefed types look like a built in type. This will cause the generic YAML I/O conversion to be used. To provide better control over the YAML conversion, you can use this macro instead of typedef. It will create a class with one field and automatic conversion operators to and from the base type. Based on BOOST_STRONG_TYPEDEF.
Definition at line 1604 of file YAMLTraits.h.