LLVM 20.0.0git
|
This class represents a field in a record, including its name, type, value, and source location. More...
#include "llvm/TableGen/Record.h"
Public Types | |
enum | FieldKind { FK_Normal , FK_NonconcreteOK , FK_TemplateArg } |
Public Member Functions | |
RecordVal (Init *N, RecTy *T, FieldKind K) | |
RecordVal (Init *N, SMLoc Loc, RecTy *T, FieldKind K) | |
RecordKeeper & | getRecordKeeper () const |
Get the record keeper used to unique this value. | |
StringRef | getName () const |
Get the name of the field as a StringRef. | |
Init * | getNameInit () const |
Get the name of the field as an Init. | |
std::string | getNameInitAsString () const |
Get the name of the field as a std::string. | |
const SMLoc & | getLoc () const |
Get the source location of the point where the field was defined. | |
bool | isNonconcreteOK () const |
Is this a field where nonconcrete values are okay? | |
bool | isTemplateArg () const |
Is this a template argument? | |
RecTy * | getType () const |
Get the type of the field value as a RecTy. | |
std::string | getPrintType () const |
Get the type of the field for printing purposes. | |
Init * | getValue () const |
Get the value of the field as an Init. | |
bool | setValue (Init *V) |
Set the value of the field from an Init. | |
bool | setValue (Init *V, SMLoc NewLoc) |
Set the value and source location of the field. | |
void | addReferenceLoc (SMRange Loc) |
Add a reference to this record value. | |
ArrayRef< SMRange > | getReferenceLocs () const |
Return the references of this record value. | |
void | setUsed (bool Used) |
Whether this value is used. | |
bool | isUsed () const |
void | dump () const |
void | print (raw_ostream &OS, bool PrintSem=true) const |
Print the value to an output stream, possibly with a semicolon. | |
Friends | |
class | Record |
This class represents a field in a record, including its name, type, value, and source location.
Definition at line 2665 of file Record.cpp.
References assert(), llvm::UnsetInit::get(), N, and setValue().
Definition at line 2673 of file Record.cpp.
References assert(), llvm::UnsetInit::get(), N, and setValue().
|
inline |
Add a reference to this record value.
Definition at line 1610 of file Record.h.
References llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::TGVarScope::getVar().
LLVM_DUMP_METHOD void RecordVal::dump | ( | ) | const |
Definition at line 2747 of file Record.cpp.
References llvm::errs().
Get the source location of the point where the field was defined.
Definition at line 1582 of file Record.h.
Referenced by llvm::Record::checkUnusedTemplateArgs(), llvm::PrintError(), llvm::PrintFatalError(), and llvm::PrintFatalNote().
StringRef RecordVal::getName | ( | ) | const |
Get the name of the field as a StringRef.
Definition at line 2679 of file Record.cpp.
References getNameInit().
Referenced by llvm::Record::checkUnusedTemplateArgs().
|
inline |
Get the name of the field as an Init.
Definition at line 1574 of file Record.h.
References Name.
Referenced by llvm::Record::addValue(), getName(), and getNameInitAsString().
|
inline |
Get the name of the field as a std::string.
Definition at line 1577 of file Record.h.
References llvm::Init::getAsUnquotedString(), and getNameInit().
Referenced by print().
std::string RecordVal::getPrintType | ( | ) | const |
Get the type of the field for printing purposes.
Definition at line 2683 of file Record.cpp.
References llvm::StringRecTy::get(), getRecordKeeper(), and getType().
Referenced by print().
|
inline |
Get the record keeper used to unique this value.
Definition at line 1568 of file Record.h.
References Name.
Referenced by getPrintType(), and setValue().
|
inline |
Get the type of the field value as a RecTy.
Definition at line 1595 of file Record.h.
References llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >::getPointer().
Referenced by getPrintType(), llvm::TGVarScope::getVar(), and setValue().
|
inline |
Get the value of the field as an Init.
Definition at line 1601 of file Record.h.
Referenced by checkBitsConcrete(), and print().
|
inline |
Is this a field where nonconcrete values are okay?
Definition at line 1585 of file Record.h.
References FK_NonconcreteOK, and llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >::getInt().
Referenced by print().
|
inline |
Is this a template argument?
Definition at line 1590 of file Record.h.
References FK_TemplateArg, and llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >::getInt().
|
inline |
Definition at line 1618 of file Record.h.
Referenced by llvm::Record::checkUnusedTemplateArgs().
void RecordVal::print | ( | raw_ostream & | OS, |
bool | PrintSem = true |
||
) | const |
Print the value to an output stream, possibly with a semicolon.
Definition at line 2750 of file Record.cpp.
References getNameInitAsString(), getPrintType(), getValue(), isNonconcreteOK(), and OS.
Referenced by llvm::operator<<().
|
inline |
Whether this value is used.
Useful for reporting warnings, for example when a template argument is unused.
Definition at line 1617 of file Record.h.
Referenced by llvm::TGVarScope::getVar().
Set the value of the field from an Init.
Definition at line 2698 of file Record.cpp.
References assert(), llvm::BitsInit::get(), getType(), and I.
Referenced by RecordVal().
Set the value and source location of the field.
Definition at line 2722 of file Record.cpp.
References assert(), llvm::BitsInit::get(), getRecordKeeper(), getType(), and I.