LLVM  15.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. More...
 
StringRef getName () const
 Get the name of the field as a StringRef. More...
 
InitgetNameInit () const
 Get the name of the field as an Init. More...
 
std::string getNameInitAsString () const
 Get the name of the field as a std::string. More...
 
const SMLocgetLoc () const
 Get the source location of the point where the field was defined. More...
 
bool isNonconcreteOK () const
 Is this a field where nonconcrete values are okay? More...
 
bool isTemplateArg () const
 Is this a template argument? More...
 
RecTygetType () const
 Get the type of the field value as a RecTy. More...
 
std::string getPrintType () const
 Get the type of the field for printing purposes. More...
 
InitgetValue () const
 Get the value of the field as an Init. More...
 
bool setValue (Init *V)
 Set the value of the field from an Init. More...
 
bool setValue (Init *V, SMLoc NewLoc)
 Set the value and source location of the field. More...
 
void setUsed (bool Used)
 Whether this value is used. More...
 
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. More...
 

Friends

class Record
 

Detailed Description

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

Definition at line 1429 of file Record.h.

Member Enumeration Documentation

◆ FieldKind

Enumerator
FK_Normal 
FK_NonconcreteOK 
FK_TemplateArg 

Definition at line 1433 of file Record.h.

Constructor & Destructor Documentation

◆ RecordVal() [1/2]

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

Definition at line 2257 of file Record.cpp.

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

◆ RecordVal() [2/2]

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

Definition at line 2265 of file Record.cpp.

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

Member Function Documentation

◆ dump()

LLVM_DUMP_METHOD void RecordVal::dump ( ) const

Definition at line 2339 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 1465 of file Record.h.

Referenced by llvm::PrintError(), llvm::PrintFatalError(), and llvm::PrintFatalNote().

◆ getName()

StringRef RecordVal::getName ( ) const

Get the name of the field as a StringRef.

Definition at line 2271 of file Record.cpp.

References getNameInit().

◆ getNameInit()

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

Get the name of the field as an Init.

Definition at line 1457 of file Record.h.

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 1460 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 2275 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 1451 of file Record.h.

Referenced by getPrintType(), and setValue().

◆ getType()

RecTy* llvm::RecordVal::getType ( ) const
inline

Get the type of the field value as a RecTy.

Definition at line 1478 of file Record.h.

References llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >::getPointer().

Referenced by getPrintType(), and setValue().

◆ getValue()

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

Get the value of the field as an Init.

Definition at line 1484 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 1468 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 1473 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 1495 of file Record.h.

◆ 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 2342 of file Record.cpp.

References getNameInitAsString(), getPrintType(), getValue(), and isNonconcreteOK().

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 1494 of file Record.h.

◆ setValue() [1/2]

bool RecordVal::setValue ( Init V)

Set the value of the field from an Init.

Definition at line 2290 of file Record.cpp.

References assert(), llvm::tgtok::Bits, E, llvm::BitsInit::get(), llvm::Init::getCastTo(), llvm::Init::getRecordKeeper(), 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 2314 of file Record.cpp.

References assert(), llvm::tgtok::Bits, E, llvm::BitsInit::get(), llvm::Init::getCastTo(), getRecordKeeper(), getType(), and I.

Friends And Related Function Documentation

◆ Record

friend class Record
friend

Definition at line 1430 of file Record.h.


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