LLVM 19.0.0git
Classes | Namespaces | Typedefs | Functions
SimplePackedSerialization.h File Reference
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/SwapByteOrder.h"
#include <limits>
#include <optional>
#include <string>
#include <tuple>
#include <type_traits>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

class  llvm::orc::shared::SPSOutputBuffer
 Output char buffer with overflow check. More...
 
class  llvm::orc::shared::SPSInputBuffer
 Input char buffer with underflow check. More...
 
class  llvm::orc::shared::SPSArgList<>
 
class  llvm::orc::shared::SPSArgList< SPSTagT, SPSTagTs... >
 
class  llvm::orc::shared::SPSSerializationTraits< SPSTagT, SPSTagT, std::enable_if_t< std::is_same< SPSTagT, bool >::value||std::is_same< SPSTagT, char >::value||std::is_same< SPSTagT, int8_t >::value||std::is_same< SPSTagT, int16_t >::value||std::is_same< SPSTagT, int32_t >::value||std::is_same< SPSTagT, int64_t >::value||std::is_same< SPSTagT, uint8_t >::value||std::is_same< SPSTagT, uint16_t >::value||std::is_same< SPSTagT, uint32_t >::value||std::is_same< SPSTagT, uint64_t >::value > >
 SPS serialization for integral types, bool, and char. More...
 
class  llvm::orc::shared::SPSEmpty
 
class  llvm::orc::shared::SPSTuple< SPSTagTs >
 SPS tag type for tuples. More...
 
class  llvm::orc::shared::SPSOptional< SPSTagT >
 SPS tag type for optionals. More...
 
class  llvm::orc::shared::SPSSerializationTraits< SPSEmpty, SPSEmpty >
 Serialization for SPSEmpty type. More...
 
class  llvm::orc::shared::TrivialSPSSequenceSerialization< SPSElementTagT, ConcreteSequenceT >
 Specialize this to implement 'trivial' sequence serialization for a concrete sequence type. More...
 
class  llvm::orc::shared::TrivialSPSSequenceDeserialization< SPSElementTagT, ConcreteSequenceT >
 Specialize this to implement 'trivial' sequence deserialization for a concrete sequence type. More...
 
class  llvm::orc::shared::TrivialSPSSequenceSerialization< char, std::string >
 Trivial std::string -> SPSSequence<char> serialization. More...
 
class  llvm::orc::shared::TrivialSPSSequenceDeserialization< char, std::string >
 Trivial SPSSequence<char> -> std::string deserialization. More...
 
class  llvm::orc::shared::TrivialSPSSequenceSerialization< SPSElementTagT, std::vector< T > >
 Trivial std::vector<T> -> SPSSequence<SPSElementTagT> serialization. More...
 
class  llvm::orc::shared::TrivialSPSSequenceDeserialization< SPSElementTagT, std::vector< T > >
 Trivial SPSSequence<SPSElementTagT> -> std::vector<T> deserialization. More...
 
class  llvm::orc::shared::TrivialSPSSequenceSerialization< SPSElementTagT, SmallVectorImpl< T > >
 Trivial SmallVectorImpl<T> -> SPSSequence<char> serialization. More...
 
class  llvm::orc::shared::TrivialSPSSequenceDeserialization< SPSElementTagT, SmallVectorImpl< T > >
 Trivial SPSSequence<SPSElementTagT> -> SmallVectorImpl<T> deserialization. More...
 
class  llvm::orc::shared::TrivialSPSSequenceSerialization< SPSElementTagT, SmallVector< T, N > >
 Trivial SmallVectorImpl<T> -> SPSSequence<char> serialization. More...
 
class  llvm::orc::shared::TrivialSPSSequenceDeserialization< SPSElementTagT, SmallVector< T, N > >
 Trivial SPSSequence<SPSElementTagT> -> SmallVectorImpl<T> deserialization. More...
 
class  llvm::orc::shared::TrivialSPSSequenceSerialization< SPSElementTagT, ArrayRef< T > >
 Trivial ArrayRef<T> -> SPSSequence<SPSElementTagT> serialization. More...
 
class  llvm::orc::shared::SPSSerializationTraits< SPSSequence< char >, ArrayRef< char > >
 Specialized SPSSequence<char> -> ArrayRef<char> serialization. More...
 
class  llvm::orc::shared::SPSSerializationTraits< SPSSequence< SPSElementTagT >, SequenceT, std::enable_if_t< TrivialSPSSequenceSerialization< SPSElementTagT, SequenceT >::available > >
 'Trivial' sequence serialization: Sequence is serialized as a uint64_t size followed by a for-earch loop over the elements of the sequence to serialize each of them. More...
 
class  llvm::orc::shared::SPSSerializationTraits< SPSTuple< SPSTagTs... >, std::tuple< Ts... > >
 SPSTuple serialization for std::tuple. More...
 
class  llvm::orc::shared::SPSSerializationTraits< SPSTuple< SPSTagT1, SPSTagT2 >, std::pair< T1, T2 > >
 SPSTuple serialization for std::pair. More...
 
class  llvm::orc::shared::SPSSerializationTraits< SPSOptional< SPSTagT >, std::optional< T > >
 SPSOptional serialization for std::optional. More...
 
class  llvm::orc::shared::SPSSerializationTraits< SPSString, StringRef >
 Serialization for StringRefs. More...
 
class  llvm::orc::shared::SPSSerializationTraits< SPSSequence< SPSTuple< SPSString, SPSValueT > >, StringMap< ValueT > >
 Serialization for StringMap<ValueT>s. More...
 
struct  llvm::orc::shared::detail::SPSSerializableError
 Helper type for serializing Errors. More...
 
struct  llvm::orc::shared::detail::SPSSerializableExpected< T >
 Helper type for serializing Expected<T>s. More...
 
class  llvm::orc::shared::SPSSerializationTraits< SPSError, detail::SPSSerializableError >
 Serialize to a SPSError from a detail::SPSSerializableError. More...
 
class  llvm::orc::shared::SPSSerializationTraits< SPSExpected< SPSTagT >, detail::SPSSerializableExpected< T > >
 Serialize to a SPSExpected<SPSTagT> from a detail::SPSSerializableExpected<T>. More...
 
class  llvm::orc::shared::SPSSerializationTraits< SPSExpected< SPSTagT >, detail::SPSSerializableError >
 Serialize to a SPSExpected<SPSTagT> from a detail::SPSSerializableError. More...
 
class  llvm::orc::shared::SPSSerializationTraits< SPSExpected< SPSTagT >, T >
 Serialize to a SPSExpected<SPSTagT> from a T. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::orc
 
namespace  llvm::orc::shared
 
namespace  llvm::orc::shared::detail
 

Typedefs

using llvm::orc::shared::SPSString = SPSSequence< char >
 SPS tag type for strings, which are equivalent to sequences of chars.
 
template<typename SPSTagT1 , typename SPSTagT2 >
using llvm::orc::shared::SPSMap = SPSSequence< SPSTuple< SPSTagT1, SPSTagT2 > >
 SPS tag type for maps.
 

Functions

SPSSerializableError llvm::orc::shared::detail::toSPSSerializable (Error Err)
 
Error llvm::orc::shared::detail::fromSPSSerializable (SPSSerializableError BSE)
 
template<typename T >
SPSSerializableExpected< Tllvm::orc::shared::detail::toSPSSerializable (Expected< T > E)
 
template<typename T >
Expected< Tllvm::orc::shared::detail::fromSPSSerializable (SPSSerializableExpected< T > BSE)