LLVM 22.0.0git
BitcodeConvenience.h File Reference
#include "llvm/Bitstream/BitCodes.h"
#include "llvm/Bitstream/BitstreamWriter.h"
#include <cstdint>
#include <optional>

Go to the source code of this file.

Classes

class  llvm::detail::BCField< Compound >
 Convenience base for all kinds of bitcode abbreviation fields. More...
class  llvm::BCLiteral< Value >
 Represents a literal operand in a bitcode record. More...
class  llvm::BCFixed< Width >
 Represents a fixed-width value in a bitcode record. More...
class  llvm::BCVBR< Width >
 Represents a variable-width value in a bitcode record. More...
class  llvm::BCChar6
 Represents a character encoded in LLVM's Char6 encoding. More...
class  llvm::BCBlob
 Represents an untyped blob of bytes. More...
class  llvm::BCArray< ElementTy >
 Represents an array of some other type. More...
class  llvm::detail::BCRecordCoding< ElementTy, Fields >
 Helper class for dealing with a scalar element in the middle of a record. More...
class  llvm::detail::BCRecordCoding< ElementTy >
 Helper class for dealing with a scalar element at the end of a record. More...
class  llvm::detail::BCRecordCoding< BCArray< ElementTy > >
 Helper class for dealing with an array at the end of a record. More...
class  llvm::detail::BCRecordCoding< BCBlob >
 Helper class for dealing with a blob at the end of a record. More...
struct  llvm::detail::last_type< Head, Tail >
 A type trait whose type field is the last of its template parameters. More...
struct  llvm::detail::last_type< Head >
struct  llvm::detail::is_array< T >
 A type trait whose value field is true if the given type is a BCArray (of any element kind). More...
class  llvm::BCGenericRecordLayout< IDField, Fields >
 Represents a single bitcode record type. More...
class  llvm::BCRecordLayout< RecordCode, Fields >
 A record with a fixed record code. More...
class  llvm::BCBlockRAII
 RAII object to pair entering and exiting a sub-block. More...

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::detail
 These are wrappers over isa* function that allow them to be used in generic algorithms such as llvm:all_of, llvm::none_of, etc.

Typedefs

template<typename... Types>
using llvm::detail::has_blob = std::is_same<BCBlob, typename last_type<int, Types...>::type>
 A type trait whose value field is true if the last type is BCBlob.
template<typename... Types>
using llvm::detail::has_array = is_array<typename last_type<int, Types...>::type>
 A type trait whose value field is true if the last type is a BCArray (of any element kind).

Functions

template<typename FieldTy>
static void llvm::detail::emitOps (llvm::BitCodeAbbrev &abbrev)
 Attaches the last field to an abbreviation.
template<typename FieldTy, typename Next, typename... Rest>
static void llvm::detail::emitOps (llvm::BitCodeAbbrev &abbrev)
 Attaches fields to an abbreviation.