|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
lib/Bitcode/Reader/MetadataLoader.cpp 1109 SmallString<8> Name(Record.begin(), Record.end());
1109 SmallString<8> Name(Record.begin(), Record.end());
1110 Record.clear();
1117 if (Expected<unsigned> MaybeNextBitCode = Stream.readRecord(Code, Record)) {
1124 unsigned Size = Record.size();
1127 MDNode *MD = MetadataList.getMDNodeFwdRefOrNull(Record[i]);
1138 if (Record.size() % 2 == 1)
1147 if (Record.size() != 2) {
1152 Type *Ty = getTypeByID(Record[0]);
1159 LocalAsMetadata::get(ValueList.getValueFwdRef(Record[1], Ty)),
1166 if (Record.size() % 2 == 1)
1169 unsigned Size = Record.size();
1172 Type *Ty = getTypeByID(Record[i]);
1176 Elts.push_back(getMD(Record[i + 1]));
1179 ValueAsMetadata::get(ValueList.getValueFwdRef(Record[i + 1], Ty));
1191 if (Record.size() != 2)
1194 Type *Ty = getTypeByID(Record[0]);
1199 ValueAsMetadata::get(ValueList.getValueFwdRef(Record[1], Ty)),
1209 Elts.reserve(Record.size());
1210 for (unsigned ID : Record)
1219 if (Record.size() != 5 && Record.size() != 6)
1219 if (Record.size() != 5 && Record.size() != 6)
1222 IsDistinct = Record[0];
1223 unsigned Line = Record[1];
1224 unsigned Column = Record[2];
1225 Metadata *Scope = getMD(Record[3]);
1226 Metadata *InlinedAt = getMDOrNull(Record[4]);
1227 bool ImplicitCode = Record.size() == 6 && Record[5];
1227 bool ImplicitCode = Record.size() == 6 && Record[5];
1236 if (Record.size() < 4)
1239 IsDistinct = Record[0];
1240 unsigned Tag = Record[1];
1241 unsigned Version = Record[2];
1246 auto *Header = getMDString(Record[3]);
1248 for (unsigned I = 4, E = Record.size(); I != E; ++I)
1249 DwarfOps.push_back(getMDOrNull(Record[I]));
1261 switch (Record[0] >> 1) {
1264 (Context, Record[1], unrotateSign(Record.back())));
1264 (Context, Record[1], unrotateSign(Record.back())));
1267 Val = GET_OR_DISTINCT(DISubrange, (Context, getMDOrNull(Record[1]),
1268 unrotateSign(Record.back())));
1275 IsDistinct = Record[0] & 1;
1280 if (Record.size() != 3)
1283 IsDistinct = Record[0] & 1;
1284 bool IsUnsigned = Record[0] & 2;
1286 GET_OR_DISTINCT(DIEnumerator, (Context, unrotateSign(Record[1]),
1287 IsUnsigned, getMDString(Record[2]))),
1293 if (Record.size() < 6 || Record.size() > 7)
1293 if (Record.size() < 6 || Record.size() > 7)
1296 IsDistinct = Record[0];
1297 DINode::DIFlags Flags = (Record.size() > 6) ?
1298 static_cast<DINode::DIFlags>(Record[6]) : DINode::FlagZero;
1302 (Context, Record[1], getMDString(Record[2]), Record[3],
1302 (Context, Record[1], getMDString(Record[2]), Record[3],
1302 (Context, Record[1], getMDString(Record[2]), Record[3],
1303 Record[4], Record[5], Flags)),
1303 Record[4], Record[5], Flags)),
1309 if (Record.size() < 12 || Record.size() > 13)
1309 if (Record.size() < 12 || Record.size() > 13)
1315 if (Record.size() > 12 && Record[12])
1315 if (Record.size() > 12 && Record[12])
1316 DWARFAddressSpace = Record[12] - 1;
1318 IsDistinct = Record[0];
1319 DINode::DIFlags Flags = static_cast<DINode::DIFlags>(Record[10]);
1322 (Context, Record[1], getMDString(Record[2]),
1322 (Context, Record[1], getMDString(Record[2]),
1323 getMDOrNull(Record[3]), Record[4],
1323 getMDOrNull(Record[3]), Record[4],
1324 getDITypeRefOrNull(Record[5]),
1325 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
1325 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
1325 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
1326 Record[9], DWARFAddressSpace, Flags,
1327 getDITypeRefOrNull(Record[11]))),
1333 if (Record.size() < 16 || Record.size() > 17)
1333 if (Record.size() < 16 || Record.size() > 17)
1338 IsDistinct = Record[0] & 0x1;
1339 bool IsNotUsedInTypeRef = Record[0] >= 2;
1340 unsigned Tag = Record[1];
1341 MDString *Name = getMDString(Record[2]);
1342 Metadata *File = getMDOrNull(Record[3]);
1343 unsigned Line = Record[4];
1344 Metadata *Scope = getDITypeRefOrNull(Record[5]);
1346 uint64_t SizeInBits = Record[7];
1347 if (Record[8] > (uint64_t)std::numeric_limits<uint32_t>::max())
1349 uint32_t AlignInBits = Record[8];
1351 DINode::DIFlags Flags = static_cast<DINode::DIFlags>(Record[10]);
1353 unsigned RuntimeLang = Record[12];
1357 auto *Identifier = getMDString(Record[15]);
1372 BaseType = getDITypeRefOrNull(Record[6]);
1373 OffsetInBits = Record[9];
1374 Elements = getMDOrNull(Record[11]);
1375 VTableHolder = getDITypeRefOrNull(Record[13]);
1376 TemplateParams = getMDOrNull(Record[14]);
1377 if (Record.size() > 16)
1378 Discriminator = getMDOrNull(Record[16]);
1402 if (Record.size() < 3 || Record.size() > 4)
1402 if (Record.size() < 3 || Record.size() > 4)
1404 bool IsOldTypeRefArray = Record[0] < 2;
1405 unsigned CC = (Record.size() > 3) ? Record[3] : 0;
1405 unsigned CC = (Record.size() > 3) ? Record[3] : 0;
1407 IsDistinct = Record[0] & 0x1;
1408 DINode::DIFlags Flags = static_cast<DINode::DIFlags>(Record[1]);
1409 Metadata *Types = getMDOrNull(Record[2]);
1421 if (Record.size() != 6)
1424 IsDistinct = Record[0];
1427 (Context, getMDOrNull(Record[1]),
1428 getMDString(Record[2]), getMDString(Record[3]),
1428 getMDString(Record[2]), getMDString(Record[3]),
1429 getMDString(Record[4]), getMDString(Record[5]))),
1429 getMDString(Record[4]), getMDString(Record[5]))),
1436 if (Record.size() != 3 && Record.size() != 5 && Record.size() != 6)
1436 if (Record.size() != 3 && Record.size() != 5 && Record.size() != 6)
1436 if (Record.size() != 3 && Record.size() != 5 && Record.size() != 6)
1439 IsDistinct = Record[0];
1446 if (Record.size() > 4 && Record[3] && Record[4])
1446 if (Record.size() > 4 && Record[3] && Record[4])
1446 if (Record.size() > 4 && Record[3] && Record[4])
1447 Checksum.emplace(static_cast<DIFile::ChecksumKind>(Record[3]),
1448 getMDString(Record[4]));
1452 (Context, getMDString(Record[1]), getMDString(Record[2]), Checksum,
1452 (Context, getMDString(Record[1]), getMDString(Record[2]), Checksum,
1453 Record.size() > 5 ? Optional<MDString *>(getMDString(Record[5]))
1453 Record.size() > 5 ? Optional<MDString *>(getMDString(Record[5]))
1460 if (Record.size() < 14 || Record.size() > 19)
1460 if (Record.size() < 14 || Record.size() > 19)
1467 Context, Record[1], getMDOrNull(Record[2]), getMDString(Record[3]),
1467 Context, Record[1], getMDOrNull(Record[2]), getMDString(Record[3]),
1467 Context, Record[1], getMDOrNull(Record[2]), getMDString(Record[3]),
1468 Record[4], getMDString(Record[5]), Record[6], getMDString(Record[7]),
1468 Record[4], getMDString(Record[5]), Record[6], getMDString(Record[7]),
1468 Record[4], getMDString(Record[5]), Record[6], getMDString(Record[7]),
1468 Record[4], getMDString(Record[5]), Record[6], getMDString(Record[7]),
1469 Record[8], getMDOrNull(Record[9]), getMDOrNull(Record[10]),
1469 Record[8], getMDOrNull(Record[9]), getMDOrNull(Record[10]),
1469 Record[8], getMDOrNull(Record[9]), getMDOrNull(Record[10]),
1470 getMDOrNull(Record[12]), getMDOrNull(Record[13]),
1470 getMDOrNull(Record[12]), getMDOrNull(Record[13]),
1471 Record.size() <= 15 ? nullptr : getMDOrNull(Record[15]),
1471 Record.size() <= 15 ? nullptr : getMDOrNull(Record[15]),
1472 Record.size() <= 14 ? 0 : Record[14],
1472 Record.size() <= 14 ? 0 : Record[14],
1473 Record.size() <= 16 ? true : Record[16],
1473 Record.size() <= 16 ? true : Record[16],
1474 Record.size() <= 17 ? false : Record[17],
1474 Record.size() <= 17 ? false : Record[17],
1475 Record.size() <= 18 ? 0 : Record[18],
1475 Record.size() <= 18 ? 0 : Record[18],
1476 Record.size() <= 19 ? 0 : Record[19]);
1476 Record.size() <= 19 ? 0 : Record[19]);
1482 if (Metadata *SPs = getMDOrNullWithoutPlaceholders(Record[11]))
1487 if (Record.size() < 18 || Record.size() > 21)
1487 if (Record.size() < 18 || Record.size() > 21)
1490 bool HasSPFlags = Record[0] & 4;
1495 Flags = static_cast<DINode::DIFlags>(Record[11 + 2]);
1497 Flags = static_cast<DINode::DIFlags>(Record[11]);
1498 SPFlags = static_cast<DISubprogram::DISPFlags>(Record[9]);
1515 /*IsLocalToUnit=*/Record[7], /*IsDefinition=*/Record[8],
1515 /*IsLocalToUnit=*/Record[7], /*IsDefinition=*/Record[8],
1516 /*IsOptimized=*/Record[14], /*Virtuality=*/Record[11],
1516 /*IsOptimized=*/Record[14], /*Virtuality=*/Record[11],
1520 IsDistinct = (Record[0] & 1) || (SPFlags & DISubprogram::SPFlagDefinition);
1526 bool HasUnit = Record[0] & 2;
1527 if (!HasSPFlags && HasUnit && Record.size() < 19)
1540 if (Record.size() >= 19) {
1544 HasThisAdj = Record.size() >= 20;
1545 HasThrownTypes = Record.size() >= 21;
1547 Metadata *CUorFn = getMDOrNull(Record[12 + OffsetB]);
1551 getDITypeRefOrNull(Record[1]), // scope
1552 getMDString(Record[2]), // name
1553 getMDString(Record[3]), // linkageName
1554 getMDOrNull(Record[4]), // file
1555 Record[5], // line
1556 getMDOrNull(Record[6]), // type
1557 Record[7 + OffsetA], // scopeLine
1558 getDITypeRefOrNull(Record[8 + OffsetA]), // containingType
1559 Record[10 + OffsetA], // virtualIndex
1560 HasThisAdj ? Record[16 + OffsetB] : 0, // thisAdjustment
1564 getMDOrNull(Record[13 + OffsetB]), // templateParams
1565 getMDOrNull(Record[14 + OffsetB]), // declaration
1566 getMDOrNull(Record[15 + OffsetB]), // retainedNodes
1567 HasThrownTypes ? getMDOrNull(Record[17 + OffsetB])
1588 if (Record.size() != 5)
1591 IsDistinct = Record[0];
1594 (Context, getMDOrNull(Record[1]),
1595 getMDOrNull(Record[2]), Record[3], Record[4])),
1595 getMDOrNull(Record[2]), Record[3], Record[4])),
1595 getMDOrNull(Record[2]), Record[3], Record[4])),
1601 if (Record.size() != 4)
1604 IsDistinct = Record[0];
1607 (Context, getMDOrNull(Record[1]),
1608 getMDOrNull(Record[2]), Record[3])),
1608 getMDOrNull(Record[2]), Record[3])),
1614 IsDistinct = Record[0] & 1;
1617 (Context, getMDOrNull(Record[1]),
1618 getMDOrNull(Record[2]), getMDString(Record[3]),
1618 getMDOrNull(Record[2]), getMDString(Record[3]),
1619 getMDOrNull(Record[4]), Record[5])),
1619 getMDOrNull(Record[4]), Record[5])),
1627 if (Record.size() == 3)
1628 Name = getMDString(Record[2]);
1629 else if (Record.size() == 5)
1630 Name = getMDString(Record[3]);
1634 IsDistinct = Record[0] & 1;
1635 bool ExportSymbols = Record[0] & 2;
1638 (Context, getMDOrNull(Record[1]), Name, ExportSymbols)),
1644 if (Record.size() != 5)
1647 IsDistinct = Record[0];
1650 (Context, Record[1], Record[2], getMDString(Record[3]),
1650 (Context, Record[1], Record[2], getMDString(Record[3]),
1650 (Context, Record[1], Record[2], getMDString(Record[3]),
1651 getMDString(Record[4]))),
1657 if (Record.size() != 5)
1660 IsDistinct = Record[0];
1663 (Context, Record[1], Record[2], getMDOrNull(Record[3]),
1663 (Context, Record[1], Record[2], getMDOrNull(Record[3]),
1663 (Context, Record[1], Record[2], getMDOrNull(Record[3]),
1664 getMDOrNull(Record[4]))),
1670 if (Record.size() != 3)
1673 IsDistinct = Record[0];
1675 (Context, getMDString(Record[1]),
1676 getDITypeRefOrNull(Record[2]))),
1682 if (Record.size() != 5)
1685 IsDistinct = Record[0];
1688 (Context, Record[1], getMDString(Record[2]),
1688 (Context, Record[1], getMDString(Record[2]),
1689 getDITypeRefOrNull(Record[3]),
1690 getMDOrNull(Record[4]))),
1696 if (Record.size() < 11 || Record.size() > 13)
1696 if (Record.size() < 11 || Record.size() > 13)
1699 IsDistinct = Record[0] & 1;
1700 unsigned Version = Record[0] >> 1;
1706 (Context, getMDOrNull(Record[1]), getMDString(Record[2]),
1706 (Context, getMDOrNull(Record[1]), getMDString(Record[2]),
1707 getMDString(Record[3]), getMDOrNull(Record[4]), Record[5],
1707 getMDString(Record[3]), getMDOrNull(Record[4]), Record[5],
1707 getMDString(Record[3]), getMDOrNull(Record[4]), Record[5],
1708 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
1708 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
1708 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
1709 getMDOrNull(Record[9]), getMDOrNull(Record[10]), Record[11])),
1709 getMDOrNull(Record[9]), getMDOrNull(Record[10]), Record[11])),
1709 getMDOrNull(Record[9]), getMDOrNull(Record[10]), Record[11])),
1718 (Context, getMDOrNull(Record[1]),
1719 getMDString(Record[2]), getMDString(Record[3]),
1719 getMDString(Record[2]), getMDString(Record[3]),
1720 getMDOrNull(Record[4]), Record[5],
1720 getMDOrNull(Record[4]), Record[5],
1721 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
1721 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
1721 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
1722 getMDOrNull(Record[10]), nullptr, Record[11])),
1722 getMDOrNull(Record[10]), nullptr, Record[11])),
1730 Metadata *Expr = getMDOrNull(Record[9]);
1732 if (Record.size() > 11) {
1733 if (Record[11] > (uint64_t)std::numeric_limits<uint32_t>::max())
1735 AlignInBits = Record[11];
1752 (Context, getMDOrNull(Record[1]), getMDString(Record[2]),
1752 (Context, getMDOrNull(Record[1]), getMDString(Record[2]),
1753 getMDString(Record[3]), getMDOrNull(Record[4]), Record[5],
1753 getMDString(Record[3]), getMDOrNull(Record[4]), Record[5],
1753 getMDString(Record[3]), getMDOrNull(Record[4]), Record[5],
1754 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
1754 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
1754 getDITypeRefOrNull(Record[6]), Record[7], Record[8],
1755 getMDOrNull(Record[10]), nullptr, AlignInBits));
1774 if (Record.size() < 8 || Record.size() > 10)
1774 if (Record.size() < 8 || Record.size() > 10)
1777 IsDistinct = Record[0] & 1;
1778 bool HasAlignment = Record[0] & 2;
1782 bool HasTag = !HasAlignment && Record.size() > 8;
1783 DINode::DIFlags Flags = static_cast<DINode::DIFlags>(Record[7 + HasTag]);
1786 if (Record[8 + HasTag] > (uint64_t)std::numeric_limits<uint32_t>::max())
1788 AlignInBits = Record[8 + HasTag];
1792 (Context, getMDOrNull(Record[1 + HasTag]),
1793 getMDString(Record[2 + HasTag]),
1794 getMDOrNull(Record[3 + HasTag]), Record[4 + HasTag],
1794 getMDOrNull(Record[3 + HasTag]), Record[4 + HasTag],
1795 getDITypeRefOrNull(Record[5 + HasTag]),
1796 Record[6 + HasTag], Flags, AlignInBits)),
1802 if (Record.size() != 5)
1805 IsDistinct = Record[0] & 1;
1808 (Context, getMDOrNull(Record[1]),
1809 getMDString(Record[2]),
1810 getMDOrNull(Record[3]), Record[4])),
1810 getMDOrNull(Record[3]), Record[4])),
1816 if (Record.size() < 1)
1819 IsDistinct = Record[0] & 1;
1820 uint64_t Version = Record[0] >> 1;
1821 auto Elts = MutableArrayRef<uint64_t>(Record).slice(1);
1833 if (Record.size() != 3)
1836 IsDistinct = Record[0];
1837 Metadata *Expr = getMDOrNull(Record[2]);
1842 (Context, getMDOrNull(Record[1]), Expr)),
1848 if (Record.size() != 8)
1851 IsDistinct = Record[0];
1854 (Context, getMDString(Record[1]),
1855 getMDOrNull(Record[2]), Record[3],
1855 getMDOrNull(Record[2]), Record[3],
1856 getMDString(Record[4]), getMDString(Record[5]),
1856 getMDString(Record[4]), getMDString(Record[5]),
1857 Record[6], getDITypeRefOrNull(Record[7]))),
1857 Record[6], getDITypeRefOrNull(Record[7]))),
1863 if (Record.size() != 6 && Record.size() != 7)
1863 if (Record.size() != 6 && Record.size() != 7)
1866 IsDistinct = Record[0];
1867 bool HasFile = (Record.size() == 7);
1870 (Context, Record[1], getMDOrNull(Record[2]),
1870 (Context, Record[1], getMDOrNull(Record[2]),
1871 getDITypeRefOrNull(Record[3]),
1872 HasFile ? getMDOrNull(Record[6]) : nullptr,
1873 HasFile ? Record[4] : 0, getMDString(Record[5]))),
1873 HasFile ? Record[4] : 0, getMDString(Record[5]))),
1879 std::string String(Record.begin(), Record.end());
1879 std::string String(Record.begin(), Record.end());
1895 if (Error Err = parseMetadataStrings(Record, Blob, CreateNextMDString))
1900 if (Record.size() % 2 == 0)
1902 unsigned ValueID = Record[0];
1907 *GO, ArrayRef<uint64_t>(Record).slice(1)))
1914 if (Error Err = parseMetadataKindRecord(Record))