|
LLVM
4.0.0
|
This is the common super-class of types that have a specific, explicit, type. More...
#include <Record.h>
Public Member Functions | |
| TypedInit (const TypedInit &Other)=delete | |
| TypedInit & | operator= (const TypedInit &Other)=delete |
| RecTy * | getType () const |
| Init * | convertInitializerTo (RecTy *Ty) const override |
| This virtual function converts to the appropriate Init based on the passed in type. More... | |
| Init * | convertInitializerBitRange (ArrayRef< unsigned > Bits) const override |
| This method is used to implement the bitrange selection operator. More... | |
| Init * | convertInitListSlice (ArrayRef< unsigned > Elements) const override |
| This method 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... | |
| virtual Init * | resolveListElementReference (Record &R, const RecordVal *RV, unsigned Elt) const =0 |
| This method is used to implement VarListElementInit::resolveReferences. More... | |
Public Member Functions inherited from llvm::Init | |
| InitKind | getKind () const |
| Init (const Init &)=delete | |
| Init & | operator= (const Init &)=delete |
| virtual | ~Init ()=default |
| virtual bool | isComplete () const |
| This virtual method should be overridden by values that may not be completely specified yet. More... | |
| void | print (raw_ostream &OS) const |
| Print out this value. More... | |
| virtual std::string | getAsString () const =0 |
| Convert this value to a string form. More... | |
| virtual std::string | getAsUnquotedString () const |
| Convert this value to a string form, without adding quote markers. More... | |
| void | dump () const |
| Debugging method that may be called through a debugger, just invokes print on stderr. More... | |
| virtual Init * | getFieldInit (Record &R, const RecordVal *RV, StringInit *FieldName) const |
| This method complements getFieldType to return the initializer for the specified field. More... | |
| virtual Init * | resolveReferences (Record &R, const RecordVal *RV) const |
| This method 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 |
| This method is used to return the initializer for the specified bit. More... | |
| virtual Init * | getBitVar () const |
| This method is used to retrieve the initializer for bit reference. More... | |
| virtual unsigned | getBitNum () const |
| This method is used to retrieve the bit number of a bit reference. More... | |
Static Public Member Functions | |
| static bool | classof (const Init *I) |
Protected Member Functions | |
| TypedInit (InitKind K, RecTy *T, uint8_t Opc=0) | |
Protected Member Functions inherited from llvm::Init | |
| Init (InitKind K, uint8_t Opc=0) | |
Additional Inherited Members | |
Protected Types inherited from llvm::Init | |
| enum | InitKind : uint8_t { IK_BitInit, IK_FirstTypedInit, IK_BitsInit, IK_CodeInit, IK_DagInit, IK_DefInit, IK_FieldInit, IK_IntInit, IK_ListInit, IK_FirstOpInit, IK_BinOpInit, IK_TernOpInit, IK_UnOpInit, IK_LastOpInit, IK_StringInit, IK_VarInit, IK_VarListElementInit, IK_LastTypedInit, IK_UnsetInit, IK_VarBitInit } |
| Discriminator enum (for isa<>, dyn_cast<>, et al.) More... | |
Protected Attributes inherited from llvm::Init | |
| uint8_t | Opc |
This is the common super-class of types that have a specific, explicit, type.
Definition at line 415 of file Record.h.
References llvm::Init::getKind(), llvm::Init::IK_FirstTypedInit, and llvm::Init::IK_LastTypedInit.
This method is used to implement the bitrange selection operator.
Given an initializer, it selects the specified bits out, returning them as a new init of bits type. If it is not legal to use the bit subscript operator on this initializer, return null.
Reimplemented from llvm::Init.
Reimplemented in llvm::IntInit, and llvm::BitsInit.
Definition at line 1222 of file Record.cpp.
References llvm::tgtok::Bit, llvm::dyn_cast(), llvm::BitsInit::get(), llvm::VarBitInit::get(), llvm::BitsRecTy::getNumBits(), getType(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::SmallVectorImpl< T >::reserve(), and llvm::ArrayRef< T >::size().
This virtual function converts to the appropriate Init based on the passed in type.
Implements llvm::Init.
Reimplemented in llvm::DagInit, llvm::DefInit, llvm::ListInit, llvm::CodeInit, llvm::StringInit, llvm::IntInit, and llvm::BitsInit.
Definition at line 1141 of file Record.cpp.
References llvm::BitRecTy::get(), llvm::BitsInit::get(), llvm::VarBitInit::get(), getType(), i, and llvm::RecTy::typeIsConvertibleTo().
This method is used to implement the list slice selection operator.
Given an initializer, it selects the specified list elements, returning them as a new init of list type. If it is not legal to take a slice of this, return null.
Reimplemented from llvm::Init.
Reimplemented in llvm::ListInit.
Definition at line 1238 of file Record.cpp.
References llvm::dyn_cast(), llvm::ListInit::get(), llvm::VarListElementInit::get(), getType(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::SmallVectorImpl< T >::reserve(), and llvm::ArrayRef< T >::size().
|
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 record type.
Reimplemented from llvm::Init.
Reimplemented in llvm::DefInit, and llvm::VarInit.
Definition at line 1133 of file Record.cpp.
References llvm::tgtok::Field, and getType().
|
inline |
Definition at line 420 of file Record.h.
Referenced by llvm::UnOpInit::clone(), llvm::BinOpInit::clone(), llvm::TernOpInit::clone(), convertInitializerBitRange(), convertInitializerTo(), llvm::ListInit::convertInitializerTo(), convertInitListSlice(), llvm::ListInit::convertInitListSlice(), llvm::UnOpInit::Fold(), llvm::BinOpInit::Fold(), llvm::TernOpInit::Fold(), ForeachHelper(), llvm::RecordRecTy::get(), llvm::UnOpInit::getAsString(), llvm::OpInit::getBit(), llvm::VarInit::getBit(), llvm::VarListElementInit::getBit(), llvm::FieldInit::getBit(), llvm::VarInit::getFieldInit(), getFieldType(), llvm::VarInit::getFieldType(), llvm::ListInit::Profile(), llvm::UnOpInit::Profile(), llvm::BinOpInit::Profile(), llvm::TernOpInit::Profile(), llvm::ListInit::resolveReferences(), llvm::UnOpInit::resolveReferences(), llvm::BinOpInit::resolveReferences(), and llvm::TernOpInit::resolveReferences().
|
pure virtual |
This method is used to implement VarListElementInit::resolveReferences.
If the list element is resolvable now, we return the resolved value, otherwise we return null.
Implemented in llvm::DagInit, llvm::FieldInit, llvm::DefInit, llvm::VarListElementInit, llvm::VarInit, llvm::OpInit, llvm::ListInit, llvm::CodeInit, llvm::StringInit, llvm::IntInit, and llvm::BitsInit.
Referenced by llvm::OpInit::resolveListElementReference(), and llvm::VarListElementInit::resolveListElementReference().
1.8.6