LLVM
8.0.1
|
'[classname]' - Type of record values that have zero or more superclasses. More...
#include "llvm/TableGen/Record.h"
Public Types | |
using | const_record_iterator = Record *const * |
Public Types inherited from llvm::RecTy | |
enum | RecTyKind { BitRecTyKind, BitsRecTyKind, CodeRecTyKind, IntRecTyKind, StringRecTyKind, ListRecTyKind, DagRecTyKind, RecordRecTyKind } |
Subclass discriminator (for dyn_cast<> et al.) More... | |
Public Member Functions | |
RecordRecTy (const RecordRecTy &)=delete | |
RecordRecTy & | operator= (const RecordRecTy &)=delete |
void | operator delete (void *p) |
void | Profile (FoldingSetNodeID &ID) const |
ArrayRef< Record * > | getClasses () const |
const_record_iterator | classes_begin () const |
const_record_iterator | classes_end () const |
std::string | getAsString () const override |
bool | isSubClassOf (Record *Class) const |
bool | typeIsConvertibleTo (const RecTy *RHS) const override |
Return true if all values of 'this' type can be converted to the specified type. More... | |
bool | typeIsA (const RecTy *RHS) const override |
Return true if 'this' type is equal to or a subtype of RHS. More... | |
Public Member Functions inherited from llvm::RecTy | |
RecTy (RecTyKind K) | |
virtual | ~RecTy ()=default |
RecTyKind | getRecTyKind () const |
void | print (raw_ostream &OS) const |
void | dump () const |
ListRecTy * | getListTy () |
Returns the type representing list<this>. More... | |
Public Member Functions inherited from llvm::FoldingSetBase::Node | |
Node ()=default | |
void * | getNextInBucket () const |
void | SetNextInBucket (void *N) |
Public Member Functions inherited from llvm::TrailingObjects< RecordRecTy, Record *> | |
const T * | getTrailingObjects () const |
Returns a pointer to the trailing object array of the given type (which must be one of those specified in the class template). More... | |
T * | getTrailingObjects () |
Returns a pointer to the trailing object array of the given type (which must be one of those specified in the class template). More... | |
Static Public Member Functions | |
static bool | classof (const RecTy *RT) |
static RecordRecTy * | get (ArrayRef< Record *> Classes) |
Get the record type with the given non-redundant list of superclasses. More... | |
Static Public Member Functions inherited from llvm::TrailingObjects< RecordRecTy, Record *> | |
static constexpr std::enable_if< std::is_same< Foo< TrailingTys... >, Foo< Tys... > >::value, size_t >::type | additionalSizeToAlloc (typename trailing_objects_internal::ExtractSecondType< TrailingTys, size_t >::type... Counts) |
Returns the size of the trailing data, if an object were allocated with the given counts (The counts are in the same order as the template arguments). More... | |
static constexpr std::enable_if< std::is_same< Foo< TrailingTys... >, Foo< Tys... > >::value, size_t >::type | totalSizeToAlloc (typename trailing_objects_internal::ExtractSecondType< TrailingTys, size_t >::type... Counts) |
Returns the total size of an object if it were allocated with the given trailing object counts. More... | |
Friends | |
class | Record |
'[classname]' - Type of record values that have zero or more superclasses.
The list of superclasses is non-redundant, i.e. only contains classes that are not the superclass of some other listed class.
using llvm::RecordRecTy::const_record_iterator = Record * const * |
|
delete |
|
inline |
Definition at line 269 of file Record.h.
Referenced by resolveRecordTypes().
|
inline |
Definition at line 270 of file Record.h.
References llvm::tgtok::Class, llvm::RecTy::getAsString(), llvm::resolveTypes(), T1, llvm::RecTy::typeIsA(), and llvm::RecTy::typeIsConvertibleTo().
Referenced by resolveRecordTypes().
Definition at line 254 of file Record.h.
References llvm::RecTy::getRecTyKind(), and llvm::RecTy::RecordRecTyKind.
|
static |
Get the record type with the given non-redundant list of superclasses.
Definition at line 150 of file Record.cpp.
References llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Allocate(), assert(), llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::empty(), llvm::ArrayRef< T >::end(), llvm::FoldingSetImpl< T >::FindNodeOrInsertPos(), llvm::Record::getNameInitAsString(), llvm::TrailingObjects< BaseTy, TrailingTys >::getTrailingObjects(), llvm::FoldingSetImpl< T >::InsertNode(), ProfileRecordRecTy(), and llvm::sort().
Referenced by llvm::Record::getType(), and resolveRecordTypes().
|
overridevirtual |
Implements llvm::RecTy.
Definition at line 195 of file Record.cpp.
Definition at line 263 of file Record.h.
References llvm::makeArrayRef().
Referenced by typeIsConvertibleTo().
Definition at line 211 of file Record.cpp.
References llvm::any_of(), and llvm::Record::isSubClassOf().
Referenced by resolveRecordTypes().
|
delete |
void RecordRecTy::Profile | ( | FoldingSetNodeID & | ID | ) | const |
Definition at line 191 of file Record.cpp.
References ProfileRecordRecTy().
Return true if 'this' type is equal to or a subtype of RHS.
For example, a bit set is not an int, but they are convertible.
Reimplemented from llvm::RecTy.
Definition at line 231 of file Record.cpp.
References llvm::RecTy::typeIsConvertibleTo().
Return true if all values of 'this' type can be converted to the specified type.
Reimplemented from llvm::RecTy.
Definition at line 218 of file Record.cpp.
References llvm::all_of(), llvm::dyn_cast(), and getClasses().