|
LLVM 24.0.0git
|
[AL, AH, CL] - Represent a list of defs More...
#include "llvm/TableGen/Record.h"
Public Types | |
| using | const_iterator = const Init *const * |
Public Member Functions | |
| ListInit (const ListInit &)=delete | |
| ListInit & | operator= (const ListInit &)=delete |
| void | operator delete (void *Ptr) |
| ArrayRef< const Init * > | getElements () const |
| ArrayRef< const Init * > | getValues () const |
| const Init * | getElement (unsigned Idx) const |
| std::pair< ArrayRef< const Init * >, const RecTy * > | getKey () const |
| const RecTy * | getElementType () const |
| const Record * | getElementAsRecord (unsigned Idx) 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 * | resolveReferences (Resolver &R) const override |
| This method is used by classes that refer to other variables which may not be defined at the time they expression is formed. | |
| bool | isComplete () const override |
| Is this a complete value with no unset (uninitialized) subvalues? | |
| 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_iterator | begin () const |
| const_iterator | end () const |
| size_t | size () const |
| bool | empty () 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. | |
| bool | isTriviallyResolved () const |
| Return true if resolveReferences returns this value unchanged with any resolver. | |
| 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::FoldingSetNode | |
| FoldingSetNode ()=default | |
| uint32_t | getFoldingSetHash () const |
| void | setFoldingSetHash (uint32_t Hash) |
Static Public Member Functions | |
| static bool | classof (const Init *I) |
| static const ListInit * | get (ArrayRef< const Init * > Range, const RecTy *EltTy) |
| Static Public Member Functions inherited from llvm::TypedInit | |
| static bool | classof (const Init *I) |
| Static Public Member Functions inherited from llvm::Init | |
| static bool | isLeafKind (InitKind K) |
Return true if K is a value kind that cannot contain references. | |
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 |
| bool | TriviallyResolved |
| Set if resolveReferences returns this value unchanged with any resolver. | |
|
inline |
Definition at line 823 of file Record.h.
References getElements().
Definition at line 786 of file Record.h.
References I, and llvm::Init::IK_ListInit.
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.
Definition at line 681 of file Record.cpp.
References Changed, llvm::dyn_cast(), get(), getElements(), llvm::TypedInit::getType(), I, and size().
|
inline |
Definition at line 824 of file Record.h.
References getElements().
Definition at line 664 of file Record.cpp.
References detail::RecordKeeperImpl::Allocator, assert(), llvm::cast(), llvm::RecordKeeper::getImpl(), llvm::RecTy::getRecordKeeper(), I, llvm::UniquingSet< T, Info >::insert(), llvm::isa(), llvm::UniquingSet< T, Info >::lookup(), detail::RecordKeeperImpl::TheListInitPool, and llvm::TrailingObjects< ListInit, const Init * >::totalSizeToAlloc().
Referenced by ConcatListInits(), convertInitializerTo(), FilterHelper(), llvm::BinOpInit::Fold(), llvm::InstancesOpInit::Fold(), llvm::TernOpInit::Fold(), llvm::UnOpInit::Fold(), ForeachHelper(), resolveReferences(), and SortHelper().
|
overridevirtual |
Convert this value to a literal form.
Implements llvm::Init.
Definition at line 747 of file Record.cpp.
References llvm::Init::getAsString().
Referenced by getElementAsRecord().
Get the Init value of the specified bit.
Implements llvm::Init.
Definition at line 829 of file Record.h.
References llvm_unreachable.
Definition at line 798 of file Record.h.
References getElements().
Referenced by getElementAsRecord().
Definition at line 710 of file Record.cpp.
References llvm::dyn_cast(), getAsString(), getElement(), and llvm::PrintFatalError().
Definition at line 791 of file Record.h.
References llvm::ArrayRef(), and llvm::TrailingObjects< ListInit, const Init * >::getTrailingObjects().
Referenced by begin(), convertInitializerTo(), end(), getElement(), getKey(), getValues(), and resolveReferences().
Definition at line 804 of file Record.h.
References llvm::cast(), and llvm::TypedInit::getType().
Referenced by getKey(), and resolveReferences().
Definition at line 800 of file Record.h.
References getElements(), and getElementType().
Definition at line 796 of file Record.h.
References const, getElements(), and getValues().
Referenced by getValues().
|
overridevirtual |
Is this a complete value with no unset (uninitialized) subvalues?
Reimplemented from llvm::Init.
Definition at line 737 of file Record.cpp.
References llvm::all_of(), and llvm::Init::isComplete().
|
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 742 of file Record.cpp.
References llvm::all_of(), and llvm::Init::isConcrete().
This method is used by classes that refer to other variables which may not be defined at the time they 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 718 of file Record.cpp.
References Changed, get(), getElements(), getElementType(), llvm::Init::isTriviallyResolved(), llvm::Init::resolveReferences(), and size().
|
inline |
Definition at line 826 of file Record.h.
Referenced by convertInitializerTo(), and resolveReferences().