LLVM 19.0.0git
Classes | Namespaces | Typedefs | Functions
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.