Home | History | Annotate | Download | only in TableGen

Lines Matching full:record

1 //===- Record.cpp - Record implementation ---------------------------------===//
10 // Implement the tablegen record classes.
14 #include "llvm/TableGen/Record.h"
154 RecordRecTy *RecordRecTy::get(Record *R) {
170 for (Record *SC : RTy->getRecord()->getSuperClasses())
186 // If one is a Record type, check superclasses
189 for (Record *SuperRec1 : RecTy1->getRecord()->getSuperClasses()) {
198 for (Record *SuperRec2 : RecTy2->getRecord()->getSuperClasses()) {
349 Init *BitsInit::resolveReferences(Record &R, const RecordVal *RV) const {
531 Record *ListInit::getElementAsRecord(unsigned i) const {
535 PrintFatalError("Expected record in list!");
539 Init *ListInit::resolveReferences(Record &R, const RecordVal *RV) const {
560 Init *ListInit::resolveListElementReference(Record &R, const RecordVal *IRV,
582 Init *OpInit::resolveListElementReference(Record &R, const RecordVal *IRV,
617 Init *UnOpInit::Fold(Record *CurRec, MultiClass *CurMultiClass) const {
670 if (Record *D = (CurRec->getRecords()).getDef(Name))
715 Init *UnOpInit::resolveReferences(Record &R, const RecordVal *RV) const {
751 Init *BinOpInit::Fold(Record *CurRec, MultiClass *CurMultiClass) const {
842 Init *BinOpInit::resolveReferences(Record &R, const RecordVal *RV) const {
891 Record *CurRec, MultiClass *CurMultiClass);
894 RecTy *Type, Record *CurRec,
923 Record *CurRec, MultiClass *CurMultiClass) {
985 Init *TernOpInit::Fold(Record *CurRec, MultiClass *CurMultiClass) const {
1001 Record *Val = RHSd->getDef();
1053 Init *TernOpInit::resolveReferences(Record &R,
1237 Init *VarInit::resolveListElementReference(Record &R,
1268 Init *VarInit::getFieldInit(Record &R, const RecordVal *RV,
1288 Init *VarInit::resolveReferences(Record &R, const RecordVal *RV) const {
1317 Init *VarBitInit::resolveReferences(Record &R, const RecordVal *RV) const {
1342 VarListElementInit::resolveReferences(Record &R, const RecordVal *RV) const {
1355 Init *VarListElementInit:: resolveListElementReference(Record &R,
1370 DefInit *DefInit::get(Record *R) {
1387 Init *DefInit::getFieldInit(Record &R, const RecordVal *RV,
1414 Init *FieldInit::resolveListElementReference(Record &R, const RecordVal *RV,
1430 Init *FieldInit::resolveReferences(Record &R, const RecordVal *RV) const {
1504 Init *DagInit::resolveReferences(Record &R, const RecordVal *RV) const {
1566 unsigned Record::LastID = 0;
1568 void Record::init() {
1571 // Every record potentially has a def at the top. This value is
1577 void Record::checkName() {
1578 // Ensure the record name has string type.
1581 PrintFatalError(getLoc(), "Record name is not a string!");
1584 DefInit *Record::getDefInit() {
1590 const std::string &Record::getName() const {
1594 void Record::setName(Init *NewName) {
1597 // DO NOT resolve record values to the name at this point because
1603 // Nonetheless, it may be that some of this Record's values
1604 record name. Indeed, the reason for having the
1605 // record name be an Init is to provide this flexibility. The extra
1610 void Record::setName(const std::string &Name) {
1614 /// resolveReferencesTo - If anything in this record refers to RV, replace the
1617 void Record::resolveReferencesTo(const RecordVal *RV) {
1639 void Record::dump() const { errs() << *this; }
1641 raw_ostream &llvm::operator<<(raw_ostream &OS, const Record &R) {
1652 assert(RV && "Template argument record not found??");
1659 ArrayRef<Record *> SC = R.getSuperClasses();
1662 for (const Record *Super : SC)
1680 Init *Record::getValueInit(StringRef FieldName) const {
1683 PrintFatalError(getLoc(), "Record `" + getName() +
1693 std::string Record::getValueAsString(StringRef FieldName) const {
1696 PrintFatalError(getLoc(), "Record `" + getName() +
1701 PrintFatalError(getLoc(), "Record `" + getName() + "', field `" +
1709 BitsInit *Record::getValueAsBitsInit(StringRef FieldName) const {
1712 PrintFatalError(getLoc(), "Record `" + getName() +
1717 PrintFatalError(getLoc(), "Record `" + getName() + "', field `" +
1725 ListInit *Record::getValueAsListInit(StringRef FieldName) const {
1728 PrintFatalError(getLoc(), "Record `" + getName() +
1733 PrintFatalError(getLoc(), "Record `" + getName() + "', field `" +
1741 std::vector<Record*>
1742 Record::getValueAsListOfDefs(StringRef FieldName) const {
1744 std::vector<Record*> Defs;
1749 PrintFatalError(getLoc(), "Record `" + getName() + "', field `" +
1759 int64_t Record::getValueAsInt(StringRef FieldName) const {
1762 PrintFatalError(getLoc(), "Record `" + getName() +
1767 PrintFatalError(getLoc(), "Record `" + getName() + "', field `" +
1776 Record::getValueAsListOfInts(StringRef FieldName) const {
1783 PrintFatalError(getLoc(), "Record `" + getName() + "', field `" +
1794 Record::getValueAsListOfStrings(StringRef FieldName) const {
1801 PrintFatalError(getLoc(), "Record `" + getName() + "', field `" +
1808 /// value as a Record, aborting if the field does not exist or if the value
1811 Record *Record::getValueAsDef(StringRef FieldName) const {
1814 PrintFatalError(getLoc(), "Record `" + getName() +
1819 PrintFatalError(getLoc(), "Record `" + getName() + "', field `" +
1827 bool Record::getValueAsBit(StringRef FieldName) const {
1830 PrintFatalError(getLoc(), "Record `" + getName() +
1835 PrintFatalError(getLoc(), "Record `" + getName() + "', field `" +
1839 bool Record::getValueAsBitOrUnset(StringRef FieldName, bool &Unset) const {
1842 PrintFatalError(getLoc(), "Record `" + getName() +
1852 PrintFatalError(getLoc(), "Record `" + getName() + "', field `" +
1860 DagInit *Record::getValueAsDag(StringRef FieldName) const {
1863 PrintFatalError(getLoc(), "Record `" + getName() +
1868 PrintFatalError(getLoc(), "Record `" + getName() + "', field `" +
1874 errs() << "Record:\n";
1900 std::vector<Record*>
1902 Record *Class = getClass(ClassName);
1906 std::vector<Record*> Defs;
1916 Init *llvm::QualifyName(Record &CurRec, MultiClass *CurMultiClass,
1945 Init *llvm::QualifyName(Record &CurRec, MultiClass *CurMultiClass,