LLVM 20.0.0git
Public Types | Public Member Functions | Friends | List of all members
llvm::RecordVal Class Reference

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)
 
RecordKeepergetRecordKeeper () const
 Get the record keeper used to unique this value.
 
StringRef getName () const
 Get the name of the field as a StringRef.
 
InitgetNameInit () 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 SMLocgetLoc () 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?
 
RecTygetType () const
 Get the type of the field value as a RecTy.
 
std::string getPrintType () const
 Get the type of the field for printing purposes.
 
InitgetValue () 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< SMRangegetReferenceLocs () 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
 

Detailed Description

This class represents a field in a record, including its name, type, value, and source location.

Definition at line 1543 of file Record.h.

Member Enumeration Documentation

◆ FieldKind

Enumerator
FK_Normal 
FK_NonconcreteOK 
FK_TemplateArg 

Definition at line 1547 of file Record.h.

Constructor & Destructor Documentation

◆ RecordVal() [1/2]

RecordVal::RecordVal ( Init N,
RecTy T,
FieldKind  K 
)

Definition at line 2665 of file Record.cpp.

References assert(), llvm::UnsetInit::get(), N, and setValue().

◆ RecordVal() [2/2]

RecordVal::RecordVal ( Init N,
SMLoc  Loc,
RecTy T,
FieldKind  K 
)

Definition at line 2673 of file Record.cpp.

References assert(), llvm::UnsetInit::get(), N, and setValue().

Member Function Documentation

◆ addReferenceLoc()

void llvm::RecordVal::addReferenceLoc ( SMRange  Loc)
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().

◆ dump()

LLVM_DUMP_METHOD void RecordVal::dump ( ) const

Definition at line 2747 of file Record.cpp.

References llvm::errs().

◆ getLoc()

const SMLoc & llvm::RecordVal::getLoc ( ) const
inline

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().

◆ getName()

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().

◆ getNameInit()

Init * llvm::RecordVal::getNameInit ( ) const
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().

◆ getNameInitAsString()

std::string llvm::RecordVal::getNameInitAsString ( ) const
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().

◆ getPrintType()

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().

◆ getRecordKeeper()

RecordKeeper & llvm::RecordVal::getRecordKeeper ( ) const
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().

◆ getReferenceLocs()

ArrayRef< SMRange > llvm::RecordVal::getReferenceLocs ( ) const
inline

Return the references of this record value.

Definition at line 1613 of file Record.h.

◆ getType()

RecTy * llvm::RecordVal::getType ( ) const
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().

◆ getValue()

Init * llvm::RecordVal::getValue ( ) const
inline

Get the value of the field as an Init.

Definition at line 1601 of file Record.h.

Referenced by checkBitsConcrete(), and print().

◆ isNonconcreteOK()

bool llvm::RecordVal::isNonconcreteOK ( ) const
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().

◆ isTemplateArg()

bool llvm::RecordVal::isTemplateArg ( ) const
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().

◆ isUsed()

bool llvm::RecordVal::isUsed ( ) const
inline

Definition at line 1618 of file Record.h.

Referenced by llvm::Record::checkUnusedTemplateArgs().

◆ print()

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<<().

◆ setUsed()

void llvm::RecordVal::setUsed ( bool  Used)
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().

◆ setValue() [1/2]

bool RecordVal::setValue ( Init V)

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().

◆ setValue() [2/2]

bool RecordVal::setValue ( Init V,
SMLoc  NewLoc 
)

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.

Friends And Related Function Documentation

◆ Record

friend class Record
friend

Definition at line 1544 of file Record.h.


The documentation for this class was generated from the following files: