LLVM: llvm::BitsInit Class Reference (original) (raw)

'{ a, b, c }' - Represents an initializer for a BitsRecTy value. More...

#include "[llvm/TableGen/Record.h](TableGen%5F2Record%5F8h%5Fsource.html)"

Public Member Functions
BitsInit (const BitsInit &)=delete
BitsInit & operator= (const BitsInit &)=delete
void operator delete (void *Ptr)
void Profile (FoldingSetNodeID &ID) const
unsigned getNumBits () const
const Init * convertInitializerTo (const RecTy *Ty) const override
Convert to a value whose type is Ty, or return null if this is not possible.
const Init * convertInitializerBitRange (ArrayRef< unsigned > Bits) const override
This function is used to implement the bit range selection operator.
std::optional< int64_t > convertInitializerToInt () const
uint64_t convertKnownBitsToInt () const
bool isComplete () const override
Is this a complete value with no unset (uninitialized) subvalues?
bool allInComplete () const
bool isConcrete () const override
Is this a concrete and fully resolved value without any references or stuck operations?
std::string getAsString () const override
Convert this value to a literal form.
const Init * resolveReferences (Resolver &R) const override
This function is used by classes that refer to other variables which may not be defined at the time the expression is formed.
ArrayRef< const Init * > getBits () const
const Init * getBit (unsigned Bit) const override
Get the Init value of the specified bit.
Public Member Functions inherited from llvm::TypedInit
TypedInit (const TypedInit &)=delete
TypedInit & operator= (const TypedInit &)=delete
const RecTy * getType () const
Get the type of the Init as a RecTy.
RecordKeeper & getRecordKeeper () const
Get the record keeper that initialized this Init.
const Init * getCastTo (const RecTy *Ty) const override
If this value is convertible to type Ty, return a value whose type is Ty, generating a !cast operation if required.
const Init * convertInitializerTo (const RecTy *Ty) const override
Convert to a value whose type is Ty, or return null if this is not possible.
const Init * convertInitializerBitRange (ArrayRef< unsigned > Bits) const override
This function is used to implement the bit range selection operator.
const RecTy * getFieldType (const StringInit *FieldName) const override
This method is used to implement the FieldInit class.
Public Member Functions inherited from llvm::Init
InitKind getKind () const
Get the kind (type) of the value.
RecordKeeper & getRecordKeeper () const
Get the record keeper that initialized this Init.
Init (const Init &)=delete
Init & operator= (const Init &)=delete
virtual ~Init ()=default
void print (raw_ostream &OS) const
Print this value.
virtual std::string getAsUnquotedString () const
Convert this value to a literal form, without adding quotes around a string.
void dump () const
Debugging method that may be called through a debugger; just invokes print on stderr.
Public Member Functions inherited from llvm::FoldingSetBase::Node
Node ()=default
void * getNextInBucket () const
void SetNextInBucket (void *N)
Additional Inherited Members
Protected Types inherited from llvm::Init
enum InitKind : uint8_t { IK_First, IK_FirstTypedInit, IK_BitInit, IK_BitsInit, IK_DagInit, IK_DefInit, IK_FieldInit, IK_IntInit, IK_ListInit, IK_FirstOpInit, IK_BinOpInit, IK_TernOpInit, IK_UnOpInit, IK_LastOpInit, IK_CondOpInit, IK_FoldOpInit, IK_IsAOpInit, IK_ExistsOpInit, IK_InstancesOpInit, IK_AnonymousNameInit, IK_StringInit, IK_VarInit, IK_VarBitInit, IK_VarDefInit, IK_LastTypedInit, IK_UnsetInit, IK_ArgumentInit }
Discriminator enum (for isa<>, dyn_cast<>, et al.) More...
Protected Member Functions inherited from llvm::TypedInit
TypedInit (InitKind K, const RecTy *T, uint8_t Opc=0)
Protected Member Functions inherited from llvm::Init
Init (InitKind K, uint8_t Opc=0)
Protected Attributes inherited from llvm::Init
uint8_t Opc

'{ a, b, c }' - Represents an initializer for a BitsRecTy value.

It contains a vector of bits, whose size is determined by the type.

Definition at line 589 of file Record.h.

allInComplete()

bool BitsInit::allInComplete ( ) const

classof()

convertInitializerBitRange()

convertInitializerTo()

convertInitializerToInt()

std::optional< int64_t > BitsInit::convertInitializerToInt ( ) const

convertKnownBitsToInt()

uint64_t BitsInit::convertKnownBitsToInt ( ) const

get()

Definition at line 472 of file Record.cpp.

References detail::RecordKeeperImpl::Allocator, llvm::FoldingSetImpl< Derived, T >::FindNodeOrInsertPos(), llvm::RecordKeeper::getImpl(), I, llvm::FoldingSetImpl< Derived, T >::InsertNode(), ProfileBitsInit(), detail::RecordKeeperImpl::TheBitsInitPool, and llvm::TrailingObjects< BitsInit, const Init * >::totalSizeToAlloc().

Referenced by convertInitializerBitRange(), llvm::IntInit::convertInitializerBitRange(), llvm::TypedInit::convertInitializerBitRange(), llvm::BitInit::convertInitializerTo(), llvm::IntInit::convertInitializerTo(), llvm::TypedInit::convertInitializerTo(), resolveReferences(), and llvm::RecordVal::setValue().

getAsString()

std::string BitsInit::getAsString ( ) const overridevirtual

getBit()

getBits()

getNumBits()

unsigned llvm::BitsInit::getNumBits ( ) const inline

isComplete()

bool BitsInit::isComplete ( ) const overridevirtual

isConcrete()

bool BitsInit::isConcrete ( ) const overridevirtual

Is this a concrete and fully resolved value without any references or stuck operations?

Unset values are concrete.

Reimplemented from llvm::Init.

Definition at line 550 of file Record.cpp.

References llvm::all_of(), and getBits().

operator delete()

void llvm::BitsInit::operator delete ( void * Ptr) inline

operator=()

Profile()

resolveReferences()

This function is used by classes that refer to other variables which may not be defined at the time the expression is formed.

If a value is set for the variable later, this method will be called on users of the value to allow the value to propagate out.

Reimplemented from llvm::Init.

Definition at line 569 of file Record.cpp.

References assert(), Changed, llvm::dyn_cast(), get(), llvm::Init::getBit(), getBits(), getNumBits(), llvm::TypedInit::getRecordKeeper(), llvm::isa(), llvm::Init::resolveReferences(), and llvm::zip_equal().


The documentation for this class was generated from the following files: