LLVM API Documentation
#include <Record.h>
enum llvm::Init::InitKind [protected] |
Discriminator enum (for isa<>, dyn_cast<>, et al.)
This enum is laid out by a preorder traversal of the inheritance hierarchy, and does not contain an entry for abstract classes, as per the recommendation in docs/HowToSetUpLLVMStyleRTTI.rst.
We also explicitly include "first" and "last" values for each interior node of the inheritance tree, to make it easier to read the corresponding classof().
We could pack these a bit tighter by not having the IK_FirstXXXInit and IK_LastXXXInit be their own values, but that would degrade readability for really no benefit.
llvm::Init::Init | ( | InitKind | K | ) | [inline, explicit, protected] |
virtual llvm::Init::~Init | ( | ) | [inline, virtual] |
virtual Init* llvm::Init::convertInitializerBitRange | ( | const std::vector< unsigned > & | Bits | ) | const [inline, virtual] |
convertInitializerBitRange - 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 in llvm::IntInit, llvm::BitsInit, and llvm::TypedInit.
virtual Init* llvm::Init::convertInitializerTo | ( | RecTy * | Ty | ) | const [pure virtual] |
convertInitializerTo - This virtual function is a simple call-back function that should be overridden to call the appropriate RecTy::convertValue method.
Implemented in llvm::DagInit, llvm::FieldInit, llvm::DefInit, llvm::VarListElementInit, llvm::VarBitInit, llvm::VarInit, llvm::OpInit, llvm::ListInit, llvm::StringInit, llvm::IntInit, llvm::BitsInit, llvm::BitInit, and llvm::UnsetInit.
Referenced by llvm::StringRecTy::convertValue(), llvm::ListRecTy::convertValue(), llvm::DagRecTy::convertValue(), llvm::BinOpInit::Fold(), llvm::TernOpInit::Fold(), llvm::TernOpInit::resolveReferences(), and llvm::RecordVal::setValue().
virtual Init* llvm::Init::convertInitListSlice | ( | const std::vector< unsigned > & | Elements | ) | const [inline, virtual] |
convertInitListSlice - 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 in llvm::ListInit, and llvm::TypedInit.
void Init::dump | ( | ) | const |
dump - Debugging method that may be called through a debugger, just invokes print on stderr.
Definition at line 442 of file Record.cpp.
References llvm::errs(), and print().
virtual std::string llvm::Init::getAsString | ( | ) | const [pure virtual] |
getAsString - Convert this value to a string form.
Implemented in llvm::DagInit, llvm::FieldInit, llvm::DefInit, llvm::VarListElementInit, llvm::VarBitInit, llvm::VarInit, llvm::TernOpInit, llvm::BinOpInit, llvm::UnOpInit, llvm::ListInit, llvm::StringInit, llvm::IntInit, llvm::BitsInit, llvm::BitInit, and llvm::UnsetInit.
Referenced by llvm::SetTheory::evaluate(), EvaluateOperation(), ForeachHelper(), llvm::UnOpInit::getAsString(), llvm::BinOpInit::getAsString(), llvm::TernOpInit::getAsString(), llvm::VarBitInit::getAsString(), llvm::VarListElementInit::getAsString(), llvm::FieldInit::getAsString(), llvm::DagInit::getAsString(), getAsUnquotedString(), and print().
virtual std::string llvm::Init::getAsUnquotedString | ( | ) | const [inline, virtual] |
getAsUnquotedString - Convert this value to a string form, without adding quote markers. This primaruly affects StringInits where we will not surround the string value with quotes.
Reimplemented in llvm::StringInit.
Definition at line 483 of file Record.h.
References getAsString().
Referenced by llvm::VarInit::getNameInitAsString(), llvm::RecordVal::getNameInitAsString(), llvm::Record::getNameInitAsString(), and llvm::Record::resolveReferencesTo().
virtual Init* llvm::Init::getBit | ( | unsigned | Bit | ) | const [pure virtual] |
getBit - This method is used to return the initializer for the specified bit.
Implemented in llvm::DagInit, llvm::FieldInit, llvm::DefInit, llvm::VarListElementInit, llvm::VarBitInit, llvm::VarInit, llvm::OpInit, llvm::ListInit, llvm::StringInit, llvm::IntInit, llvm::BitsInit, llvm::BitInit, and llvm::UnsetInit.
Referenced by llvm::BitsInit::resolveReferences(), and llvm::VarBitInit::resolveReferences().
virtual unsigned llvm::Init::getBitNum | ( | ) | const [inline, virtual] |
getBitNum - This method is used to retrieve the bit number of a bit reference. For non-VarBitInit, it simply returns 0.
Reimplemented in llvm::VarBitInit.
Definition at line 551 of file Record.h.
Referenced by llvm::BitsInit::resolveReferences().
virtual Init* llvm::Init::getBitVar | ( | ) | const [inline, virtual] |
getBitVar - This method is used to retrieve the initializer for bit reference. For non-VarBitInit, it simply returns itself.
Reimplemented in llvm::VarBitInit.
Definition at line 547 of file Record.h.
Referenced by llvm::BitsInit::resolveReferences().
virtual Init* llvm::Init::getFieldInit | ( | Record & | R, |
const RecordVal * | RV, | ||
const std::string & | FieldName | ||
) | const [inline, virtual] |
getFieldInit - This method complements getFieldType to return the initializer for the specified field. If getFieldType returns non-null this method should return non-null, otherwise it returns null.
Reimplemented in llvm::DefInit, and llvm::VarInit.
Definition at line 527 of file Record.h.
Referenced by llvm::VarInit::getFieldInit(), llvm::FieldInit::resolveListElementReference(), and llvm::FieldInit::resolveReferences().
virtual RecTy* llvm::Init::getFieldType | ( | const std::string & | FieldName | ) | const [inline, virtual] |
getFieldType - 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 in llvm::DefInit, llvm::VarInit, and llvm::TypedInit.
InitKind llvm::Init::getKind | ( | ) | const [inline] |
Definition at line 462 of file Record.h.
Referenced by llvm::TypedInit::classof(), llvm::UnsetInit::classof(), llvm::BitInit::classof(), llvm::BitsInit::classof(), llvm::IntInit::classof(), llvm::StringInit::classof(), llvm::ListInit::classof(), llvm::OpInit::classof(), llvm::UnOpInit::classof(), llvm::BinOpInit::classof(), llvm::TernOpInit::classof(), llvm::VarInit::classof(), llvm::VarBitInit::classof(), llvm::VarListElementInit::classof(), llvm::DefInit::classof(), llvm::FieldInit::classof(), and llvm::DagInit::classof().
virtual bool llvm::Init::isComplete | ( | ) | const [inline, virtual] |
isComplete - This virtual method should be overridden by values that may not be completely specified yet.
Reimplemented in llvm::TernOpInit, llvm::BitsInit, and llvm::UnsetInit.
Definition at line 472 of file Record.h.
Referenced by llvm::BitsInit::allInComplete(), llvm::BitsInit::isComplete(), and llvm::FieldInit::resolveReferences().
void llvm::Init::print | ( | raw_ostream & | OS | ) | const [inline] |
print - Print out this value.
Definition at line 475 of file Record.h.
References getAsString().
Referenced by dump(), and llvm::operator<<().
virtual Init* llvm::Init::resolveReferences | ( | Record & | R, |
const RecordVal * | RV | ||
) | const [inline, virtual] |
resolveReferences - This method 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 in llvm::DagInit, llvm::FieldInit, llvm::VarListElementInit, llvm::VarBitInit, llvm::VarInit, llvm::TernOpInit, llvm::BinOpInit, llvm::UnOpInit, llvm::ListInit, and llvm::BitsInit.
Definition at line 537 of file Record.h.
Referenced by llvm::OpInit::resolveListElementReference(), llvm::BitsInit::resolveReferences(), llvm::ListInit::resolveReferences(), llvm::UnOpInit::resolveReferences(), llvm::BinOpInit::resolveReferences(), llvm::TernOpInit::resolveReferences(), llvm::VarBitInit::resolveReferences(), llvm::FieldInit::resolveReferences(), llvm::DagInit::resolveReferences(), and llvm::Record::resolveReferencesTo().