LLVM
15.0.0git
|
This is the common superclass of types that have a specific, explicit type, stored in ValueTy. More...
#include "llvm/TableGen/Record.h"
Public Member Functions | |
TypedInit (const TypedInit &)=delete | |
TypedInit & | operator= (const TypedInit &)=delete |
RecTy * | getType () const |
Get the type of the Init as a RecTy. More... | |
RecordKeeper & | getRecordKeeper () const |
Get the record keeper that initialized this Init. More... | |
Init * | getCastTo (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. More... | |
Init * | convertInitializerTo (RecTy *Ty) const override |
Convert to a value whose type is Ty , or return null if this is not possible. More... | |
Init * | convertInitializerBitRange (ArrayRef< unsigned > Bits) const override |
This function is used to implement the bit range selection operator. More... | |
Init * | convertInitListSlice (ArrayRef< unsigned > Elements) const override |
This function is used to implement the list slice selection operator. More... | |
RecTy * | getFieldType (StringInit *FieldName) const override |
This method is used to implement the FieldInit class. More... | |
![]() | |
InitKind | getKind () const |
Get the kind (type) of the value. More... | |
RecordKeeper & | getRecordKeeper () const |
Get the record keeper that initialized this Init. More... | |
Init (const Init &)=delete | |
Init & | operator= (const Init &)=delete |
virtual | ~Init ()=default |
virtual bool | isComplete () const |
Is this a complete value with no unset (uninitialized) subvalues? More... | |
virtual bool | isConcrete () const |
Is this a concrete and fully resolved value without any references or stuck operations? Unset values are concrete. More... | |
void | print (raw_ostream &OS) const |
Print this value. More... | |
virtual std::string | getAsString () const =0 |
Convert this value to a literal form. More... | |
virtual std::string | getAsUnquotedString () const |
Convert this value to a literal form, without adding quotes around a string. More... | |
void | dump () const |
Debugging method that may be called through a debugger; just invokes print on stderr. More... | |
virtual Init * | resolveReferences (Resolver &R) const |
This function is used by classes that refer to other variables which may not be defined at the time the expression is formed. More... | |
virtual Init * | getBit (unsigned Bit) const =0 |
Get the Init value of the specified bit. More... | |
Static Public Member Functions | |
static bool | classof (const Init *I) |
Protected Member Functions | |
TypedInit (InitKind K, RecTy *T, uint8_t Opc=0) | |
![]() | |
Init (InitKind K, uint8_t Opc=0) | |
Additional Inherited Members | |
![]() | |
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_AnonymousNameInit, IK_StringInit, IK_VarInit, IK_VarListElementInit, IK_VarBitInit, IK_VarDefInit, IK_LastTypedInit, IK_UnsetInit } |
Discriminator enum (for isa<>, dyn_cast<>, et al.) More... | |
![]() | |
uint8_t | Opc |
This is the common superclass of types that have a specific, explicit type, stored in ValueTy.
Definition at line 432 of file Record.h.
References I, llvm::Init::IK_FirstTypedInit, and llvm::Init::IK_LastTypedInit.
This function is used to implement the bit range selection operator.
Given a value, it selects the specified bits, returning them as a new Init
of type bits
. If it is not legal to use the bit selection operator on this value, null is returned.
Reimplemented from llvm::Init.
Reimplemented in llvm::IntInit, and llvm::BitsInit.
Definition at line 1761 of file Record.cpp.
References llvm::tgtok::Bit, llvm::tgtok::Bits, llvm::BitsInit::get(), llvm::VarBitInit::get(), getRecordKeeper(), getType(), and llvm::SmallVectorImpl< T >::reserve().
Convert to a value whose type is Ty
, or return null if this is not possible.
This can happen if the value's type is convertible to Ty
, but there are unresolved references.
Implements llvm::Init.
Reimplemented in llvm::DefInit, llvm::ListInit, llvm::StringInit, llvm::IntInit, llvm::BitsInit, and llvm::BitInit.
Definition at line 1750 of file Record.cpp.
References llvm::BitsInit::get(), getRecordKeeper(), and getType().
Referenced by getCastTo().
This function is used to implement the list slice selection operator.
Given a value, it selects the specified list elements, returning them as a new Init
of type list
. If it is not legal to use the slice operator, null is returned.
Reimplemented from llvm::Init.
Reimplemented in llvm::ListInit.
Definition at line 1795 of file Record.cpp.
References llvm::ListInit::get(), llvm::VarListElementInit::get(), getType(), llvm::SmallVectorImpl< T >::reserve(), and llvm::ArrayRef< T >::size().
If this value is convertible to type Ty
, return a value whose type is Ty
, generating a !cast operation if required.
Otherwise, return null.
Implements llvm::Init.
Definition at line 1777 of file Record.cpp.
References assert(), llvm::UnOpInit::CAST, convertInitializerTo(), llvm::UnOpInit::Fold(), llvm::UnOpInit::get(), and getType().
|
overridevirtual |
This method is used to implement the FieldInit class.
Implementors of this method should return the type of the named field if they are of type record.
Reimplemented from llvm::Init.
Reimplemented in llvm::DefInit.
Definition at line 1739 of file Record.cpp.
References getType().
|
inline |
Get the record keeper that initialized this Init.
Definition at line 441 of file Record.h.
References llvm::RecTy::getRecordKeeper().
Referenced by ConcatStringInits(), convertInitializerBitRange(), llvm::BitsInit::convertInitializerBitRange(), llvm::IntInit::convertInitializerBitRange(), convertInitializerTo(), llvm::BitInit::convertInitializerTo(), llvm::BitsInit::convertInitializerTo(), llvm::IntInit::convertInitializerTo(), llvm::UnOpInit::Fold(), llvm::BinOpInit::Fold(), llvm::TernOpInit::Fold(), llvm::CondOpInit::Fold(), llvm::IsAOpInit::Fold(), llvm::ExistsOpInit::Fold(), llvm::IntInit::getBit(), llvm::OpInit::getBit(), llvm::VarInit::getBit(), llvm::VarListElementInit::getBit(), llvm::FieldInit::getBit(), llvm::AnonymousNameInit::getNameInit(), llvm::BitsInit::resolveReferences(), and llvm::TernOpInit::resolveReferences().
|
inline |
Get the type of the Init as a RecTy.
Definition at line 438 of file Record.h.
Referenced by llvm::UnOpInit::clone(), llvm::BinOpInit::clone(), llvm::TernOpInit::clone(), convertInitializerBitRange(), convertInitializerTo(), llvm::ListInit::convertInitializerTo(), llvm::DefInit::convertInitializerTo(), convertInitListSlice(), llvm::UnOpInit::Fold(), llvm::TernOpInit::Fold(), llvm::ExistsOpInit::Fold(), llvm::UnOpInit::getAsString(), llvm::OpInit::getBit(), llvm::VarInit::getBit(), llvm::VarListElementInit::getBit(), llvm::FieldInit::getBit(), getCastTo(), llvm::ListInit::getElementType(), getFieldType(), llvm::ListInit::Profile(), llvm::UnOpInit::Profile(), llvm::BinOpInit::Profile(), llvm::TernOpInit::Profile(), llvm::FoldOpInit::Profile(), llvm::UnOpInit::resolveReferences(), llvm::BinOpInit::resolveReferences(), llvm::TernOpInit::resolveReferences(), and llvm::FoldOpInit::resolveReferences().