• Home
  • Raw
  • Download

Lines Matching full:record

356   /// Read a value/type pair out of the specified record from slot 'Slot'.
357 /// Increment Slot past the number of slots used in the record. Return true on
359 bool getValueTypePair(SmallVectorImpl<uint64_t> &Record, unsigned &Slot, in getValueTypePair() argument
361 if (Slot == Record.size()) return true; in getValueTypePair()
362 unsigned ValNo = (unsigned)Record[Slot++]; in getValueTypePair()
372 if (Slot == Record.size()) in getValueTypePair()
375 unsigned TypeNo = (unsigned)Record[Slot++]; in getValueTypePair()
380 /// Read a value out of the specified record from slot 'Slot'. Increment Slot
381 /// past the number of slots used by the value in the record. Return true if
383 bool popValue(SmallVectorImpl<uint64_t> &Record, unsigned &Slot, in popValue() argument
385 if (getValue(Record, Slot, InstNum, Ty, ResVal)) in popValue()
387 // All values currently take a single record slot. in popValue()
393 bool getValue(SmallVectorImpl<uint64_t> &Record, unsigned Slot, in getValue() argument
395 ResVal = getValue(Record, Slot, InstNum, Ty); in getValue()
401 Value *getValue(SmallVectorImpl<uint64_t> &Record, unsigned Slot, in getValue() argument
403 if (Slot == Record.size()) return nullptr; in getValue()
404 unsigned ValNo = (unsigned)Record[Slot]; in getValue()
412 Value *getValueSigned(SmallVectorImpl<uint64_t> &Record, unsigned Slot, in getValueSigned() argument
414 if (Slot == Record.size()) return nullptr; in getValueSigned()
415 unsigned ValNo = (unsigned)decodeSignRotatedValue(Record[Slot]); in getValueSigned()
435 ErrorOr<Value *> recordValue(SmallVectorImpl<uint64_t> &Record,
447 std::error_code parseMetadataStrings(ArrayRef<uint64_t> Record,
451 std::error_code parseMetadataKindRecord(SmallVectorImpl<uint64_t> &Record);
454 ArrayRef<uint64_t> Record);
492 /// Set to the offset of the VST recorded in the MODULE_CODE_VSTOFFSET record.
512 /// Original source file name recorded in a bitcode record.
657 /// Convert a string from a record into an std::string, return true on failure.
659 static bool convertToString(ArrayRef<uint64_t> Record, unsigned Idx, in convertToString() argument
661 if (Idx > Record.size()) in convertToString()
664 for (unsigned i = Idx, e = Record.size(); i != e; ++i) in convertToString()
665 Result += (char)Record[i]; in convertToString()
1311 return error("Invalid record"); in parseAttributeBlock()
1316 SmallVector<uint64_t, 64> Record; in parseAttributeBlock() local
1330 case BitstreamEntry::Record: in parseAttributeBlock()
1335 // Read a record. in parseAttributeBlock()
1336 Record.clear(); in parseAttributeBlock()
1337 switch (Stream.readRecord(Entry.ID, Record)) { in parseAttributeBlock()
1342 if (Record.size() & 1) in parseAttributeBlock()
1343 return error("Invalid record"); in parseAttributeBlock()
1345 for (unsigned i = 0, e = Record.size(); i != e; i += 2) { in parseAttributeBlock()
1347 decodeLLVMAttributesForBitcode(B, Record[i+1]); in parseAttributeBlock()
1348 Attrs.push_back(AttributeSet::get(Context, Record[i], B)); in parseAttributeBlock()
1356 for (unsigned i = 0, e = Record.size(); i != e; ++i) in parseAttributeBlock()
1357 Attrs.push_back(MAttributeGroups[Record[i]]); in parseAttributeBlock()
1500 return error("Invalid record"); in parseAttributeGroupBlock()
1505 SmallVector<uint64_t, 64> Record; in parseAttributeGroupBlock() local
1517 case BitstreamEntry::Record: in parseAttributeGroupBlock()
1522 // Read a record. in parseAttributeGroupBlock()
1523 Record.clear(); in parseAttributeGroupBlock()
1524 switch (Stream.readRecord(Entry.ID, Record)) { in parseAttributeGroupBlock()
1528 if (Record.size() < 3) in parseAttributeGroupBlock()
1529 return error("Invalid record"); in parseAttributeGroupBlock()
1531 uint64_t GrpID = Record[0]; in parseAttributeGroupBlock()
1532 uint64_t Idx = Record[1]; // Index of the object this attribute refers to. in parseAttributeGroupBlock()
1535 for (unsigned i = 2, e = Record.size(); i != e; ++i) { in parseAttributeGroupBlock()
1536 if (Record[i] == 0) { // Enum attribute in parseAttributeGroupBlock()
1538 if (std::error_code EC = parseAttrKind(Record[++i], &Kind)) in parseAttributeGroupBlock()
1542 } else if (Record[i] == 1) { // Integer attribute in parseAttributeGroupBlock()
1544 if (std::error_code EC = parseAttrKind(Record[++i], &Kind)) in parseAttributeGroupBlock()
1547 B.addAlignmentAttr(Record[++i]); in parseAttributeGroupBlock()
1549 B.addStackAlignmentAttr(Record[++i]); in parseAttributeGroupBlock()
1551 B.addDereferenceableAttr(Record[++i]); in parseAttributeGroupBlock()
1553 B.addDereferenceableOrNullAttr(Record[++i]); in parseAttributeGroupBlock()
1555 B.addAllocSizeAttrFromRawRepr(Record[++i]); in parseAttributeGroupBlock()
1557 assert((Record[i] == 3 || Record[i] == 4) && in parseAttributeGroupBlock()
1559 bool HasValue = (Record[i++] == 4); in parseAttributeGroupBlock()
1563 while (Record[i] != 0 && i != e) in parseAttributeGroupBlock()
1564 KindStr += Record[i++]; in parseAttributeGroupBlock()
1565 assert(Record[i] == 0 && "Kind string not null terminated"); in parseAttributeGroupBlock()
1570 while (Record[i] != 0 && i != e) in parseAttributeGroupBlock()
1571 ValStr += Record[i++]; in parseAttributeGroupBlock()
1572 assert(Record[i] == 0 && "Value string not null terminated"); in parseAttributeGroupBlock()
1588 return error("Invalid record"); in parseTypeTable()
1597 SmallVector<uint64_t, 64> Record; in parseTypeTableBody() local
1614 case BitstreamEntry::Record: in parseTypeTableBody()
1619 // Read a record. in parseTypeTableBody()
1620 Record.clear(); in parseTypeTableBody()
1622 switch (Stream.readRecord(Entry.ID, Record)) { in parseTypeTableBody()
1628 if (Record.size() < 1) in parseTypeTableBody()
1629 return error("Invalid record"); in parseTypeTableBody()
1630 TypeList.resize(Record[0]); in parseTypeTableBody()
1666 if (Record.size() < 1) in parseTypeTableBody()
1667 return error("Invalid record"); in parseTypeTableBody()
1669 uint64_t NumBits = Record[0]; in parseTypeTableBody()
1678 if (Record.size() < 1) in parseTypeTableBody()
1679 return error("Invalid record"); in parseTypeTableBody()
1681 if (Record.size() == 2) in parseTypeTableBody()
1682 AddressSpace = Record[1]; in parseTypeTableBody()
1683 ResultTy = getTypeByID(Record[0]); in parseTypeTableBody()
1693 if (Record.size() < 3) in parseTypeTableBody()
1694 return error("Invalid record"); in parseTypeTableBody()
1696 for (unsigned i = 3, e = Record.size(); i != e; ++i) { in parseTypeTableBody()
1697 if (Type *T = getTypeByID(Record[i])) in parseTypeTableBody()
1703 ResultTy = getTypeByID(Record[2]); in parseTypeTableBody()
1704 if (!ResultTy || ArgTys.size() < Record.size()-3) in parseTypeTableBody()
1707 ResultTy = FunctionType::get(ResultTy, ArgTys, Record[0]); in parseTypeTableBody()
1712 if (Record.size() < 2) in parseTypeTableBody()
1713 return error("Invalid record"); in parseTypeTableBody()
1715 for (unsigned i = 2, e = Record.size(); i != e; ++i) { in parseTypeTableBody()
1716 if (Type *T = getTypeByID(Record[i])) { in parseTypeTableBody()
1725 ResultTy = getTypeByID(Record[1]); in parseTypeTableBody()
1726 if (!ResultTy || ArgTys.size() < Record.size()-2) in parseTypeTableBody()
1729 ResultTy = FunctionType::get(ResultTy, ArgTys, Record[0]); in parseTypeTableBody()
1733 if (Record.size() < 1) in parseTypeTableBody()
1734 return error("Invalid record"); in parseTypeTableBody()
1736 for (unsigned i = 1, e = Record.size(); i != e; ++i) { in parseTypeTableBody()
1737 if (Type *T = getTypeByID(Record[i])) in parseTypeTableBody()
1742 if (EltTys.size() != Record.size()-1) in parseTypeTableBody()
1744 ResultTy = StructType::get(Context, EltTys, Record[0]); in parseTypeTableBody()
1748 if (convertToString(Record, 0, TypeName)) in parseTypeTableBody()
1749 return error("Invalid record"); in parseTypeTableBody()
1753 if (Record.size() < 1) in parseTypeTableBody()
1754 return error("Invalid record"); in parseTypeTableBody()
1769 for (unsigned i = 1, e = Record.size(); i != e; ++i) { in parseTypeTableBody()
1770 if (Type *T = getTypeByID(Record[i])) in parseTypeTableBody()
1775 if (EltTys.size() != Record.size()-1) in parseTypeTableBody()
1776 return error("Invalid record"); in parseTypeTableBody()
1777 Res->setBody(EltTys, Record[0]); in parseTypeTableBody()
1782 if (Record.size() != 1) in parseTypeTableBody()
1783 return error("Invalid record"); in parseTypeTableBody()
1800 if (Record.size() < 2) in parseTypeTableBody()
1801 return error("Invalid record"); in parseTypeTableBody()
1802 ResultTy = getTypeByID(Record[1]); in parseTypeTableBody()
1805 ResultTy = ArrayType::get(ResultTy, Record[0]); in parseTypeTableBody()
1808 if (Record.size() < 2) in parseTypeTableBody()
1809 return error("Invalid record"); in parseTypeTableBody()
1810 if (Record[0] == 0) in parseTypeTableBody()
1812 ResultTy = getTypeByID(Record[1]); in parseTypeTableBody()
1815 ResultTy = VectorType::get(ResultTy, Record[0]); in parseTypeTableBody()
1831 return error("Invalid record"); in parseOperandBundleTags()
1836 SmallVector<uint64_t, 64> Record; in parseOperandBundleTags() local
1847 case BitstreamEntry::Record: in parseOperandBundleTags()
1854 if (Stream.readRecord(Entry.ID, Record) != bitc::OPERAND_BUNDLE_TAG) in parseOperandBundleTags()
1855 return error("Invalid record"); in parseOperandBundleTags()
1859 if (convertToString(Record, 0, BundleTags.back())) in parseOperandBundleTags()
1860 return error("Invalid record"); in parseOperandBundleTags()
1861 Record.clear(); in parseOperandBundleTags()
1865 /// Associate a value with its name from the given index in the provided record.
1866 ErrorOr<Value *> BitcodeReader::recordValue(SmallVectorImpl<uint64_t> &Record, in recordValue() argument
1869 if (convertToString(Record, NameIndex, ValueName)) in recordValue()
1870 return error("Invalid record"); in recordValue()
1871 unsigned ValueID = Record[0]; in recordValue()
1873 return error("Invalid record"); in recordValue()
1938 return error("Invalid record"); in parseValueSymbolTable()
1940 SmallVector<uint64_t, 64> Record; in parseValueSymbolTable() local
1957 case BitstreamEntry::Record: in parseValueSymbolTable()
1962 // Read a record. in parseValueSymbolTable()
1963 Record.clear(); in parseValueSymbolTable()
1964 switch (Stream.readRecord(Entry.ID, Record)) { in parseValueSymbolTable()
1968 ErrorOr<Value *> ValOrErr = recordValue(Record, 1, TT); in parseValueSymbolTable()
1976 ErrorOr<Value *> ValOrErr = recordValue(Record, 2, TT); in parseValueSymbolTable()
1991 uint64_t FuncWordOffset = Record[1]; in parseValueSymbolTable()
2004 if (convertToString(Record, 1, ValueName)) in parseValueSymbolTable()
2005 return error("Invalid record"); in parseValueSymbolTable()
2006 BasicBlock *BB = getBasicBlock(Record[0]); in parseValueSymbolTable()
2008 return error("Invalid record"); in parseValueSymbolTable()
2018 /// Parse a single METADATA_KIND record, inserting result in MDKindMap.
2020 BitcodeReader::parseMetadataKindRecord(SmallVectorImpl<uint64_t> &Record) { in parseMetadataKindRecord() argument
2021 if (Record.size() < 2) in parseMetadataKindRecord()
2022 return error("Invalid record"); in parseMetadataKindRecord()
2024 unsigned Kind = Record[0]; in parseMetadataKindRecord()
2025 SmallString<8> Name(Record.begin() + 1, Record.end()); in parseMetadataKindRecord()
2035 std::error_code BitcodeReader::parseMetadataStrings(ArrayRef<uint64_t> Record, in parseMetadataStrings() argument
2039 // record. The strings are concatenated and stored in a blob along with in parseMetadataStrings()
2041 if (Record.size() != 2) in parseMetadataStrings()
2042 return error("Invalid record: metadata strings layout"); in parseMetadataStrings()
2044 unsigned NumStrings = Record[0]; in parseMetadataStrings()
2045 unsigned StringsOffset = Record[1]; in parseMetadataStrings()
2047 return error("Invalid record: metadata strings with no strings"); in parseMetadataStrings()
2049 return error("Invalid record: metadata strings corrupt offset"); in parseMetadataStrings()
2062 return error("Invalid record: metadata strings bad length"); in parseMetadataStrings()
2066 return error("Invalid record: metadata strings truncated chars"); in parseMetadataStrings()
2114 return error("Invalid record"); in parseMetadata()
2117 SmallVector<uint64_t, 64> Record; in parseMetadata() local
2171 case BitstreamEntry::Record: in parseMetadata()
2176 // Read a record. in parseMetadata()
2177 Record.clear(); in parseMetadata()
2179 unsigned Code = Stream.readRecord(Entry.ID, Record, &Blob); in parseMetadata()
2186 SmallString<8> Name(Record.begin(), Record.end()); in parseMetadata()
2187 Record.clear(); in parseMetadata()
2190 unsigned NextBitCode = Stream.readRecord(Code, Record); in parseMetadata()
2195 unsigned Size = Record.size(); in parseMetadata()
2198 MDNode *MD = MetadataList.getMDNodeFwdRefOrNull(Record[i]); in parseMetadata()
2200 return error("Invalid record"); in parseMetadata()
2207 // This is a LocalAsMetadata record, the only type of function-local in parseMetadata()
2209 if (Record.size() % 2 == 1) in parseMetadata()
2210 return error("Invalid record"); in parseMetadata()
2212 // If this isn't a LocalAsMetadata record, we're dropping it. This used in parseMetadata()
2217 if (Record.size() != 2) { in parseMetadata()
2222 Type *Ty = getTypeByID(Record[0]); in parseMetadata()
2229 LocalAsMetadata::get(ValueList.getValueFwdRef(Record[1], Ty)), in parseMetadata()
2235 if (Record.size() % 2 == 1) in parseMetadata()
2236 return error("Invalid record"); in parseMetadata()
2238 unsigned Size = Record.size(); in parseMetadata()
2241 Type *Ty = getTypeByID(Record[i]); in parseMetadata()
2243 return error("Invalid record"); in parseMetadata()
2245 Elts.push_back(getMD(Record[i + 1])); in parseMetadata()
2248 ValueAsMetadata::get(ValueList.getValueFwdRef(Record[i + 1], Ty)); in parseMetadata()
2259 if (Record.size() != 2) in parseMetadata()
2260 return error("Invalid record"); in parseMetadata()
2262 Type *Ty = getTypeByID(Record[0]); in parseMetadata()
2264 return error("Invalid record"); in parseMetadata()
2267 ValueAsMetadata::get(ValueList.getValueFwdRef(Record[1], Ty)), in parseMetadata()
2276 Elts.reserve(Record.size()); in parseMetadata()
2277 for (unsigned ID : Record) in parseMetadata()
2285 if (Record.size() != 5) in parseMetadata()
2286 return error("Invalid record"); in parseMetadata()
2288 IsDistinct = Record[0]; in parseMetadata()
2289 unsigned Line = Record[1]; in parseMetadata()
2290 unsigned Column = Record[2]; in parseMetadata()
2291 Metadata *Scope = getMD(Record[3]); in parseMetadata()
2292 Metadata *InlinedAt = getMDOrNull(Record[4]); in parseMetadata()
2300 if (Record.size() < 4) in parseMetadata()
2301 return error("Invalid record"); in parseMetadata()
2303 IsDistinct = Record[0]; in parseMetadata()
2304 unsigned Tag = Record[1]; in parseMetadata()
2305 unsigned Version = Record[2]; in parseMetadata()
2308 return error("Invalid record"); in parseMetadata()
2310 auto *Header = getMDString(Record[3]); in parseMetadata()
2312 for (unsigned I = 4, E = Record.size(); I != E; ++I) in parseMetadata()
2313 DwarfOps.push_back(getMDOrNull(Record[I])); in parseMetadata()
2320 if (Record.size() != 3) in parseMetadata()
2321 return error("Invalid record"); in parseMetadata()
2323 IsDistinct = Record[0]; in parseMetadata()
2326 (Context, Record[1], unrotateSign(Record[2]))), in parseMetadata()
2331 if (Record.size() != 3) in parseMetadata()
2332 return error("Invalid record"); in parseMetadata()
2334 IsDistinct = Record[0]; in parseMetadata()
2336 GET_OR_DISTINCT(DIEnumerator, (Context, unrotateSign(Record[1]), in parseMetadata()
2337 getMDString(Record[2]))), in parseMetadata()
2342 if (Record.size() != 6) in parseMetadata()
2343 return error("Invalid record"); in parseMetadata()
2345 IsDistinct = Record[0]; in parseMetadata()
2348 (Context, Record[1], getMDString(Record[2]), in parseMetadata()
2349 Record[3], Record[4], Record[5])), in parseMetadata()
2354 if (Record.size() != 12) in parseMetadata()
2355 return error("Invalid record"); in parseMetadata()
2357 IsDistinct = Record[0]; in parseMetadata()
2361 (Context, Record[1], getMDString(Record[2]), in parseMetadata()
2362 getMDOrNull(Record[3]), Record[4], getDITypeRefOrNull(Record[5]), in parseMetadata()
2363 getDITypeRefOrNull(Record[6]), Record[7], Record[8], Record[9], in parseMetadata()
2364 Record[10], getDITypeRefOrNull(Record[11]))), in parseMetadata()
2369 if (Record.size() != 16) in parseMetadata()
2370 return error("Invalid record"); in parseMetadata()
2374 IsDistinct = Record[0] & 0x1; in parseMetadata()
2375 bool IsNotUsedInTypeRef = Record[0] >= 2; in parseMetadata()
2376 unsigned Tag = Record[1]; in parseMetadata()
2377 MDString *Name = getMDString(Record[2]); in parseMetadata()
2378 Metadata *File = getMDOrNull(Record[3]); in parseMetadata()
2379 unsigned Line = Record[4]; in parseMetadata()
2380 Metadata *Scope = getDITypeRefOrNull(Record[5]); in parseMetadata()
2381 Metadata *BaseType = getDITypeRefOrNull(Record[6]); in parseMetadata()
2382 uint64_t SizeInBits = Record[7]; in parseMetadata()
2383 uint64_t AlignInBits = Record[8]; in parseMetadata()
2384 uint64_t OffsetInBits = Record[9]; in parseMetadata()
2385 unsigned Flags = Record[10]; in parseMetadata()
2386 Metadata *Elements = getMDOrNull(Record[11]); in parseMetadata()
2387 unsigned RuntimeLang = Record[12]; in parseMetadata()
2388 Metadata *VTableHolder = getDITypeRefOrNull(Record[13]); in parseMetadata()
2389 Metadata *TemplateParams = getMDOrNull(Record[14]); in parseMetadata()
2390 auto *Identifier = getMDString(Record[15]); in parseMetadata()
2412 if (Record.size() < 3 || Record.size() > 4) in parseMetadata()
2413 return error("Invalid record"); in parseMetadata()
2414 bool IsOldTypeRefArray = Record[0] < 2; in parseMetadata()
2415 unsigned CC = (Record.size() > 3) ? Record[3] : 0; in parseMetadata()
2417 IsDistinct = Record[0] & 0x1; in parseMetadata()
2418 Metadata *Types = getMDOrNull(Record[2]); in parseMetadata()
2423 GET_OR_DISTINCT(DISubroutineType, (Context, Record[1], CC, Types)), in parseMetadata()
2429 if (Record.size() != 6) in parseMetadata()
2430 return error("Invalid record"); in parseMetadata()
2432 IsDistinct = Record[0]; in parseMetadata()
2435 (Context, getMDOrNull(Record[1]), in parseMetadata()
2436 getMDString(Record[2]), getMDString(Record[3]), in parseMetadata()
2437 getMDString(Record[4]), getMDString(Record[5]))), in parseMetadata()
2443 if (Record.size() != 3) in parseMetadata()
2444 return error("Invalid record"); in parseMetadata()
2446 IsDistinct = Record[0]; in parseMetadata()
2448 GET_OR_DISTINCT(DIFile, (Context, getMDString(Record[1]), in parseMetadata()
2449 getMDString(Record[2]))), in parseMetadata()
2454 if (Record.size() < 14 || Record.size() > 16) in parseMetadata()
2455 return error("Invalid record"); in parseMetadata()
2457 // Ignore Record[0], which indicates whether this compile unit is in parseMetadata()
2461 Context, Record[1], getMDOrNull(Record[2]), getMDString(Record[3]), in parseMetadata()
2462 Record[4], getMDString(Record[5]), Record[6], getMDString(Record[7]), in parseMetadata()
2463 Record[8], getMDOrNull(Record[9]), getMDOrNull(Record[10]), in parseMetadata()
2464 getMDOrNull(Record[12]), getMDOrNull(Record[13]), in parseMetadata()
2465 Record.size() <= 15 ? nullptr : getMDOrNull(Record[15]), in parseMetadata()
2466 Record.size() <= 14 ? 0 : Record[14]); in parseMetadata()
2471 if (Metadata *SPs = getMDOrNullWithoutPlaceholders(Record[11])) in parseMetadata()
2476 if (Record.size() < 18 || Record.size() > 20) in parseMetadata()
2477 return error("Invalid record"); in parseMetadata()
2480 (Record[0] & 1) || Record[8]; // All definitions should be distinct. in parseMetadata()
2481 // Version 1 has a Function as Record[15]. in parseMetadata()
2482 // Version 2 has removed Record[15]. in parseMetadata()
2483 // Version 3 has the Unit as Record[15]. in parseMetadata()
2485 bool HasUnit = Record[0] >= 2; in parseMetadata()
2486 if (HasUnit && Record.size() < 19) in parseMetadata()
2487 return error("Invalid record"); in parseMetadata()
2488 Metadata *CUorFn = getMDOrNull(Record[15]); in parseMetadata()
2489 unsigned Offset = Record.size() >= 19 ? 1 : 0; in parseMetadata()
2491 bool HasThisAdj = Record.size() >= 20; in parseMetadata()
2494 getDITypeRefOrNull(Record[1]), // scope in parseMetadata()
2495 getMDString(Record[2]), // name in parseMetadata()
2496 getMDString(Record[3]), // linkageName in parseMetadata()
2497 getMDOrNull(Record[4]), // file in parseMetadata()
2498 Record[5], // line in parseMetadata()
2499 getMDOrNull(Record[6]), // type in parseMetadata()
2500 Record[7], // isLocal in parseMetadata()
2501 Record[8], // isDefinition in parseMetadata()
2502 Record[9], // scopeLine in parseMetadata()
2503 getDITypeRefOrNull(Record[10]), // containingType in parseMetadata()
2504 Record[11], // virtuality in parseMetadata()
2505 Record[12], // virtualIndex in parseMetadata()
2506 HasThisAdj ? Record[19] : 0, // thisAdjustment in parseMetadata()
2507 Record[13], // flags in parseMetadata()
2508 Record[14], // isOptimized in parseMetadata()
2510 getMDOrNull(Record[15 + Offset]), // templateParams in parseMetadata()
2511 getMDOrNull(Record[16 + Offset]), // declaration in parseMetadata()
2512 getMDOrNull(Record[17 + Offset]) // variables in parseMetadata()
2531 if (Record.size() != 5) in parseMetadata()
2532 return error("Invalid record"); in parseMetadata()
2534 IsDistinct = Record[0]; in parseMetadata()
2537 (Context, getMDOrNull(Record[1]), in parseMetadata()
2538 getMDOrNull(Record[2]), Record[3], Record[4])), in parseMetadata()
2543 if (Record.size() != 4) in parseMetadata()
2544 return error("Invalid record"); in parseMetadata()
2546 IsDistinct = Record[0]; in parseMetadata()
2549 (Context, getMDOrNull(Record[1]), in parseMetadata()
2550 getMDOrNull(Record[2]), Record[3])), in parseMetadata()
2555 if (Record.size() != 5) in parseMetadata()
2556 return error("Invalid record"); in parseMetadata()
2558 IsDistinct = Record[0]; in parseMetadata()
2560 GET_OR_DISTINCT(DINamespace, (Context, getMDOrNull(Record[1]), in parseMetadata()
2561 getMDOrNull(Record[2]), in parseMetadata()
2562 getMDString(Record[3]), Record[4])), in parseMetadata()
2567 if (Record.size() != 5) in parseMetadata()
2568 return error("Invalid record"); in parseMetadata()
2570 IsDistinct = Record[0]; in parseMetadata()
2573 (Context, Record[1], Record[2], in parseMetadata()
2574 getMDString(Record[3]), getMDString(Record[4]))), in parseMetadata()
2579 if (Record.size() != 5) in parseMetadata()
2580 return error("Invalid record"); in parseMetadata()
2582 IsDistinct = Record[0]; in parseMetadata()
2585 (Context, Record[1], Record[2], in parseMetadata()
2586 getMDOrNull(Record[3]), getMDOrNull(Record[4]))), in parseMetadata()
2591 if (Record.size() != 3) in parseMetadata()
2592 return error("Invalid record"); in parseMetadata()
2594 IsDistinct = Record[0]; in parseMetadata()
2596 (Context, getMDString(Record[1]), in parseMetadata()
2597 getDITypeRefOrNull(Record[2]))), in parseMetadata()
2602 if (Record.size() != 5) in parseMetadata()
2603 return error("Invalid record"); in parseMetadata()
2605 IsDistinct = Record[0]; in parseMetadata()
2608 (Context, Record[1], getMDString(Record[2]), in parseMetadata()
2609 getDITypeRefOrNull(Record[3]), in parseMetadata()
2610 getMDOrNull(Record[4]))), in parseMetadata()
2615 if (Record.size() != 11) in parseMetadata()
2616 return error("Invalid record"); in parseMetadata()
2618 IsDistinct = Record[0]; in parseMetadata()
2621 (Context, getMDOrNull(Record[1]), in parseMetadata()
2622 getMDString(Record[2]), getMDString(Record[3]), in parseMetadata()
2623 getMDOrNull(Record[4]), Record[5], in parseMetadata()
2624 getDITypeRefOrNull(Record[6]), Record[7], Record[8], in parseMetadata()
2625 getMDOrNull(Record[9]), getMDOrNull(Record[10]))), in parseMetadata()
2631 if (Record.size() < 8 || Record.size() > 10) in parseMetadata()
2632 return error("Invalid record"); in parseMetadata()
2636 IsDistinct = Record[0]; in parseMetadata()
2637 bool HasTag = Record.size() > 8; in parseMetadata()
2640 (Context, getMDOrNull(Record[1 + HasTag]), in parseMetadata()
2641 getMDString(Record[2 + HasTag]), in parseMetadata()
2642 getMDOrNull(Record[3 + HasTag]), Record[4 + HasTag], in parseMetadata()
2643 getDITypeRefOrNull(Record[5 + HasTag]), in parseMetadata()
2644 Record[6 + HasTag], Record[7 + HasTag])), in parseMetadata()
2649 if (Record.size() < 1) in parseMetadata()
2650 return error("Invalid record"); in parseMetadata()
2652 IsDistinct = Record[0]; in parseMetadata()
2655 (Context, makeArrayRef(Record).slice(1))), in parseMetadata()
2660 if (Record.size() != 8) in parseMetadata()
2661 return error("Invalid record"); in parseMetadata()
2663 IsDistinct = Record[0]; in parseMetadata()
2666 (Context, getMDString(Record[1]), in parseMetadata()
2667 getMDOrNull(Record[2]), Record[3], in parseMetadata()
2668 getMDString(Record[4]), getMDString(Record[5]), in parseMetadata()
2669 Record[6], getDITypeRefOrNull(Record[7]))), in parseMetadata()
2674 if (Record.size() != 6) in parseMetadata()
2675 return error("Invalid record"); in parseMetadata()
2677 IsDistinct = Record[0]; in parseMetadata()
2680 (Context, Record[1], getMDOrNull(Record[2]), in parseMetadata()
2681 getDITypeRefOrNull(Record[3]), Record[4], in parseMetadata()
2682 getMDString(Record[5]))), in parseMetadata()
2687 std::string String(Record.begin(), Record.end()); in parseMetadata()
2698 parseMetadataStrings(Record, Blob, NextMetadataNo)) in parseMetadata()
2702 if (Record.size() % 2 == 0) in parseMetadata()
2703 return error("Invalid record"); in parseMetadata()
2704 unsigned ValueID = Record[0]; in parseMetadata()
2706 return error("Invalid record"); in parseMetadata()
2708 parseGlobalObjectAttachment(*GO, ArrayRef<uint64_t>(Record).slice(1)); in parseMetadata()
2714 if (std::error_code EC = parseMetadataKindRecord(Record)) in parseMetadata()
2726 return error("Invalid record"); in parseMetadataKinds()
2728 SmallVector<uint64_t, 64> Record; in parseMetadataKinds() local
2740 case BitstreamEntry::Record: in parseMetadataKinds()
2745 // Read a record. in parseMetadataKinds()
2746 Record.clear(); in parseMetadataKinds()
2747 unsigned Code = Stream.readRecord(Entry.ID, Record); in parseMetadataKinds()
2752 if (std::error_code EC = parseMetadataKindRecord(Record)) in parseMetadataKinds()
2868 return error("Invalid record"); in parseConstants()
2870 SmallVector<uint64_t, 64> Record; in parseConstants() local
2890 case BitstreamEntry::Record: in parseConstants()
2895 // Read a record. in parseConstants()
2896 Record.clear(); in parseConstants()
2899 unsigned BitCode = Stream.readRecord(Entry.ID, Record); in parseConstants()
2906 if (Record.empty()) in parseConstants()
2907 return error("Invalid record"); in parseConstants()
2908 if (Record[0] >= TypeList.size() || !TypeList[Record[0]]) in parseConstants()
2909 return error("Invalid record"); in parseConstants()
2910 if (TypeList[Record[0]] == VoidType) in parseConstants()
2912 CurTy = TypeList[Record[0]]; in parseConstants()
2918 if (!CurTy->isIntegerTy() || Record.empty()) in parseConstants()
2919 return error("Invalid record"); in parseConstants()
2920 V = ConstantInt::get(CurTy, decodeSignRotatedValue(Record[0])); in parseConstants()
2923 if (!CurTy->isIntegerTy() || Record.empty()) in parseConstants()
2924 return error("Invalid record"); in parseConstants()
2927 readWideAPInt(Record, cast<IntegerType>(CurTy)->getBitWidth()); in parseConstants()
2933 if (Record.empty()) in parseConstants()
2934 return error("Invalid record"); in parseConstants()
2937 APInt(16, (uint16_t)Record[0]))); in parseConstants()
2940 APInt(32, (uint32_t)Record[0]))); in parseConstants()
2943 APInt(64, Record[0]))); in parseConstants()
2947 Rearrange[0] = (Record[1] & 0xffffLL) | (Record[0] << 16); in parseConstants()
2948 Rearrange[1] = Record[0] >> 48; in parseConstants()
2953 APInt(128, Record))); in parseConstants()
2956 APInt(128, Record))); in parseConstants()
2963 if (Record.empty()) in parseConstants()
2964 return error("Invalid record"); in parseConstants()
2966 unsigned Size = Record.size(); in parseConstants()
2971 Elts.push_back(ValueList.getConstantFwdRef(Record[i], in parseConstants()
2977 Elts.push_back(ValueList.getConstantFwdRef(Record[i], EltTy)); in parseConstants()
2982 Elts.push_back(ValueList.getConstantFwdRef(Record[i], EltTy)); in parseConstants()
2991 if (Record.empty()) in parseConstants()
2992 return error("Invalid record"); in parseConstants()
2994 SmallString<16> Elts(Record.begin(), Record.end()); in parseConstants()
3000 if (Record.empty()) in parseConstants()
3001 return error("Invalid record"); in parseConstants()
3005 SmallVector<uint8_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3011 SmallVector<uint16_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3017 SmallVector<uint32_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3023 SmallVector<uint64_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3029 SmallVector<uint16_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3035 SmallVector<uint32_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3041 SmallVector<uint64_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3052 if (Record.size() < 3) in parseConstants()
3053 return error("Invalid record"); in parseConstants()
3054 int Opc = getDecodedBinaryOpcode(Record[0], CurTy); in parseConstants()
3058 Constant *LHS = ValueList.getConstantFwdRef(Record[1], CurTy); in parseConstants()
3059 Constant *RHS = ValueList.getConstantFwdRef(Record[2], CurTy); in parseConstants()
3061 if (Record.size() >= 4) { in parseConstants()
3066 if (Record[3] & (1 << bitc::OBO_NO_SIGNED_WRAP)) in parseConstants()
3068 if (Record[3] & (1 << bitc::OBO_NO_UNSIGNED_WRAP)) in parseConstants()
3074 if (Record[3] & (1 << bitc::PEO_EXACT)) in parseConstants()
3083 if (Record.size() < 3) in parseConstants()
3084 return error("Invalid record"); in parseConstants()
3085 int Opc = getDecodedCastOpcode(Record[0]); in parseConstants()
3089 Type *OpTy = getTypeByID(Record[1]); in parseConstants()
3091 return error("Invalid record"); in parseConstants()
3092 Constant *Op = ValueList.getConstantFwdRef(Record[2], OpTy); in parseConstants()
3102 if (Record.size() % 2) in parseConstants()
3103 PointeeType = getTypeByID(Record[OpNum++]); in parseConstants()
3105 while (OpNum != Record.size()) { in parseConstants()
3106 Type *ElTy = getTypeByID(Record[OpNum++]); in parseConstants()
3108 return error("Invalid record"); in parseConstants()
3109 Elts.push_back(ValueList.getConstantFwdRef(Record[OpNum++], ElTy)); in parseConstants()
3129 if (Record.size() < 3) in parseConstants()
3130 return error("Invalid record"); in parseConstants()
3137 if (Value *V = ValueList[Record[0]]) in parseConstants()
3141 V = ConstantExpr::getSelect(ValueList.getConstantFwdRef(Record[0], in parseConstants()
3143 ValueList.getConstantFwdRef(Record[1],CurTy), in parseConstants()
3144 ValueList.getConstantFwdRef(Record[2],CurTy)); in parseConstants()
3149 if (Record.size() < 3) in parseConstants()
3150 return error("Invalid record"); in parseConstants()
3152 dyn_cast_or_null<VectorType>(getTypeByID(Record[0])); in parseConstants()
3154 return error("Invalid record"); in parseConstants()
3155 Constant *Op0 = ValueList.getConstantFwdRef(Record[1], OpTy); in parseConstants()
3157 if (Record.size() == 4) { in parseConstants()
3158 Type *IdxTy = getTypeByID(Record[2]); in parseConstants()
3160 return error("Invalid record"); in parseConstants()
3161 Op1 = ValueList.getConstantFwdRef(Record[3], IdxTy); in parseConstants()
3163 Op1 = ValueList.getConstantFwdRef(Record[2], Type::getInt32Ty(Context)); in parseConstants()
3165 return error("Invalid record"); in parseConstants()
3172 if (Record.size() < 3 || !OpTy) in parseConstants()
3173 return error("Invalid record"); in parseConstants()
3174 Constant *Op0 = ValueList.getConstantFwdRef(Record[0], OpTy); in parseConstants()
3175 Constant *Op1 = ValueList.getConstantFwdRef(Record[1], in parseConstants()
3178 if (Record.size() == 4) { in parseConstants()
3179 Type *IdxTy = getTypeByID(Record[2]); in parseConstants()
3181 return error("Invalid record"); in parseConstants()
3182 Op2 = ValueList.getConstantFwdRef(Record[3], IdxTy); in parseConstants()
3184 Op2 = ValueList.getConstantFwdRef(Record[2], Type::getInt32Ty(Context)); in parseConstants()
3186 return error("Invalid record"); in parseConstants()
3192 if (Record.size() < 3 || !OpTy) in parseConstants()
3193 return error("Invalid record"); in parseConstants()
3194 Constant *Op0 = ValueList.getConstantFwdRef(Record[0], OpTy); in parseConstants()
3195 Constant *Op1 = ValueList.getConstantFwdRef(Record[1], OpTy); in parseConstants()
3198 Constant *Op2 = ValueList.getConstantFwdRef(Record[2], ShufTy); in parseConstants()
3205 dyn_cast_or_null<VectorType>(getTypeByID(Record[0])); in parseConstants()
3206 if (Record.size() < 4 || !RTy || !OpTy) in parseConstants()
3207 return error("Invalid record"); in parseConstants()
3208 Constant *Op0 = ValueList.getConstantFwdRef(Record[1], OpTy); in parseConstants()
3209 Constant *Op1 = ValueList.getConstantFwdRef(Record[2], OpTy); in parseConstants()
3212 Constant *Op2 = ValueList.getConstantFwdRef(Record[3], ShufTy); in parseConstants()
3217 if (Record.size() < 4) in parseConstants()
3218 return error("Invalid record"); in parseConstants()
3219 Type *OpTy = getTypeByID(Record[0]); in parseConstants()
3221 return error("Invalid record"); in parseConstants()
3222 Constant *Op0 = ValueList.getConstantFwdRef(Record[1], OpTy); in parseConstants()
3223 Constant *Op1 = ValueList.getConstantFwdRef(Record[2], OpTy); in parseConstants()
3226 V = ConstantExpr::getFCmp(Record[3], Op0, Op1); in parseConstants()
3228 V = ConstantExpr::getICmp(Record[3], Op0, Op1); in parseConstants()
3234 if (Record.size() < 2) in parseConstants()
3235 return error("Invalid record"); in parseConstants()
3237 bool HasSideEffects = Record[0] & 1; in parseConstants()
3238 bool IsAlignStack = Record[0] >> 1; in parseConstants()
3239 unsigned AsmStrSize = Record[1]; in parseConstants()
3240 if (2+AsmStrSize >= Record.size()) in parseConstants()
3241 return error("Invalid record"); in parseConstants()
3242 unsigned ConstStrSize = Record[2+AsmStrSize]; in parseConstants()
3243 if (3+AsmStrSize+ConstStrSize > Record.size()) in parseConstants()
3244 return error("Invalid record"); in parseConstants()
3247 AsmStr += (char)Record[2+i]; in parseConstants()
3249 ConstrStr += (char)Record[3+AsmStrSize+i]; in parseConstants()
3258 if (Record.size() < 2) in parseConstants()
3259 return error("Invalid record"); in parseConstants()
3261 bool HasSideEffects = Record[0] & 1; in parseConstants()
3262 bool IsAlignStack = (Record[0] >> 1) & 1; in parseConstants()
3263 unsigned AsmDialect = Record[0] >> 2; in parseConstants()
3264 unsigned AsmStrSize = Record[1]; in parseConstants()
3265 if (2+AsmStrSize >= Record.size()) in parseConstants()
3266 return error("Invalid record"); in parseConstants()
3267 unsigned ConstStrSize = Record[2+AsmStrSize]; in parseConstants()
3268 if (3+AsmStrSize+ConstStrSize > Record.size()) in parseConstants()
3269 return error("Invalid record"); in parseConstants()
3272 AsmStr += (char)Record[2+i]; in parseConstants()
3274 ConstrStr += (char)Record[3+AsmStrSize+i]; in parseConstants()
3282 if (Record.size() < 3) in parseConstants()
3283 return error("Invalid record"); in parseConstants()
3284 Type *FnTy = getTypeByID(Record[0]); in parseConstants()
3286 return error("Invalid record"); in parseConstants()
3288 dyn_cast_or_null<Function>(ValueList.getConstantFwdRef(Record[1],FnTy)); in parseConstants()
3290 return error("Invalid record"); in parseConstants()
3295 unsigned BBID = Record[2]; in parseConstants()
3331 return error("Invalid record"); in parseUseLists()
3334 SmallVector<uint64_t, 64> Record; in parseUseLists() local
3344 case BitstreamEntry::Record: in parseUseLists()
3349 // Read a use list record. in parseUseLists()
3350 Record.clear(); in parseUseLists()
3352 switch (Stream.readRecord(Entry.ID, Record)) { in parseUseLists()
3359 unsigned RecordLength = Record.size(); in parseUseLists()
3362 return error("Invalid record"); in parseUseLists()
3363 unsigned ID = Record.back(); in parseUseLists()
3364 Record.pop_back(); in parseUseLists()
3375 if (++NumUses > Record.size()) in parseUseLists()
3377 Order[&U] = Record[NumUses - 1]; in parseUseLists()
3379 if (Order.size() != Record.size() || NumUses > Record.size()) in parseUseLists()
3402 return error("Invalid record"); in rememberAndSkipMetadata()
3438 return error("Invalid record"); in rememberAndSkipFunctionBody()
3473 /// either have an old bitcode file without a VST forward declaration record,
3489 SmallVector<uint64_t, 64> Record; in rememberAndSkipFunctionBodies() local
3512 return error("Invalid record"); in parseBitcodeVersion()
3515 SmallVector<uint64_t, 64> Record; in parseBitcodeVersion() local
3525 case BitstreamEntry::Record: in parseBitcodeVersion()
3530 // Read a record. in parseBitcodeVersion()
3531 Record.clear(); in parseBitcodeVersion()
3532 unsigned BitCode = Stream.readRecord(Entry.ID, Record); in parseBitcodeVersion()
3538 convertToString(Record, 0, ProducerIdentification); in parseBitcodeVersion()
3542 unsigned epoch = (unsigned)Record[0]; in parseBitcodeVersion()
3558 return error("Invalid record"); in parseModule()
3560 SmallVector<uint64_t, 64> Record; in parseModule() local
3578 return error("Invalid record"); in parseModule()
3599 // associated VST forward declaration record (which would have caused in parseModule()
3608 // We must have had a VST forward declaration record, which caused in parseModule()
3612 return error("Invalid record"); in parseModule()
3646 // If we have a VST forward declaration record, make sure we in parseModule()
3654 // Fall through so that we record the NextUnreadBit below. in parseModule()
3659 // If we have a VST forward declaration record, but have already in parseModule()
3666 return error("Invalid record"); in parseModule()
3672 // index in the VST, nor a VST forward declaration record, as in parseModule()
3698 case BitstreamEntry::Record: in parseModule()
3703 // Read a record. in parseModule()
3704 auto BitCode = Stream.readRecord(Entry.ID, Record); in parseModule()
3708 if (Record.size() < 1) in parseModule()
3709 return error("Invalid record"); in parseModule()
3711 unsigned module_version = Record[0]; in parseModule()
3726 if (convertToString(Record, 0, S)) in parseModule()
3727 return error("Invalid record"); in parseModule()
3733 if (convertToString(Record, 0, S)) in parseModule()
3734 return error("Invalid record"); in parseModule()
3740 if (convertToString(Record, 0, S)) in parseModule()
3741 return error("Invalid record"); in parseModule()
3748 if (convertToString(Record, 0, S)) in parseModule()
3749 return error("Invalid record"); in parseModule()
3755 if (convertToString(Record, 0, S)) in parseModule()
3756 return error("Invalid record"); in parseModule()
3762 if (convertToString(Record, 0, S)) in parseModule()
3763 return error("Invalid record"); in parseModule()
3768 if (Record.size() < 2) in parseModule()
3769 return error("Invalid record"); in parseModule()
3770 Comdat::SelectionKind SK = getDecodedComdatSelectionKind(Record[0]); in parseModule()
3771 unsigned ComdatNameSize = Record[1]; in parseModule()
3775 ComdatName += (char)Record[2 + i]; in parseModule()
3786 if (Record.size() < 6) in parseModule()
3787 return error("Invalid record"); in parseModule()
3788 Type *Ty = getTypeByID(Record[0]); in parseModule()
3790 return error("Invalid record"); in parseModule()
3791 bool isConstant = Record[1] & 1; in parseModule()
3792 bool explicitType = Record[1] & 2; in parseModule()
3795 AddressSpace = Record[1] >> 2; in parseModule()
3803 uint64_t RawLinkage = Record[3]; in parseModule()
3806 if (std::error_code EC = parseAlignmentValue(Record[4], Alignment)) in parseModule()
3809 if (Record[5]) { in parseModule()
3810 if (Record[5]-1 >= SectionTable.size()) in parseModule()
3812 Section = SectionTable[Record[5]-1]; in parseModule()
3816 if (Record.size() > 6 && !GlobalValue::isLocalLinkage(Linkage)) in parseModule()
3818 Visibility = getDecodedVisibility(Record[6]); in parseModule()
3821 if (Record.size() > 7) in parseModule()
3822 TLM = getDecodedThreadLocalMode(Record[7]); in parseModule()
3825 if (Record.size() > 8) in parseModule()
3826 UnnamedAddr = getDecodedUnnamedAddrType(Record[8]); in parseModule()
3829 if (Record.size() > 9) in parseModule()
3830 ExternallyInitialized = Record[9]; in parseModule()
3841 if (Record.size() > 10) in parseModule()
3842 NewGV->setDLLStorageClass(getDecodedDLLStorageClass(Record[10])); in parseModule()
3849 if (unsigned InitID = Record[2]) in parseModule()
3852 if (Record.size() > 11) { in parseModule()
3853 if (unsigned ComdatID = Record[11]) { in parseModule()
3868 if (Record.size() < 8) in parseModule()
3869 return error("Invalid record"); in parseModule()
3870 Type *Ty = getTypeByID(Record[0]); in parseModule()
3872 return error("Invalid record"); in parseModule()
3878 auto CC = static_cast<CallingConv::ID>(Record[1]); in parseModule()
3886 bool isProto = Record[2]; in parseModule()
3887 uint64_t RawLinkage = Record[3]; in parseModule()
3889 Func->setAttributes(getAttributes(Record[4])); in parseModule()
3892 if (std::error_code EC = parseAlignmentValue(Record[5], Alignment)) in parseModule()
3895 if (Record[6]) { in parseModule()
3896 if (Record[6]-1 >= SectionTable.size()) in parseModule()
3898 Func->setSection(SectionTable[Record[6]-1]); in parseModule()
3903 Func->setVisibility(getDecodedVisibility(Record[7])); in parseModule()
3904 if (Record.size() > 8 && Record[8]) { in parseModule()
3905 if (Record[8]-1 >= GCTable.size()) in parseModule()
3907 Func->setGC(GCTable[Record[8] - 1]); in parseModule()
3910 if (Record.size() > 9) in parseModule()
3911 UnnamedAddr = getDecodedUnnamedAddrType(Record[9]); in parseModule()
3913 if (Record.size() > 10 && Record[10] != 0) in parseModule()
3914 FunctionPrologues.push_back(std::make_pair(Func, Record[10]-1)); in parseModule()
3916 if (Record.size() > 11) in parseModule()
3917 Func->setDLLStorageClass(getDecodedDLLStorageClass(Record[11])); in parseModule()
3921 if (Record.size() > 12) { in parseModule()
3922 if (unsigned ComdatID = Record[12]) { in parseModule()
3931 if (Record.size() > 13 && Record[13] != 0) in parseModule()
3932 FunctionPrefixes.push_back(std::make_pair(Func, Record[13]-1)); in parseModule()
3934 if (Record.size() > 14 && Record[14] != 0) in parseModule()
3935 FunctionPersonalityFns.push_back(std::make_pair(Func, Record[14] - 1)); in parseModule()
3955 if (Record.size() < (3 + (unsigned)NewRecord)) in parseModule()
3956 return error("Invalid record"); in parseModule()
3958 Type *Ty = getTypeByID(Record[OpNum++]); in parseModule()
3960 return error("Invalid record"); in parseModule()
3970 AddrSpace = Record[OpNum++]; in parseModule()
3973 auto Val = Record[OpNum++]; in parseModule()
3974 auto Linkage = Record[OpNum++]; in parseModule()
3985 if (OpNum != Record.size()) { in parseModule()
3989 NewGA->setVisibility(getDecodedVisibility(Record[VisInd])); in parseModule()
3991 if (OpNum != Record.size()) in parseModule()
3992 NewGA->setDLLStorageClass(getDecodedDLLStorageClass(Record[OpNum++])); in parseModule()
3995 if (OpNum != Record.size()) in parseModule()
3996 NewGA->setThreadLocalMode(getDecodedThreadLocalMode(Record[OpNum++])); in parseModule()
3997 if (OpNum != Record.size()) in parseModule()
3998 NewGA->setUnnamedAddr(getDecodedUnnamedAddrType(Record[OpNum++])); in parseModule()
4006 if (Record.size() < 1 || Record[0] > ValueList.size()) in parseModule()
4007 return error("Invalid record"); in parseModule()
4008 ValueList.shrinkTo(Record[0]); in parseModule()
4012 if (Record.size() < 1) in parseModule()
4013 return error("Invalid record"); in parseModule()
4014 VSTOffset = Record[0]; in parseModule()
4019 if (convertToString(Record, 0, ValueName)) in parseModule()
4020 return error("Invalid record"); in parseModule()
4024 Record.clear(); in parseModule()
4076 return error("Invalid record"); in parseBitcodeInto()
4082 return error("Invalid record"); in parseModuleTriple()
4084 SmallVector<uint64_t, 64> Record; in parseModuleTriple() local
4097 case BitstreamEntry::Record: in parseModuleTriple()
4102 // Read a record. in parseModuleTriple()
4103 switch (Stream.readRecord(Entry.ID, Record)) { in parseModuleTriple()
4107 if (convertToString(Record, 0, S)) in parseModuleTriple()
4108 return error("Invalid record"); in parseModuleTriple()
4113 Record.clear(); in parseModuleTriple()
4146 case BitstreamEntry::Record: in parseTriple()
4181 case BitstreamEntry::Record: in parseIdentificationBlock()
4189 GlobalObject &GO, ArrayRef<uint64_t> Record) { in parseGlobalObjectAttachment() argument
4190 assert(Record.size() % 2 == 0); in parseGlobalObjectAttachment()
4191 for (unsigned I = 0, E = Record.size(); I != E; I += 2) { in parseGlobalObjectAttachment()
4192 auto K = MDKindMap.find(Record[I]); in parseGlobalObjectAttachment()
4195 MDNode *MD = MetadataList.getMDNodeFwdRefOrNull(Record[I + 1]); in parseGlobalObjectAttachment()
4231 case BitstreamEntry::Record: in hasObjCCategory()
4240 return error("Invalid record"); in hasObjCCategoryInModule()
4242 SmallVector<uint64_t, 64> Record; in hasObjCCategoryInModule() local
4253 case BitstreamEntry::Record: in hasObjCCategoryInModule()
4258 // Read a record. in hasObjCCategoryInModule()
4259 switch (Stream.readRecord(Entry.ID, Record)) { in hasObjCCategoryInModule()
4264 if (convertToString(Record, 0, S)) in hasObjCCategoryInModule()
4265 return error("Invalid record"); in hasObjCCategoryInModule()
4273 Record.clear(); in hasObjCCategoryInModule()
4281 return error("Invalid record"); in parseMetadataAttachment()
4283 SmallVector<uint64_t, 64> Record; in parseMetadataAttachment() local
4293 case BitstreamEntry::Record: in parseMetadataAttachment()
4298 // Read a metadata attachment record. in parseMetadataAttachment()
4299 Record.clear(); in parseMetadataAttachment()
4300 switch (Stream.readRecord(Entry.ID, Record)) { in parseMetadataAttachment()
4304 unsigned RecordLength = Record.size(); in parseMetadataAttachment()
4305 if (Record.empty()) in parseMetadataAttachment()
4306 return error("Invalid record"); in parseMetadataAttachment()
4309 if (std::error_code EC = parseGlobalObjectAttachment(F, Record)) in parseMetadataAttachment()
4315 Instruction *Inst = InstructionList[Record[0]]; in parseMetadataAttachment()
4317 unsigned Kind = Record[i]; in parseMetadataAttachment()
4322 Metadata *Node = MetadataList.getMetadataFwdRef(Record[i + 1]); in parseMetadataAttachment()
4363 return error("Invalid record"); in parseFunctionBody()
4394 SmallVector<uint64_t, 64> Record; in parseFunctionBody() local
4408 return error("Invalid record"); in parseFunctionBody()
4434 case BitstreamEntry::Record: in parseFunctionBody()
4439 // Read a record. in parseFunctionBody()
4440 Record.clear(); in parseFunctionBody()
4442 unsigned BitCode = Stream.readRecord(Entry.ID, Record); in parseFunctionBody()
4447 if (Record.size() < 1 || Record[0] == 0) in parseFunctionBody()
4448 return error("Invalid record"); in parseFunctionBody()
4450 FunctionBBs.resize(Record[0]); in parseFunctionBody()
4482 // This record indicates that the last instruction is at the same in parseFunctionBody()
4487 return error("Invalid record"); in parseFunctionBody()
4494 if (!I || Record.size() < 4) in parseFunctionBody()
4495 return error("Invalid record"); in parseFunctionBody()
4497 unsigned Line = Record[0], Col = Record[1]; in parseFunctionBody()
4498 unsigned ScopeID = Record[2], IAID = Record[3]; in parseFunctionBody()
4504 return error("Invalid record"); in parseFunctionBody()
4509 return error("Invalid record"); in parseFunctionBody()
4520 if (getValueTypePair(Record, OpNum, NextValueNo, LHS) || in parseFunctionBody()
4521 popValue(Record, OpNum, NextValueNo, LHS->getType(), RHS) || in parseFunctionBody()
4522 OpNum+1 > Record.size()) in parseFunctionBody()
4523 return error("Invalid record"); in parseFunctionBody()
4525 int Opc = getDecodedBinaryOpcode(Record[OpNum++], LHS->getType()); in parseFunctionBody()
4527 return error("Invalid record"); in parseFunctionBody()
4530 if (OpNum < Record.size()) { in parseFunctionBody()
4535 if (Record[OpNum] & (1 << bitc::OBO_NO_SIGNED_WRAP)) in parseFunctionBody()
4537 if (Record[OpNum] & (1 << bitc::OBO_NO_UNSIGNED_WRAP)) in parseFunctionBody()
4543 if (Record[OpNum] & (1 << bitc::PEO_EXACT)) in parseFunctionBody()
4546 FastMathFlags FMF = getDecodedFastMathFlags(Record[OpNum]); in parseFunctionBody()
4557 if (getValueTypePair(Record, OpNum, NextValueNo, Op) || in parseFunctionBody()
4558 OpNum+2 != Record.size()) in parseFunctionBody()
4559 return error("Invalid record"); in parseFunctionBody()
4561 Type *ResTy = getTypeByID(Record[OpNum]); in parseFunctionBody()
4562 int Opc = getDecodedCastOpcode(Record[OpNum + 1]); in parseFunctionBody()
4564 return error("Invalid record"); in parseFunctionBody()
4589 InBounds = Record[OpNum++]; in parseFunctionBody()
4590 Ty = getTypeByID(Record[OpNum++]); in parseFunctionBody()
4597 if (getValueTypePair(Record, OpNum, NextValueNo, BasePtr)) in parseFunctionBody()
4598 return error("Invalid record"); in parseFunctionBody()
4610 while (OpNum != Record.size()) { in parseFunctionBody()
4612 if (getValueTypePair(Record, OpNum, NextValueNo, Op)) in parseFunctionBody()
4613 return error("Invalid record"); in parseFunctionBody()
4629 if (getValueTypePair(Record, OpNum, NextValueNo, Agg)) in parseFunctionBody()
4630 return error("Invalid record"); in parseFunctionBody()
4632 unsigned RecSize = Record.size(); in parseFunctionBody()
4641 uint64_t Index = Record[OpNum]; in parseFunctionBody()
4668 if (getValueTypePair(Record, OpNum, NextValueNo, Agg)) in parseFunctionBody()
4669 return error("Invalid record"); in parseFunctionBody()
4671 if (getValueTypePair(Record, OpNum, NextValueNo, Val)) in parseFunctionBody()
4672 return error("Invalid record"); in parseFunctionBody()
4674 unsigned RecSize = Record.size(); in parseFunctionBody()
4683 uint64_t Index = Record[OpNum]; in parseFunctionBody()
4714 if (getValueTypePair(Record, OpNum, NextValueNo, TrueVal) || in parseFunctionBody()
4715 popValue(Record, OpNum, NextValueNo, TrueVal->getType(), FalseVal) || in parseFunctionBody()
4716 popValue(Record, OpNum, NextValueNo, Type::getInt1Ty(Context), Cond)) in parseFunctionBody()
4717 return error("Invalid record"); in parseFunctionBody()
4729 if (getValueTypePair(Record, OpNum, NextValueNo, TrueVal) || in parseFunctionBody()
4730 popValue(Record, OpNum, NextValueNo, TrueVal->getType(), FalseVal) || in parseFunctionBody()
4731 getValueTypePair(Record, OpNum, NextValueNo, Cond)) in parseFunctionBody()
4732 return error("Invalid record"); in parseFunctionBody()
4754 if (getValueTypePair(Record, OpNum, NextValueNo, Vec) || in parseFunctionBody()
4755 getValueTypePair(Record, OpNum, NextValueNo, Idx)) in parseFunctionBody()
4756 return error("Invalid record"); in parseFunctionBody()
4767 if (getValueTypePair(Record, OpNum, NextValueNo, Vec)) in parseFunctionBody()
4768 return error("Invalid record"); in parseFunctionBody()
4771 if (popValue(Record, OpNum, NextValueNo, in parseFunctionBody()
4773 getValueTypePair(Record, OpNum, NextValueNo, Idx)) in parseFunctionBody()
4774 return error("Invalid record"); in parseFunctionBody()
4783 if (getValueTypePair(Record, OpNum, NextValueNo, Vec1) || in parseFunctionBody()
4784 popValue(Record, OpNum, NextValueNo, Vec1->getType(), Vec2)) in parseFunctionBody()
4785 return error("Invalid record"); in parseFunctionBody()
4787 if (getValueTypePair(Record, OpNum, NextValueNo, Mask)) in parseFunctionBody()
4788 return error("Invalid record"); in parseFunctionBody()
4805 if (getValueTypePair(Record, OpNum, NextValueNo, LHS) || in parseFunctionBody()
4806 popValue(Record, OpNum, NextValueNo, LHS->getType(), RHS)) in parseFunctionBody()
4807 return error("Invalid record"); in parseFunctionBody()
4809 unsigned PredVal = Record[OpNum]; in parseFunctionBody()
4812 if (IsFP && Record.size() > OpNum+1) in parseFunctionBody()
4813 FMF = getDecodedFastMathFlags(Record[++OpNum]); in parseFunctionBody()
4815 if (OpNum+1 != Record.size()) in parseFunctionBody()
4816 return error("Invalid record"); in parseFunctionBody()
4831 unsigned Size = Record.size(); in parseFunctionBody()
4840 if (getValueTypePair(Record, OpNum, NextValueNo, Op)) in parseFunctionBody()
4841 return error("Invalid record"); in parseFunctionBody()
4842 if (OpNum != Record.size()) in parseFunctionBody()
4843 return error("Invalid record"); in parseFunctionBody()
4850 if (Record.size() != 1 && Record.size() != 3) in parseFunctionBody()
4851 return error("Invalid record"); in parseFunctionBody()
4852 BasicBlock *TrueDest = getBasicBlock(Record[0]); in parseFunctionBody()
4854 return error("Invalid record"); in parseFunctionBody()
4856 if (Record.size() == 1) { in parseFunctionBody()
4861 BasicBlock *FalseDest = getBasicBlock(Record[1]); in parseFunctionBody()
4862 Value *Cond = getValue(Record, 2, NextValueNo, in parseFunctionBody()
4865 return error("Invalid record"); in parseFunctionBody()
4872 if (Record.size() != 1 && Record.size() != 2) in parseFunctionBody()
4873 return error("Invalid record"); in parseFunctionBody()
4876 getValue(Record, Idx++, NextValueNo, Type::getTokenTy(Context)); in parseFunctionBody()
4878 return error("Invalid record"); in parseFunctionBody()
4880 if (Record.size() == 2) { in parseFunctionBody()
4881 UnwindDest = getBasicBlock(Record[Idx++]); in parseFunctionBody()
4883 return error("Invalid record"); in parseFunctionBody()
4891 if (Record.size() != 2) in parseFunctionBody()
4892 return error("Invalid record"); in parseFunctionBody()
4895 getValue(Record, Idx++, NextValueNo, Type::getTokenTy(Context)); in parseFunctionBody()
4897 return error("Invalid record"); in parseFunctionBody()
4898 BasicBlock *BB = getBasicBlock(Record[Idx++]); in parseFunctionBody()
4900 return error("Invalid record"); in parseFunctionBody()
4908 if (Record.size() < 2) in parseFunctionBody()
4909 return error("Invalid record"); in parseFunctionBody()
4914 getValue(Record, Idx++, NextValueNo, Type::getTokenTy(Context)); in parseFunctionBody()
4916 unsigned NumHandlers = Record[Idx++]; in parseFunctionBody()
4920 BasicBlock *BB = getBasicBlock(Record[Idx++]); in parseFunctionBody()
4922 return error("Invalid record"); in parseFunctionBody()
4927 if (Idx + 1 == Record.size()) { in parseFunctionBody()
4928 UnwindDest = getBasicBlock(Record[Idx++]); in parseFunctionBody()
4930 return error("Invalid record"); in parseFunctionBody()
4933 if (Record.size() != Idx) in parseFunctionBody()
4934 return error("Invalid record"); in parseFunctionBody()
4947 if (Record.size() < 2) in parseFunctionBody()
4948 return error("Invalid record"); in parseFunctionBody()
4953 getValue(Record, Idx++, NextValueNo, Type::getTokenTy(Context)); in parseFunctionBody()
4955 unsigned NumArgOperands = Record[Idx++]; in parseFunctionBody()
4960 if (getValueTypePair(Record, Idx, NextValueNo, Val)) in parseFunctionBody()
4961 return error("Invalid record"); in parseFunctionBody()
4965 if (Record.size() != Idx) in parseFunctionBody()
4966 return error("Invalid record"); in parseFunctionBody()
4977 if ((Record[0] >> 16) == SWITCH_INST_MAGIC) { in parseFunctionBody()
4983 Type *OpTy = getTypeByID(Record[1]); in parseFunctionBody()
4986 Value *Cond = getValue(Record, 2, NextValueNo, OpTy); in parseFunctionBody()
4987 BasicBlock *Default = getBasicBlock(Record[3]); in parseFunctionBody()
4989 return error("Invalid record"); in parseFunctionBody()
4991 unsigned NumCases = Record[4]; in parseFunctionBody()
4999 unsigned NumItems = Record[CurIdx++]; in parseFunctionBody()
5001 bool isSingleNumber = Record[CurIdx++]; in parseFunctionBody()
5006 ActiveWords = Record[CurIdx++]; in parseFunctionBody()
5007 Low = readWideAPInt(makeArrayRef(&Record[CurIdx], ActiveWords), in parseFunctionBody()
5014 ActiveWords = Record[CurIdx++]; in parseFunctionBody()
5016 makeArrayRef(&Record[CurIdx], ActiveWords), ValueBitWidth); in parseFunctionBody()
5028 BasicBlock *DestBB = getBasicBlock(Record[CurIdx++]); in parseFunctionBody()
5039 if (Record.size() < 3 || (Record.size() & 1) == 0) in parseFunctionBody()
5040 return error("Invalid record"); in parseFunctionBody()
5041 Type *OpTy = getTypeByID(Record[0]); in parseFunctionBody()
5042 Value *Cond = getValue(Record, 1, NextValueNo, OpTy); in parseFunctionBody()
5043 BasicBlock *Default = getBasicBlock(Record[2]); in parseFunctionBody()
5045 return error("Invalid record"); in parseFunctionBody()
5046 unsigned NumCases = (Record.size()-3)/2; in parseFunctionBody()
5051 dyn_cast_or_null<ConstantInt>(getFnValueByID(Record[3+i*2], OpTy)); in parseFunctionBody()
5052 BasicBlock *DestBB = getBasicBlock(Record[1+3+i*2]); in parseFunctionBody()
5055 return error("Invalid record"); in parseFunctionBody()
5063 if (Record.size() < 2) in parseFunctionBody()
5064 return error("Invalid record"); in parseFunctionBody()
5065 Type *OpTy = getTypeByID(Record[0]); in parseFunctionBody()
5066 Value *Address = getValue(Record, 1, NextValueNo, OpTy); in parseFunctionBody()
5068 return error("Invalid record"); in parseFunctionBody()
5069 unsigned NumDests = Record.size()-2; in parseFunctionBody()
5073 if (BasicBlock *DestBB = getBasicBlock(Record[2+i])) { in parseFunctionBody()
5077 return error("Invalid record"); in parseFunctionBody()
5086 if (Record.size() < 4) in parseFunctionBody()
5087 return error("Invalid record"); in parseFunctionBody()
5089 AttributeSet PAL = getAttributes(Record[OpNum++]); in parseFunctionBody()
5090 unsigned CCInfo = Record[OpNum++]; in parseFunctionBody()
5091 BasicBlock *NormalBB = getBasicBlock(Record[OpNum++]); in parseFunctionBody()
5092 BasicBlock *UnwindBB = getBasicBlock(Record[OpNum++]); in parseFunctionBody()
5096 !(FTy = dyn_cast<FunctionType>(getTypeByID(Record[OpNum++])))) in parseFunctionBody()
5100 if (getValueTypePair(Record, OpNum, NextValueNo, Callee)) in parseFunctionBody()
5101 return error("Invalid record"); in parseFunctionBody()
5113 if (Record.size() < FTy->getNumParams() + OpNum) in parseFunctionBody()
5118 Ops.push_back(getValue(Record, OpNum, NextValueNo, in parseFunctionBody()
5121 return error("Invalid record"); in parseFunctionBody()
5125 if (Record.size() != OpNum) in parseFunctionBody()
5126 return error("Invalid record"); in parseFunctionBody()
5129 while (OpNum != Record.size()) { in parseFunctionBody()
5131 if (getValueTypePair(Record, OpNum, NextValueNo, Op)) in parseFunctionBody()
5132 return error("Invalid record"); in parseFunctionBody()
5148 if (getValueTypePair(Record, Idx, NextValueNo, Val)) in parseFunctionBody()
5149 return error("Invalid record"); in parseFunctionBody()
5159 if (Record.size() < 1 || ((Record.size()-1)&1)) in parseFunctionBody()
5160 return error("Invalid record"); in parseFunctionBody()
5161 Type *Ty = getTypeByID(Record[0]); in parseFunctionBody()
5163 return error("Invalid record"); in parseFunctionBody()
5165 PHINode *PN = PHINode::Create(Ty, (Record.size()-1)/2); in parseFunctionBody()
5168 for (unsigned i = 0, e = Record.size()-1; i != e; i += 2) { in parseFunctionBody()
5174 V = getValueSigned(Record, 1+i, NextValueNo, Ty); in parseFunctionBody()
5176 V = getValue(Record, 1+i, NextValueNo, Ty); in parseFunctionBody()
5177 BasicBlock *BB = getBasicBlock(Record[2+i]); in parseFunctionBody()
5179 return error("Invalid record"); in parseFunctionBody()
5191 if (Record.size() < 3) in parseFunctionBody()
5192 return error("Invalid record"); in parseFunctionBody()
5195 if (Record.size() < 4) in parseFunctionBody()
5196 return error("Invalid record"); in parseFunctionBody()
5198 Type *Ty = getTypeByID(Record[Idx++]); in parseFunctionBody()
5200 return error("Invalid record"); in parseFunctionBody()
5203 if (getValueTypePair(Record, Idx, NextValueNo, PersFn)) in parseFunctionBody()
5204 return error("Invalid record"); in parseFunctionBody()
5212 bool IsCleanup = !!Record[Idx++]; in parseFunctionBody()
5213 unsigned NumClauses = Record[Idx++]; in parseFunctionBody()
5218 LandingPadInst::ClauseType(Record[Idx++]); (void)CT; in parseFunctionBody()
5221 if (getValueTypePair(Record, Idx, NextValueNo, Val)) { in parseFunctionBody()
5223 return error("Invalid record"); in parseFunctionBody()
5241 if (Record.size() != 4) in parseFunctionBody()
5242 return error("Invalid record"); in parseFunctionBody()
5243 uint64_t AlignRecord = Record[3]; in parseFunctionBody()
5251 Type *Ty = getTypeByID(Record[0]); in parseFunctionBody()
5258 Type *OpTy = getTypeByID(Record[1]); in parseFunctionBody()
5259 Value *Size = getFnValueByID(Record[2], OpTy); in parseFunctionBody()
5266 return error("Invalid record"); in parseFunctionBody()
5277 if (getValueTypePair(Record, OpNum, NextValueNo, Op) || in parseFunctionBody()
5278 (OpNum + 2 != Record.size() && OpNum + 3 != Record.size())) in parseFunctionBody()
5279 return error("Invalid record"); in parseFunctionBody()
5282 if (OpNum + 3 == Record.size()) in parseFunctionBody()
5283 Ty = getTypeByID(Record[OpNum++]); in parseFunctionBody()
5290 if (std::error_code EC = parseAlignmentValue(Record[OpNum], Align)) in parseFunctionBody()
5292 I = new LoadInst(Ty, Op, "", Record[OpNum + 1], Align); in parseFunctionBody()
5301 if (getValueTypePair(Record, OpNum, NextValueNo, Op) || in parseFunctionBody()
5302 (OpNum + 4 != Record.size() && OpNum + 5 != Record.size())) in parseFunctionBody()
5303 return error("Invalid record"); in parseFunctionBody()
5306 if (OpNum + 5 == Record.size()) in parseFunctionBody()
5307 Ty = getTypeByID(Record[OpNum++]); in parseFunctionBody()
5313 AtomicOrdering Ordering = getDecodedOrdering(Record[OpNum + 2]); in parseFunctionBody()
5317 return error("Invalid record"); in parseFunctionBody()
5318 if (Ordering != AtomicOrdering::NotAtomic && Record[OpNum] == 0) in parseFunctionBody()
5319 return error("Invalid record"); in parseFunctionBody()
5320 SynchronizationScope SynchScope = getDecodedSynchScope(Record[OpNum + 3]); in parseFunctionBody()
5323 if (std::error_code EC = parseAlignmentValue(Record[OpNum], Align)) in parseFunctionBody()
5325 I = new LoadInst(Op, "", Record[OpNum+1], Align, Ordering, SynchScope); in parseFunctionBody()
5334 if (getValueTypePair(Record, OpNum, NextValueNo, Ptr) || in parseFunctionBody()
5336 ? getValueTypePair(Record, OpNum, NextValueNo, Val) in parseFunctionBody()
5337 : popValue(Record, OpNum, NextValueNo, in parseFunctionBody()
5340 OpNum + 2 != Record.size()) in parseFunctionBody()
5341 return error("Invalid record"); in parseFunctionBody()
5347 if (std::error_code EC = parseAlignmentValue(Record[OpNum], Align)) in parseFunctionBody()
5349 I = new StoreInst(Val, Ptr, Record[OpNum+1], Align); in parseFunctionBody()
5358 if (getValueTypePair(Record, OpNum, NextValueNo, Ptr) || in parseFunctionBody()
5361 ? getValueTypePair(Record, OpNum, NextValueNo, Val) in parseFunctionBody()
5362 : popValue(Record, OpNum, NextValueNo, in parseFunctionBody()
5365 OpNum + 4 != Record.size()) in parseFunctionBody()
5366 return error("Invalid record"); in parseFunctionBody()
5371 AtomicOrdering Ordering = getDecodedOrdering(Record[OpNum + 2]); in parseFunctionBody()
5375 return error("Invalid record"); in parseFunctionBody()
5376 SynchronizationScope SynchScope = getDecodedSynchScope(Record[OpNum + 3]); in parseFunctionBody()
5377 if (Ordering != AtomicOrdering::NotAtomic && Record[OpNum] == 0) in parseFunctionBody()
5378 return error("Invalid record"); in parseFunctionBody()
5381 if (std::error_code EC = parseAlignmentValue(Record[OpNum], Align)) in parseFunctionBody()
5383 I = new StoreInst(Val, Ptr, Record[OpNum+1], Align, Ordering, SynchScope); in parseFunctionBody()
5393 if (getValueTypePair(Record, OpNum, NextValueNo, Ptr) || in parseFunctionBody()
5395 ? getValueTypePair(Record, OpNum, NextValueNo, Cmp) in parseFunctionBody()
5396 : popValue(Record, OpNum, NextValueNo, in parseFunctionBody()
5399 popValue(Record, OpNum, NextValueNo, Cmp->getType(), New) || in parseFunctionBody()
5400 Record.size() < OpNum + 3 || Record.size() > OpNum + 5) in parseFunctionBody()
5401 return error("Invalid record"); in parseFunctionBody()
5402 AtomicOrdering SuccessOrdering = getDecodedOrdering(Record[OpNum + 1]); in parseFunctionBody()
5405 return error("Invalid record"); in parseFunctionBody()
5406 SynchronizationScope SynchScope = getDecodedSynchScope(Record[OpNum + 2]); in parseFunctionBody()
5412 if (Record.size() < 7) in parseFunctionBody()
5416 FailureOrdering = getDecodedOrdering(Record[OpNum + 3]); in parseFunctionBody()
5420 cast<AtomicCmpXchgInst>(I)->setVolatile(Record[OpNum]); in parseFunctionBody()
5422 if (Record.size() < 8) { in parseFunctionBody()
5429 cast<AtomicCmpXchgInst>(I)->setWeak(Record[OpNum+4]); in parseFunctionBody()
5439 if (getValueTypePair(Record, OpNum, NextValueNo, Ptr) || in parseFunctionBody()
5441 popValue(Record, OpNum, NextValueNo, in parseFunctionBody()
5443 OpNum+4 != Record.size()) in parseFunctionBody()
5444 return error("Invalid record"); in parseFunctionBody()
5445 AtomicRMWInst::BinOp Operation = getDecodedRMWOperation(Record[OpNum]); in parseFunctionBody()
5448 return error("Invalid record"); in parseFunctionBody()
5449 AtomicOrdering Ordering = getDecodedOrdering(Record[OpNum + 2]); in parseFunctionBody()
5452 return error("Invalid record"); in parseFunctionBody()
5453 SynchronizationScope SynchScope = getDecodedSynchScope(Record[OpNum + 3]); in parseFunctionBody()
5455 cast<AtomicRMWInst>(I)->setVolatile(Record[OpNum+1]); in parseFunctionBody()
5460 if (2 != Record.size()) in parseFunctionBody()
5461 return error("Invalid record"); in parseFunctionBody()
5462 AtomicOrdering Ordering = getDecodedOrdering(Record[0]); in parseFunctionBody()
5466 return error("Invalid record"); in parseFunctionBody()
5467 SynchronizationScope SynchScope = getDecodedSynchScope(Record[1]); in parseFunctionBody()
5474 if (Record.size() < 3) in parseFunctionBody()
5475 return error("Invalid record"); in parseFunctionBody()
5478 AttributeSet PAL = getAttributes(Record[OpNum++]); in parseFunctionBody()
5479 unsigned CCInfo = Record[OpNum++]; in parseFunctionBody()
5483 FMF = getDecodedFastMathFlags(Record[OpNum++]); in parseFunctionBody()
5490 !(FTy = dyn_cast<FunctionType>(getTypeByID(Record[OpNum++])))) in parseFunctionBody()
5494 if (getValueTypePair(Record, OpNum, NextValueNo, Callee)) in parseFunctionBody()
5495 return error("Invalid record"); in parseFunctionBody()
5507 if (Record.size() < FTy->getNumParams() + OpNum) in parseFunctionBody()
5514 Args.push_back(getBasicBlock(Record[OpNum])); in parseFunctionBody()
5516 Args.push_back(getValue(Record, OpNum, NextValueNo, in parseFunctionBody()
5519 return error("Invalid record"); in parseFunctionBody()
5524 if (OpNum != Record.size()) in parseFunctionBody()
5525 return error("Invalid record"); in parseFunctionBody()
5527 while (OpNum != Record.size()) { in parseFunctionBody()
5529 if (getValueTypePair(Record, OpNum, NextValueNo, Op)) in parseFunctionBody()
5530 return error("Invalid record"); in parseFunctionBody()
5558 if (Record.size() < 3) in parseFunctionBody()
5559 return error("Invalid record"); in parseFunctionBody()
5560 Type *OpTy = getTypeByID(Record[0]); in parseFunctionBody()
5561 Value *Op = getValue(Record, 1, NextValueNo, OpTy); in parseFunctionBody()
5562 Type *ResTy = getTypeByID(Record[2]); in parseFunctionBody()
5564 return error("Invalid record"); in parseFunctionBody()
5575 if (Record.size() < 1 || Record[0] >= BundleTags.size()) in parseFunctionBody()
5576 return error("Invalid record"); in parseFunctionBody()
5581 while (OpNum != Record.size()) { in parseFunctionBody()
5583 if (getValueTypePair(Record, OpNum, NextValueNo, Op)) in parseFunctionBody()
5584 return error("Invalid record"); in parseFunctionBody()
5588 OperandBundles.emplace_back(BundleTags[Record[0]], std::move(Inputs)); in parseFunctionBody()
5871 return error("Invalid record"); in parseValueSymbolTable()
5873 SmallVector<uint64_t, 64> Record; in parseValueSymbolTable() local
5888 case BitstreamEntry::Record: in parseValueSymbolTable()
5893 // Read a record. in parseValueSymbolTable()
5894 Record.clear(); in parseValueSymbolTable()
5895 switch (Stream.readRecord(Entry.ID, Record)) { in parseValueSymbolTable()
5899 if (convertToString(Record, 1, ValueName)) in parseValueSymbolTable()
5900 return error("Invalid record"); in parseValueSymbolTable()
5901 unsigned ValueID = Record[0]; in parseValueSymbolTable()
5923 if (convertToString(Record, 2, ValueName)) in parseValueSymbolTable()
5924 return error("Invalid record"); in parseValueSymbolTable()
5925 unsigned ValueID = Record[0]; in parseValueSymbolTable()
5948 unsigned ValueID = Record[0]; in parseValueSymbolTable()
5949 GlobalValue::GUID RefGUID = Record[1]; in parseValueSymbolTable()
5964 return error("Invalid record"); in parseModule()
5966 SmallVector<uint64_t, 64> Record; in parseModule() local
5988 return error("Invalid record"); in parseModule()
5994 return error("Invalid record"); in parseModule()
6006 "Expected early VST parse via VSTOffset record"); in parseModule()
6008 return error("Invalid record"); in parseModule()
6029 case BitstreamEntry::Record: { in parseModule()
6030 Record.clear(); in parseModule()
6031 auto BitCode = Stream.readRecord(Entry.ID, Record); in parseModule()
6038 if (convertToString(Record, 0, ValueName)) in parseModule()
6039 return error("Invalid record"); in parseModule()
6045 if (Record.size() != 5) in parseModule()
6046 return error("Invalid hash length " + Twine(Record.size()).str()); in parseModule()
6056 for (auto &Val : Record) { in parseModule()
6064 if (Record.size() < 1) in parseModule()
6065 return error("Invalid record"); in parseModule()
6066 VSTOffset = Record[0]; in parseModule()
6073 if (Record.size() < 6) in parseModule()
6074 return error("Invalid record"); in parseModule()
6075 uint64_t RawLinkage = Record[3]; in parseModule()
6084 if (Record.size() < 8) in parseModule()
6085 return error("Invalid record"); in parseModule()
6086 uint64_t RawLinkage = Record[3]; in parseModule()
6094 if (Record.size() < 6) in parseModule()
6095 return error("Invalid record"); in parseModule()
6096 uint64_t RawLinkage = Record[3]; in parseModule()
6112 return error("Invalid record"); in parseEntireSummary()
6113 SmallVector<uint64_t, 64> Record; in parseEntireSummary() local
6118 if (Entry.Kind != BitstreamEntry::Record) in parseEntireSummary()
6119 return error("Invalid Summary Block: record for version expected"); in parseEntireSummary()
6120 if (Stream.readRecord(Entry.ID, Record) != bitc::FS_VERSION) in parseEntireSummary()
6123 const uint64_t Version = Record[0]; in parseEntireSummary()
6126 Record.clear(); in parseEntireSummary()
6151 case BitstreamEntry::Record: in parseEntireSummary()
6156 // Read a record. The record format depends on whether this in parseEntireSummary()
6163 Record.clear(); in parseEntireSummary()
6164 auto BitCode = Stream.readRecord(Entry.ID, Record); in parseEntireSummary()
6175 unsigned ValueID = Record[0]; in parseEntireSummary()
6176 uint64_t RawFlags = Record[1]; in parseEntireSummary()
6177 unsigned InstCount = Record[2]; in parseEntireSummary()
6178 unsigned NumRefs = Record[3]; in parseEntireSummary()
6191 assert(Record.size() >= RefListStartIndex + NumRefs && in parseEntireSummary()
6192 "Record size inconsistent with number of references"); in parseEntireSummary()
6194 unsigned RefValueId = Record[I]; in parseEntireSummary()
6199 for (unsigned I = CallGraphEdgeStartIndex, E = Record.size(); I != E; in parseEntireSummary()
6201 unsigned CalleeValueId = Record[I]; in parseEntireSummary()
6202 unsigned CallsiteCount = Record[++I]; in parseEntireSummary()
6203 uint64_t ProfileCount = HasProfile ? Record[++I] : 0; in parseEntireSummary()
6217 unsigned ValueID = Record[0]; in parseEntireSummary()
6218 uint64_t RawFlags = Record[1]; in parseEntireSummary()
6219 unsigned AliaseeID = Record[2]; in parseEntireSummary()
6243 unsigned ValueID = Record[0]; in parseEntireSummary()
6244 uint64_t RawFlags = Record[1]; in parseEntireSummary()
6250 for (unsigned I = 2, E = Record.size(); I != E; ++I) { in parseEntireSummary()
6251 unsigned RefValueId = Record[I]; in parseEntireSummary()
6267 unsigned ValueID = Record[0]; in parseEntireSummary()
6268 uint64_t ModuleId = Record[1]; in parseEntireSummary()
6269 uint64_t RawFlags = Record[2]; in parseEntireSummary()
6270 unsigned InstCount = Record[3]; in parseEntireSummary()
6271 unsigned NumRefs = Record[4]; in parseEntireSummary()
6279 assert(Record.size() >= RefListStartIndex + NumRefs && in parseEntireSummary()
6280 "Record size inconsistent with number of references"); in parseEntireSummary()
6283 unsigned RefValueId = Record[I]; in parseEntireSummary()
6288 for (unsigned I = CallGraphEdgeStartIndex, E = Record.size(); I != E; in parseEntireSummary()
6290 unsigned CalleeValueId = Record[I]; in parseEntireSummary()
6291 unsigned CallsiteCount = Record[++I]; in parseEntireSummary()
6292 uint64_t ProfileCount = HasProfile ? Record[++I] : 0; in parseEntireSummary()
6306 unsigned ValueID = Record[0]; in parseEntireSummary()
6307 uint64_t ModuleId = Record[1]; in parseEntireSummary()
6308 uint64_t RawFlags = Record[2]; in parseEntireSummary()
6309 unsigned AliaseeValueId = Record[3]; in parseEntireSummary()
6329 unsigned ValueID = Record[0]; in parseEntireSummary()
6330 uint64_t ModuleId = Record[1]; in parseEntireSummary()
6331 uint64_t RawFlags = Record[2]; in parseEntireSummary()
6337 for (unsigned I = 3, E = Record.size(); I != E; ++I) { in parseEntireSummary()
6338 unsigned RefValueId = Record[I]; in parseEntireSummary()
6349 uint64_t OriginalName = Record[0]; in parseEntireSummary()
6351 return error("Name attachment that does not follow a combined record"); in parseEntireSummary()
6365 return error("Invalid record"); in parseModuleStringTable()
6367 SmallVector<uint64_t, 64> Record; in parseModuleStringTable() local
6380 case BitstreamEntry::Record: in parseModuleStringTable()
6385 Record.clear(); in parseModuleStringTable()
6386 switch (Stream.readRecord(Entry.ID, Record)) { in parseModuleStringTable()
6391 uint64_t ModuleId = Record[0]; in parseModuleStringTable()
6393 if (convertToString(Record, 1, ModulePath)) in parseModuleStringTable()
6394 return error("Invalid record"); in parseModuleStringTable()
6404 if (Record.size() != 5) in parseModuleStringTable()
6405 return error("Invalid hash length " + Twine(Record.size()).str()); in parseModuleStringTable()
6409 for (auto &Val : Record) { in parseModuleStringTable()
6454 return error("Invalid record"); in parseSummaryIndexInto()