Lines Matching refs:Record

159 static bool convertToString(ArrayRef<uint64_t> Record, unsigned Idx,  in convertToString()  argument
161 if (Idx > Record.size()) in convertToString()
164 Result.append(Record.begin() + Idx, Record.end()); in convertToString()
185 SmallVector<uint64_t, 64> Record; in readIdentificationBlock() local
200 case BitstreamEntry::Record: in readIdentificationBlock()
206 Record.clear(); in readIdentificationBlock()
207 Expected<unsigned> MaybeBitCode = Stream.readRecord(Entry.ID, Record); in readIdentificationBlock()
214 convertToString(Record, 0, ProducerIdentification); in readIdentificationBlock()
217 unsigned epoch = (unsigned)Record[0]; in readIdentificationBlock()
252 case BitstreamEntry::Record: in readIdentificationCode()
264 SmallVector<uint64_t, 64> Record; in hasObjCCategoryInModule() local
279 case BitstreamEntry::Record: in hasObjCCategoryInModule()
285 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record); in hasObjCCategoryInModule()
293 if (convertToString(Record, 0, S)) in hasObjCCategoryInModule()
302 Record.clear(); in hasObjCCategoryInModule()
330 case BitstreamEntry::Record: in hasObjCCategory()
342 SmallVector<uint64_t, 64> Record; in readModuleTriple() local
359 case BitstreamEntry::Record: in readModuleTriple()
365 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record); in readModuleTriple()
372 if (convertToString(Record, 0, S)) in readModuleTriple()
378 Record.clear(); in readModuleTriple()
407 case BitstreamEntry::Record: in readTriple()
433 Expected<unsigned> parseVersionRecord(ArrayRef<uint64_t> Record);
439 readNameFromStrtab(ArrayRef<uint64_t> Record);
460 BitcodeReaderBase::parseVersionRecord(ArrayRef<uint64_t> Record) { in parseVersionRecord() argument
461 if (Record.empty()) in parseVersionRecord()
463 unsigned ModuleVersion = Record[0]; in parseVersionRecord()
471 BitcodeReaderBase::readNameFromStrtab(ArrayRef<uint64_t> Record) { in readNameFromStrtab() argument
473 return {"", Record}; in readNameFromStrtab()
475 if (Record[0] + Record[1] > Strtab.size()) in readNameFromStrtab()
477 return {StringRef(Strtab.data() + Record[0], Record[1]), Record.slice(2)}; in readNameFromStrtab()
743 bool getValueTypePair(const SmallVectorImpl<uint64_t> &Record, unsigned &Slot, in getValueTypePair() argument
746 if (Slot == Record.size()) return true; in getValueTypePair()
747 unsigned ValNo = (unsigned)Record[Slot++]; in getValueTypePair()
760 if (Slot == Record.size()) in getValueTypePair()
763 TypeID = (unsigned)Record[Slot++]; in getValueTypePair()
772 bool popValue(const SmallVectorImpl<uint64_t> &Record, unsigned &Slot, in popValue() argument
775 if (getValue(Record, Slot, InstNum, Ty, TyID, ResVal, ConstExprInsertBB)) in popValue()
783 bool getValue(const SmallVectorImpl<uint64_t> &Record, unsigned Slot, in getValue() argument
786 ResVal = getValue(Record, Slot, InstNum, Ty, TyID, ConstExprInsertBB); in getValue()
792 Value *getValue(const SmallVectorImpl<uint64_t> &Record, unsigned Slot, in getValue() argument
795 if (Slot == Record.size()) return nullptr; in getValue()
796 unsigned ValNo = (unsigned)Record[Slot]; in getValue()
804 Value *getValueSigned(const SmallVectorImpl<uint64_t> &Record, unsigned Slot, in getValueSigned() argument
807 if (Slot == Record.size()) return nullptr; in getValueSigned()
808 unsigned ValNo = (unsigned)decodeSignRotatedValue(Record[Slot]); in getValueSigned()
828 Error parseComdatRecord(ArrayRef<uint64_t> Record);
829 Error parseGlobalVarRecord(ArrayRef<uint64_t> Record);
830 Error parseFunctionRecord(ArrayRef<uint64_t> Record);
832 ArrayRef<uint64_t> Record);
841 Expected<Value *> recordValue(SmallVectorImpl<uint64_t> &Record,
844 ArrayRef<uint64_t> Record);
930 std::vector<ValueInfo> makeRefList(ArrayRef<uint64_t> Record);
931 std::vector<FunctionSummary::EdgeTy> makeCallList(ArrayRef<uint64_t> Record,
937 void parseTypeIdCompatibleVtableSummaryRecord(ArrayRef<uint64_t> Record);
938 void parseTypeIdCompatibleVtableInfo(ArrayRef<uint64_t> Record, size_t &Slot,
941 parseParamAccesses(ArrayRef<uint64_t> Record);
1867 SmallVector<uint64_t, 64> Record; in parseAttributeBlock() local
1884 case BitstreamEntry::Record: in parseAttributeBlock()
1890 Record.clear(); in parseAttributeBlock()
1891 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record); in parseAttributeBlock()
1899 if (Record.size() & 1) in parseAttributeBlock()
1902 for (unsigned i = 0, e = Record.size(); i != e; i += 2) { in parseAttributeBlock()
1904 decodeLLVMAttributesForBitcode(B, Record[i+1], Record[i]); in parseAttributeBlock()
1905 Attrs.push_back(AttributeList::get(Context, Record[i], B)); in parseAttributeBlock()
1912 for (unsigned i = 0, e = Record.size(); i != e; ++i) in parseAttributeBlock()
1913 Attrs.push_back(MAttributeGroups[Record[i]]); in parseAttributeBlock()
2155 SmallVector<uint64_t, 64> Record; in parseAttributeGroupBlock() local
2170 case BitstreamEntry::Record: in parseAttributeGroupBlock()
2176 Record.clear(); in parseAttributeGroupBlock()
2177 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record); in parseAttributeGroupBlock()
2184 if (Record.size() < 3) in parseAttributeGroupBlock()
2187 uint64_t GrpID = Record[0]; in parseAttributeGroupBlock()
2188 uint64_t Idx = Record[1]; // Index of the object this attribute refers to. in parseAttributeGroupBlock()
2192 for (unsigned i = 2, e = Record.size(); i != e; ++i) { in parseAttributeGroupBlock()
2193 if (Record[i] == 0) { // Enum attribute in parseAttributeGroupBlock()
2195 uint64_t EncodedKind = Record[++i]; in parseAttributeGroupBlock()
2218 } else if (Record[i] == 1) { // Integer attribute in parseAttributeGroupBlock()
2220 if (Error Err = parseAttrKind(Record[++i], &Kind)) in parseAttributeGroupBlock()
2225 B.addAlignmentAttr(Record[++i]); in parseAttributeGroupBlock()
2227 B.addStackAlignmentAttr(Record[++i]); in parseAttributeGroupBlock()
2229 B.addDereferenceableAttr(Record[++i]); in parseAttributeGroupBlock()
2231 B.addDereferenceableOrNullAttr(Record[++i]); in parseAttributeGroupBlock()
2233 B.addAllocSizeAttrFromRawRepr(Record[++i]); in parseAttributeGroupBlock()
2235 B.addVScaleRangeAttrFromRawRepr(Record[++i]); in parseAttributeGroupBlock()
2237 B.addUWTableAttr(UWTableKind(Record[++i])); in parseAttributeGroupBlock()
2239 B.addAllocKindAttr(static_cast<AllocFnKind>(Record[++i])); in parseAttributeGroupBlock()
2241 B.addMemoryAttr(MemoryEffects::createFromIntValue(Record[++i])); in parseAttributeGroupBlock()
2244 static_cast<FPClassTest>(Record[++i] & fcAllFlags)); in parseAttributeGroupBlock()
2245 } else if (Record[i] == 3 || Record[i] == 4) { // String attribute in parseAttributeGroupBlock()
2246 bool HasValue = (Record[i++] == 4); in parseAttributeGroupBlock()
2250 while (Record[i] != 0 && i != e) in parseAttributeGroupBlock()
2251 KindStr += Record[i++]; in parseAttributeGroupBlock()
2252 assert(Record[i] == 0 && "Kind string not null terminated"); in parseAttributeGroupBlock()
2257 while (Record[i] != 0 && i != e) in parseAttributeGroupBlock()
2258 ValStr += Record[i++]; in parseAttributeGroupBlock()
2259 assert(Record[i] == 0 && "Value string not null terminated"); in parseAttributeGroupBlock()
2263 } else if (Record[i] == 5 || Record[i] == 6) { in parseAttributeGroupBlock()
2264 bool HasType = Record[i] == 6; in parseAttributeGroupBlock()
2266 if (Error Err = parseAttrKind(Record[++i], &Kind)) in parseAttributeGroupBlock()
2271 B.addTypeAttr(Kind, HasType ? getTypeByID(Record[++i]) : nullptr); in parseAttributeGroupBlock()
2299 SmallVector<uint64_t, 64> Record; in parseTypeTableBody() local
2319 case BitstreamEntry::Record: in parseTypeTableBody()
2325 Record.clear(); in parseTypeTableBody()
2328 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record); in parseTypeTableBody()
2337 if (Record.empty()) in parseTypeTableBody()
2339 TypeList.resize(Record[0]); in parseTypeTableBody()
2381 if (Record.empty()) in parseTypeTableBody()
2384 uint64_t NumBits = Record[0]; in parseTypeTableBody()
2393 if (Record.empty()) in parseTypeTableBody()
2396 if (Record.size() == 2) in parseTypeTableBody()
2397 AddressSpace = Record[1]; in parseTypeTableBody()
2398 ResultTy = getTypeByID(Record[0]); in parseTypeTableBody()
2402 ContainedIDs.push_back(Record[0]); in parseTypeTableBody()
2407 if (Record.size() != 1) in parseTypeTableBody()
2409 unsigned AddressSpace = Record[0]; in parseTypeTableBody()
2416 if (Record.size() < 3) in parseTypeTableBody()
2419 for (unsigned i = 3, e = Record.size(); i != e; ++i) { in parseTypeTableBody()
2420 if (Type *T = getTypeByID(Record[i])) in parseTypeTableBody()
2426 ResultTy = getTypeByID(Record[2]); in parseTypeTableBody()
2427 if (!ResultTy || ArgTys.size() < Record.size()-3) in parseTypeTableBody()
2430 ContainedIDs.append(Record.begin() + 2, Record.end()); in parseTypeTableBody()
2431 ResultTy = FunctionType::get(ResultTy, ArgTys, Record[0]); in parseTypeTableBody()
2436 if (Record.size() < 2) in parseTypeTableBody()
2439 for (unsigned i = 2, e = Record.size(); i != e; ++i) { in parseTypeTableBody()
2440 if (Type *T = getTypeByID(Record[i])) { in parseTypeTableBody()
2449 ResultTy = getTypeByID(Record[1]); in parseTypeTableBody()
2450 if (!ResultTy || ArgTys.size() < Record.size()-2) in parseTypeTableBody()
2453 ContainedIDs.append(Record.begin() + 1, Record.end()); in parseTypeTableBody()
2454 ResultTy = FunctionType::get(ResultTy, ArgTys, Record[0]); in parseTypeTableBody()
2458 if (Record.empty()) in parseTypeTableBody()
2461 for (unsigned i = 1, e = Record.size(); i != e; ++i) { in parseTypeTableBody()
2462 if (Type *T = getTypeByID(Record[i])) in parseTypeTableBody()
2467 if (EltTys.size() != Record.size()-1) in parseTypeTableBody()
2469 ContainedIDs.append(Record.begin() + 1, Record.end()); in parseTypeTableBody()
2470 ResultTy = StructType::get(Context, EltTys, Record[0]); in parseTypeTableBody()
2474 if (convertToString(Record, 0, TypeName)) in parseTypeTableBody()
2479 if (Record.empty()) in parseTypeTableBody()
2495 for (unsigned i = 1, e = Record.size(); i != e; ++i) { in parseTypeTableBody()
2496 if (Type *T = getTypeByID(Record[i])) in parseTypeTableBody()
2501 if (EltTys.size() != Record.size()-1) in parseTypeTableBody()
2503 Res->setBody(EltTys, Record[0]); in parseTypeTableBody()
2504 ContainedIDs.append(Record.begin() + 1, Record.end()); in parseTypeTableBody()
2509 if (Record.size() != 1) in parseTypeTableBody()
2527 if (Record.size() < 1) in parseTypeTableBody()
2533 if (Record[0] >= Record.size()) in parseTypeTableBody()
2536 unsigned NumTys = Record[0]; in parseTypeTableBody()
2540 if (Type *T = getTypeByID(Record[i + 1])) in parseTypeTableBody()
2546 for (unsigned i = NumTys + 1, e = Record.size(); i < e; i++) { in parseTypeTableBody()
2547 if (Record[i] > UINT_MAX) in parseTypeTableBody()
2549 IntParams.push_back(Record[i]); in parseTypeTableBody()
2556 if (Record.size() < 2) in parseTypeTableBody()
2558 ResultTy = getTypeByID(Record[1]); in parseTypeTableBody()
2561 ContainedIDs.push_back(Record[1]); in parseTypeTableBody()
2562 ResultTy = ArrayType::get(ResultTy, Record[0]); in parseTypeTableBody()
2566 if (Record.size() < 2) in parseTypeTableBody()
2568 if (Record[0] == 0) in parseTypeTableBody()
2570 ResultTy = getTypeByID(Record[1]); in parseTypeTableBody()
2573 bool Scalable = Record.size() > 2 ? Record[2] : false; in parseTypeTableBody()
2574 ContainedIDs.push_back(Record[1]); in parseTypeTableBody()
2575 ResultTy = VectorType::get(ResultTy, Record[0], Scalable); in parseTypeTableBody()
2599 SmallVector<uint64_t, 64> Record; in parseOperandBundleTags() local
2613 case BitstreamEntry::Record: in parseOperandBundleTags()
2620 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record); in parseOperandBundleTags()
2628 if (convertToString(Record, 0, BundleTags.back())) in parseOperandBundleTags()
2630 Record.clear(); in parseOperandBundleTags()
2641 SmallVector<uint64_t, 64> Record; in parseSyncScopeNames() local
2656 case BitstreamEntry::Record: in parseSyncScopeNames()
2664 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record); in parseSyncScopeNames()
2671 if (convertToString(Record, 0, SSN)) in parseSyncScopeNames()
2675 Record.clear(); in parseSyncScopeNames()
2680 Expected<Value *> BitcodeReader::recordValue(SmallVectorImpl<uint64_t> &Record, in recordValue() argument
2683 if (convertToString(Record, NameIndex, ValueName)) in recordValue()
2685 unsigned ValueID = Record[0]; in recordValue()
2720 ArrayRef<uint64_t> Record) { in setDeferredFunctionInfo() argument
2724 uint64_t FuncWordOffset = Record[1] - 1; in setDeferredFunctionInfo()
2742 SmallVector<uint64_t, 64> Record; in parseGlobalValueSymbolTable() local
2755 case BitstreamEntry::Record: in parseGlobalValueSymbolTable()
2759 Record.clear(); in parseGlobalValueSymbolTable()
2760 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record); in parseGlobalValueSymbolTable()
2765 unsigned ValueID = Record[0]; in parseGlobalValueSymbolTable()
2769 cast<Function>(ValueList[ValueID]), Record); in parseGlobalValueSymbolTable()
2817 SmallVector<uint64_t, 64> Record; in parseValueSymbolTable() local
2839 case BitstreamEntry::Record: in parseValueSymbolTable()
2845 Record.clear(); in parseValueSymbolTable()
2846 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record); in parseValueSymbolTable()
2853 Expected<Value *> ValOrErr = recordValue(Record, 1, TT); in parseValueSymbolTable()
2861 Expected<Value *> ValOrErr = recordValue(Record, 2, TT); in parseValueSymbolTable()
2869 setDeferredFunctionInfo(FuncBitcodeOffsetDelta, F, Record); in parseValueSymbolTable()
2873 if (convertToString(Record, 1, ValueName)) in parseValueSymbolTable()
2875 BasicBlock *BB = getBasicBlock(Record[0]); in parseValueSymbolTable()
2997 SmallVector<uint64_t, 64> Record; in parseConstants() local
3020 case BitstreamEntry::Record: in parseConstants()
3026 Record.clear(); in parseConstants()
3029 Expected<unsigned> MaybeBitCode = Stream.readRecord(Entry.ID, Record); in parseConstants()
3041 if (Record.empty()) in parseConstants()
3043 if (Record[0] >= TypeList.size() || !TypeList[Record[0]]) in parseConstants()
3045 if (TypeList[Record[0]] == VoidType) in parseConstants()
3047 CurTyID = Record[0]; in parseConstants()
3060 if (!CurTy->isIntegerTy() || Record.empty()) in parseConstants()
3062 V = ConstantInt::get(CurTy, decodeSignRotatedValue(Record[0])); in parseConstants()
3065 if (!CurTy->isIntegerTy() || Record.empty()) in parseConstants()
3069 readWideAPInt(Record, cast<IntegerType>(CurTy)->getBitWidth()); in parseConstants()
3075 if (Record.empty()) in parseConstants()
3079 APInt(16, (uint16_t)Record[0]))); in parseConstants()
3082 APInt(16, (uint32_t)Record[0]))); in parseConstants()
3085 APInt(32, (uint32_t)Record[0]))); in parseConstants()
3088 APInt(64, Record[0]))); in parseConstants()
3092 Rearrange[0] = (Record[1] & 0xffffLL) | (Record[0] << 16); in parseConstants()
3093 Rearrange[1] = Record[0] >> 48; in parseConstants()
3098 APInt(128, Record))); in parseConstants()
3101 APInt(128, Record))); in parseConstants()
3108 if (Record.empty()) in parseConstants()
3111 unsigned Size = Record.size(); in parseConstants()
3114 Elts.push_back(Record[i]); in parseConstants()
3132 if (Record.empty()) in parseConstants()
3135 SmallString<16> Elts(Record.begin(), Record.end()); in parseConstants()
3141 if (Record.empty()) in parseConstants()
3150 SmallVector<uint8_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3156 SmallVector<uint16_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3162 SmallVector<uint32_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3168 SmallVector<uint64_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3174 SmallVector<uint16_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3180 SmallVector<uint16_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3186 SmallVector<uint32_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3192 SmallVector<uint64_t, 16> Elts(Record.begin(), Record.end()); in parseConstants()
3203 if (Record.size() < 2) in parseConstants()
3205 int Opc = getDecodedUnaryOpcode(Record[0], CurTy); in parseConstants()
3209 V = BitcodeConstant::create(Alloc, CurTy, Opc, (unsigned)Record[1]); in parseConstants()
3214 if (Record.size() < 3) in parseConstants()
3216 int Opc = getDecodedBinaryOpcode(Record[0], CurTy); in parseConstants()
3221 if (Record.size() >= 4) { in parseConstants()
3226 if (Record[3] & (1 << bitc::OBO_NO_SIGNED_WRAP)) in parseConstants()
3228 if (Record[3] & (1 << bitc::OBO_NO_UNSIGNED_WRAP)) in parseConstants()
3234 if (Record[3] & (1 << bitc::PEO_EXACT)) in parseConstants()
3239 {(unsigned)Record[1], (unsigned)Record[2]}); in parseConstants()
3244 if (Record.size() < 3) in parseConstants()
3246 int Opc = getDecodedCastOpcode(Record[0]); in parseConstants()
3250 unsigned OpTyID = Record[1]; in parseConstants()
3254 V = BitcodeConstant::create(Alloc, CurTy, Opc, (unsigned)Record[2]); in parseConstants()
3262 if (Record.size() < 2) in parseConstants()
3267 Record.size() % 2) in parseConstants()
3268 PointeeType = getTypeByID(Record[OpNum++]); in parseConstants()
3273 uint64_t Op = Record[OpNum++]; in parseConstants()
3280 unsigned BaseTypeID = Record[OpNum]; in parseConstants()
3281 while (OpNum != Record.size()) { in parseConstants()
3282 unsigned ElTyID = Record[OpNum++]; in parseConstants()
3286 Elts.push_back(Record[OpNum++]); in parseConstants()
3315 if (Record.size() < 3) in parseConstants()
3320 {(unsigned)Record[0], (unsigned)Record[1], (unsigned)Record[2]}); in parseConstants()
3325 if (Record.size() < 3) in parseConstants()
3327 unsigned OpTyID = Record[0]; in parseConstants()
3333 if (Record.size() == 4) { in parseConstants()
3334 unsigned IdxTyID = Record[2]; in parseConstants()
3338 IdxRecord = Record[3]; in parseConstants()
3341 IdxRecord = Record[2]; in parseConstants()
3344 {(unsigned)Record[1], IdxRecord}); in parseConstants()
3350 if (Record.size() < 3 || !OpTy) in parseConstants()
3353 if (Record.size() == 4) { in parseConstants()
3354 unsigned IdxTyID = Record[2]; in parseConstants()
3358 IdxRecord = Record[3]; in parseConstants()
3361 IdxRecord = Record[2]; in parseConstants()
3365 {(unsigned)Record[0], (unsigned)Record[1], IdxRecord}); in parseConstants()
3370 if (Record.size() < 3 || !OpTy) in parseConstants()
3374 {(unsigned)Record[0], (unsigned)Record[1], (unsigned)Record[2]}); in parseConstants()
3380 dyn_cast_or_null<VectorType>(getTypeByID(Record[0])); in parseConstants()
3381 if (Record.size() < 4 || !RTy || !OpTy) in parseConstants()
3385 {(unsigned)Record[1], (unsigned)Record[2], (unsigned)Record[3]}); in parseConstants()
3389 if (Record.size() < 4) in parseConstants()
3391 unsigned OpTyID = Record[0]; in parseConstants()
3399 (uint8_t)Record[3]}, in parseConstants()
3400 {(unsigned)Record[1], (unsigned)Record[2]}); in parseConstants()
3406 if (Record.size() < 2) in parseConstants()
3409 bool HasSideEffects = Record[0] & 1; in parseConstants()
3410 bool IsAlignStack = Record[0] >> 1; in parseConstants()
3411 unsigned AsmStrSize = Record[1]; in parseConstants()
3412 if (2+AsmStrSize >= Record.size()) in parseConstants()
3414 unsigned ConstStrSize = Record[2+AsmStrSize]; in parseConstants()
3415 if (3+AsmStrSize+ConstStrSize > Record.size()) in parseConstants()
3419 AsmStr += (char)Record[2+i]; in parseConstants()
3421 ConstrStr += (char)Record[3+AsmStrSize+i]; in parseConstants()
3432 if (Record.size() < 2) in parseConstants()
3435 bool HasSideEffects = Record[0] & 1; in parseConstants()
3436 bool IsAlignStack = (Record[0] >> 1) & 1; in parseConstants()
3437 unsigned AsmDialect = Record[0] >> 2; in parseConstants()
3438 unsigned AsmStrSize = Record[1]; in parseConstants()
3439 if (2+AsmStrSize >= Record.size()) in parseConstants()
3441 unsigned ConstStrSize = Record[2+AsmStrSize]; in parseConstants()
3442 if (3+AsmStrSize+ConstStrSize > Record.size()) in parseConstants()
3446 AsmStr += (char)Record[2+i]; in parseConstants()
3448 ConstrStr += (char)Record[3+AsmStrSize+i]; in parseConstants()
3459 if (Record.size() < 2) in parseConstants()
3463 bool HasSideEffects = Record[OpNum] & 1; in parseConstants()
3464 bool IsAlignStack = (Record[OpNum] >> 1) & 1; in parseConstants()
3465 unsigned AsmDialect = (Record[OpNum] >> 2) & 1; in parseConstants()
3466 bool CanThrow = (Record[OpNum] >> 3) & 1; in parseConstants()
3468 unsigned AsmStrSize = Record[OpNum]; in parseConstants()
3470 if (OpNum + AsmStrSize >= Record.size()) in parseConstants()
3472 unsigned ConstStrSize = Record[OpNum + AsmStrSize]; in parseConstants()
3473 if (OpNum + 1 + AsmStrSize + ConstStrSize > Record.size()) in parseConstants()
3477 AsmStr += (char)Record[OpNum + i]; in parseConstants()
3480 ConstrStr += (char)Record[OpNum + AsmStrSize + i]; in parseConstants()
3491 if (Record.size() < 3) in parseConstants()
3494 auto *FnTy = dyn_cast_or_null<FunctionType>(getTypeByID(Record[OpNum])); in parseConstants()
3499 bool HasSideEffects = Record[OpNum] & 1; in parseConstants()
3500 bool IsAlignStack = (Record[OpNum] >> 1) & 1; in parseConstants()
3501 unsigned AsmDialect = (Record[OpNum] >> 2) & 1; in parseConstants()
3502 bool CanThrow = (Record[OpNum] >> 3) & 1; in parseConstants()
3504 unsigned AsmStrSize = Record[OpNum]; in parseConstants()
3506 if (OpNum + AsmStrSize >= Record.size()) in parseConstants()
3508 unsigned ConstStrSize = Record[OpNum + AsmStrSize]; in parseConstants()
3509 if (OpNum + 1 + AsmStrSize + ConstStrSize > Record.size()) in parseConstants()
3513 AsmStr += (char)Record[OpNum + i]; in parseConstants()
3516 ConstrStr += (char)Record[OpNum + AsmStrSize + i]; in parseConstants()
3523 if (Record.size() < 3) in parseConstants()
3525 unsigned FnTyID = Record[0]; in parseConstants()
3531 {BitcodeConstant::BlockAddressOpcode, 0, (unsigned)Record[2]}, in parseConstants()
3532 Record[1]); in parseConstants()
3536 if (Record.size() < 2) in parseConstants()
3538 unsigned GVTyID = Record[0]; in parseConstants()
3543 Alloc, CurTy, BitcodeConstant::DSOLocalEquivalentOpcode, Record[1]); in parseConstants()
3547 if (Record.size() < 2) in parseConstants()
3549 unsigned GVTyID = Record[0]; in parseConstants()
3554 Record[1]); in parseConstants()
3571 SmallVector<uint64_t, 64> Record; in parseUseLists() local
3585 case BitstreamEntry::Record: in parseUseLists()
3591 Record.clear(); in parseUseLists()
3593 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record); in parseUseLists()
3603 unsigned RecordLength = Record.size(); in parseUseLists()
3607 unsigned ID = Record.pop_back_val(); in parseUseLists()
3618 if (++NumUses > Record.size()) in parseUseLists()
3620 Order[&U] = Record[NumUses - 1]; in parseUseLists()
3622 if (Order.size() != Record.size() || NumUses > Record.size()) in parseUseLists()
3752 SmallVector<uint64_t, 64> Record; in rememberAndSkipFunctionBodies() local
3790 Error BitcodeReader::parseComdatRecord(ArrayRef<uint64_t> Record) { in parseComdatRecord() argument
3794 std::tie(Name, Record) = readNameFromStrtab(Record); in parseComdatRecord()
3796 if (Record.empty()) in parseComdatRecord()
3798 Comdat::SelectionKind SK = getDecodedComdatSelectionKind(Record[0]); in parseComdatRecord()
3801 if (Record.size() < 2) in parseComdatRecord()
3803 unsigned ComdatNameSize = Record[1]; in parseComdatRecord()
3804 if (ComdatNameSize > Record.size() - 2) in parseComdatRecord()
3808 OldFormatName += (char)Record[2 + i]; in parseComdatRecord()
3837 Error BitcodeReader::parseGlobalVarRecord(ArrayRef<uint64_t> Record) { in parseGlobalVarRecord() argument
3845 std::tie(Name, Record) = readNameFromStrtab(Record); in parseGlobalVarRecord()
3847 if (Record.size() < 6) in parseGlobalVarRecord()
3849 unsigned TyID = Record[0]; in parseGlobalVarRecord()
3853 bool isConstant = Record[1] & 1; in parseGlobalVarRecord()
3854 bool explicitType = Record[1] & 2; in parseGlobalVarRecord()
3857 AddressSpace = Record[1] >> 2; in parseGlobalVarRecord()
3868 uint64_t RawLinkage = Record[3]; in parseGlobalVarRecord()
3871 if (Error Err = parseAlignmentValue(Record[4], Alignment)) in parseGlobalVarRecord()
3874 if (Record[5]) { in parseGlobalVarRecord()
3875 if (Record[5] - 1 >= SectionTable.size()) in parseGlobalVarRecord()
3877 Section = SectionTable[Record[5] - 1]; in parseGlobalVarRecord()
3882 if (Record.size() > 6 && !GlobalValue::isLocalLinkage(Linkage)) in parseGlobalVarRecord()
3883 Visibility = getDecodedVisibility(Record[6]); in parseGlobalVarRecord()
3886 if (Record.size() > 7) in parseGlobalVarRecord()
3887 TLM = getDecodedThreadLocalMode(Record[7]); in parseGlobalVarRecord()
3890 if (Record.size() > 8) in parseGlobalVarRecord()
3891 UnnamedAddr = getDecodedUnnamedAddrType(Record[8]); in parseGlobalVarRecord()
3894 if (Record.size() > 9) in parseGlobalVarRecord()
3895 ExternallyInitialized = Record[9]; in parseGlobalVarRecord()
3907 if (Record.size() > 10) { in parseGlobalVarRecord()
3910 NewGV->setDLLStorageClass(getDecodedDLLStorageClass(Record[10])); in parseGlobalVarRecord()
3919 if (unsigned InitID = Record[2]) in parseGlobalVarRecord()
3922 if (Record.size() > 11) { in parseGlobalVarRecord()
3923 if (unsigned ComdatID = Record[11]) { in parseGlobalVarRecord()
3932 if (Record.size() > 12) { in parseGlobalVarRecord()
3933 auto AS = getAttributes(Record[12]).getFnAttrs(); in parseGlobalVarRecord()
3937 if (Record.size() > 13) { in parseGlobalVarRecord()
3938 NewGV->setDSOLocal(getDecodedDSOLocal(Record[13])); in parseGlobalVarRecord()
3943 if (Record.size() > 15) in parseGlobalVarRecord()
3944 NewGV->setPartition(StringRef(Strtab.data() + Record[14], Record[15])); in parseGlobalVarRecord()
3946 if (Record.size() > 16 && Record[16]) { in parseGlobalVarRecord()
3948 deserializeSanitizerMetadata(Record[16]); in parseGlobalVarRecord()
3952 if (Record.size() > 17 && Record[17]) { in parseGlobalVarRecord()
3953 if (auto CM = getDecodedCodeModel(Record[17])) in parseGlobalVarRecord()
3970 Error BitcodeReader::parseFunctionRecord(ArrayRef<uint64_t> Record) { in parseFunctionRecord() argument
3976 std::tie(Name, Record) = readNameFromStrtab(Record); in parseFunctionRecord()
3978 if (Record.size() < 8) in parseFunctionRecord()
3980 unsigned FTyID = Record[0]; in parseFunctionRecord()
3993 auto CC = static_cast<CallingConv::ID>(Record[1]); in parseFunctionRecord()
3998 if (Record.size() > 16) in parseFunctionRecord()
3999 AddrSpace = Record[16]; in parseFunctionRecord()
4010 bool isProto = Record[2]; in parseFunctionRecord()
4011 uint64_t RawLinkage = Record[3]; in parseFunctionRecord()
4013 Func->setAttributes(getAttributes(Record[4])); in parseFunctionRecord()
4065 if (Error Err = parseAlignmentValue(Record[5], Alignment)) in parseFunctionRecord()
4069 if (Record[6]) { in parseFunctionRecord()
4070 if (Record[6] - 1 >= SectionTable.size()) in parseFunctionRecord()
4072 Func->setSection(SectionTable[Record[6] - 1]); in parseFunctionRecord()
4077 Func->setVisibility(getDecodedVisibility(Record[7])); in parseFunctionRecord()
4078 if (Record.size() > 8 && Record[8]) { in parseFunctionRecord()
4079 if (Record[8] - 1 >= GCTable.size()) in parseFunctionRecord()
4081 Func->setGC(GCTable[Record[8] - 1]); in parseFunctionRecord()
4084 if (Record.size() > 9) in parseFunctionRecord()
4085 UnnamedAddr = getDecodedUnnamedAddrType(Record[9]); in parseFunctionRecord()
4089 if (Record.size() > 10) in parseFunctionRecord()
4090 OperandInfo.Prologue = Record[10]; in parseFunctionRecord()
4092 if (Record.size() > 11) { in parseFunctionRecord()
4095 Func->setDLLStorageClass(getDecodedDLLStorageClass(Record[11])); in parseFunctionRecord()
4101 if (Record.size() > 12) { in parseFunctionRecord()
4102 if (unsigned ComdatID = Record[12]) { in parseFunctionRecord()
4111 if (Record.size() > 13) in parseFunctionRecord()
4112 OperandInfo.Prefix = Record[13]; in parseFunctionRecord()
4114 if (Record.size() > 14) in parseFunctionRecord()
4115 OperandInfo.PersonalityFn = Record[14]; in parseFunctionRecord()
4117 if (Record.size() > 15) { in parseFunctionRecord()
4118 Func->setDSOLocal(getDecodedDSOLocal(Record[15])); in parseFunctionRecord()
4126 if (Record.size() > 18 && Strtab.data() && in parseFunctionRecord()
4127 Record[17] + Record[18] <= Strtab.size()) { in parseFunctionRecord()
4128 Func->setPartition(StringRef(Strtab.data() + Record[17], Record[18])); in parseFunctionRecord()
4147 unsigned BitCode, ArrayRef<uint64_t> Record) { in parseGlobalIndirectSymbolRecord() argument
4157 std::tie(Name, Record) = readNameFromStrtab(Record); in parseGlobalIndirectSymbolRecord()
4160 if (Record.size() < (3 + (unsigned)NewRecord)) in parseGlobalIndirectSymbolRecord()
4163 unsigned TypeID = Record[OpNum++]; in parseGlobalIndirectSymbolRecord()
4179 AddrSpace = Record[OpNum++]; in parseGlobalIndirectSymbolRecord()
4182 auto Val = Record[OpNum++]; in parseGlobalIndirectSymbolRecord()
4183 auto Linkage = Record[OpNum++]; in parseGlobalIndirectSymbolRecord()
4195 if (OpNum != Record.size()) { in parseGlobalIndirectSymbolRecord()
4198 NewGA->setVisibility(getDecodedVisibility(Record[VisInd])); in parseGlobalIndirectSymbolRecord()
4202 if (OpNum != Record.size()) { in parseGlobalIndirectSymbolRecord()
4203 auto S = Record[OpNum++]; in parseGlobalIndirectSymbolRecord()
4210 if (OpNum != Record.size()) in parseGlobalIndirectSymbolRecord()
4211 NewGA->setThreadLocalMode(getDecodedThreadLocalMode(Record[OpNum++])); in parseGlobalIndirectSymbolRecord()
4212 if (OpNum != Record.size()) in parseGlobalIndirectSymbolRecord()
4213 NewGA->setUnnamedAddr(getDecodedUnnamedAddrType(Record[OpNum++])); in parseGlobalIndirectSymbolRecord()
4215 if (OpNum != Record.size()) in parseGlobalIndirectSymbolRecord()
4216 NewGA->setDSOLocal(getDecodedDSOLocal(Record[OpNum++])); in parseGlobalIndirectSymbolRecord()
4220 if (OpNum + 1 < Record.size()) { in parseGlobalIndirectSymbolRecord()
4222 if (Record[OpNum] + Record[OpNum + 1] > Strtab.size()) in parseGlobalIndirectSymbolRecord()
4225 StringRef(Strtab.data() + Record[OpNum], Record[OpNum + 1])); in parseGlobalIndirectSymbolRecord()
4244 SmallVector<uint64_t, 64> Record; in parseModule() local
4429 case BitstreamEntry::Record: in parseModule()
4435 Expected<unsigned> MaybeBitCode = Stream.readRecord(Entry.ID, Record); in parseModule()
4441 Expected<unsigned> VersionOrErr = parseVersionRecord(Record); in parseModule()
4451 if (convertToString(Record, 0, S)) in parseModule()
4459 if (convertToString(Record, 0, TentativeDataLayoutStr)) in parseModule()
4465 if (convertToString(Record, 0, S)) in parseModule()
4473 if (convertToString(Record, 0, S)) in parseModule()
4480 if (convertToString(Record, 0, S)) in parseModule()
4487 if (convertToString(Record, 0, S)) in parseModule()
4493 if (Error Err = parseComdatRecord(Record)) in parseModule()
4502 if (Error Err = parseGlobalVarRecord(Record)) in parseModule()
4508 if (Error Err = parseFunctionRecord(Record)) in parseModule()
4514 if (Error Err = parseGlobalIndirectSymbolRecord(BitCode, Record)) in parseModule()
4519 if (Record.empty()) in parseModule()
4524 VSTOffset = Record[0] - 1; in parseModule()
4529 if (convertToString(Record, 0, ValueName)) in parseModule()
4534 Record.clear(); in parseModule()
4701 SmallVector<uint64_t, 64> Record; in parseFunctionBody() local
4747 case BitstreamEntry::Record: in parseFunctionBody()
4753 Record.clear(); in parseFunctionBody()
4756 Expected<unsigned> MaybeBitCode = Stream.readRecord(Entry.ID, Record); in parseFunctionBody()
4763 if (Record.empty() || Record[0] == 0) in parseFunctionBody()
4766 FunctionBBs.resize(Record[0]); in parseFunctionBody()
4799 if (Record.empty()) in parseFunctionBody()
4814 for (uint64_t ValID : Record) in parseFunctionBody()
4835 if (!I || Record.size() < 4) in parseFunctionBody()
4838 unsigned Line = Record[0], Col = Record[1]; in parseFunctionBody()
4839 unsigned ScopeID = Record[2], IAID = Record[3]; in parseFunctionBody()
4840 bool isImplicitCode = Record.size() == 5 && Record[4]; in parseFunctionBody()
4865 if (getValueTypePair(Record, OpNum, NextValueNo, LHS, TypeID, CurBB) || in parseFunctionBody()
4866 OpNum+1 > Record.size()) in parseFunctionBody()
4869 int Opc = getDecodedUnaryOpcode(Record[OpNum++], LHS->getType()); in parseFunctionBody()
4875 if (OpNum < Record.size()) { in parseFunctionBody()
4877 FastMathFlags FMF = getDecodedFastMathFlags(Record[OpNum]); in parseFunctionBody()
4888 if (getValueTypePair(Record, OpNum, NextValueNo, LHS, TypeID, CurBB) || in parseFunctionBody()
4889 popValue(Record, OpNum, NextValueNo, LHS->getType(), TypeID, RHS, in parseFunctionBody()
4891 OpNum+1 > Record.size()) in parseFunctionBody()
4894 int Opc = getDecodedBinaryOpcode(Record[OpNum++], LHS->getType()); in parseFunctionBody()
4900 if (OpNum < Record.size()) { in parseFunctionBody()
4905 if (Record[OpNum] & (1 << bitc::OBO_NO_SIGNED_WRAP)) in parseFunctionBody()
4907 if (Record[OpNum] & (1 << bitc::OBO_NO_UNSIGNED_WRAP)) in parseFunctionBody()
4913 if (Record[OpNum] & (1 << bitc::PEO_EXACT)) in parseFunctionBody()
4916 if (Record[OpNum] & (1 << bitc::PDI_DISJOINT)) in parseFunctionBody()
4919 FastMathFlags FMF = getDecodedFastMathFlags(Record[OpNum]); in parseFunctionBody()
4930 if (getValueTypePair(Record, OpNum, NextValueNo, Op, OpTypeID, CurBB) || in parseFunctionBody()
4931 OpNum + 1 > Record.size()) in parseFunctionBody()
4934 ResTypeID = Record[OpNum++]; in parseFunctionBody()
4936 int Opc = getDecodedCastOpcode(Record[OpNum++]); in parseFunctionBody()
4953 if (OpNum < Record.size() && isa<PossiblyNonNegInst>(I) && in parseFunctionBody()
4954 (Record[OpNum] & (1 << bitc::PNNI_NON_NEG))) in parseFunctionBody()
4969 InBounds = Record[OpNum++]; in parseFunctionBody()
4970 TyID = Record[OpNum++]; in parseFunctionBody()
4980 if (getValueTypePair(Record, OpNum, NextValueNo, BasePtr, BasePtrTypeID, in parseFunctionBody()
4992 while (OpNum != Record.size()) { in parseFunctionBody()
4995 if (getValueTypePair(Record, OpNum, NextValueNo, Op, OpTypeID, CurBB)) in parseFunctionBody()
5036 if (getValueTypePair(Record, OpNum, NextValueNo, Agg, AggTypeID, CurBB)) in parseFunctionBody()
5040 unsigned RecSize = Record.size(); in parseFunctionBody()
5049 uint64_t Index = Record[OpNum]; in parseFunctionBody()
5080 if (getValueTypePair(Record, OpNum, NextValueNo, Agg, AggTypeID, CurBB)) in parseFunctionBody()
5084 if (getValueTypePair(Record, OpNum, NextValueNo, Val, ValTypeID, CurBB)) in parseFunctionBody()
5087 unsigned RecSize = Record.size(); in parseFunctionBody()
5096 uint64_t Index = Record[OpNum]; in parseFunctionBody()
5130 if (getValueTypePair(Record, OpNum, NextValueNo, TrueVal, TypeID, in parseFunctionBody()
5132 popValue(Record, OpNum, NextValueNo, TrueVal->getType(), TypeID, in parseFunctionBody()
5134 popValue(Record, OpNum, NextValueNo, CondType, in parseFunctionBody()
5150 if (getValueTypePair(Record, OpNum, NextValueNo, TrueVal, ValTypeID, in parseFunctionBody()
5152 popValue(Record, OpNum, NextValueNo, TrueVal->getType(), ValTypeID, in parseFunctionBody()
5154 getValueTypePair(Record, OpNum, NextValueNo, Cond, CondTypeID, CurBB)) in parseFunctionBody()
5172 if (OpNum < Record.size() && isa<FPMathOperator>(I)) { in parseFunctionBody()
5173 FastMathFlags FMF = getDecodedFastMathFlags(Record[OpNum]); in parseFunctionBody()
5184 if (getValueTypePair(Record, OpNum, NextValueNo, Vec, VecTypeID, CurBB) || in parseFunctionBody()
5185 getValueTypePair(Record, OpNum, NextValueNo, Idx, IdxTypeID, CurBB)) in parseFunctionBody()
5199 if (getValueTypePair(Record, OpNum, NextValueNo, Vec, VecTypeID, CurBB)) in parseFunctionBody()
5203 if (popValue(Record, OpNum, NextValueNo, in parseFunctionBody()
5206 getValueTypePair(Record, OpNum, NextValueNo, Idx, IdxTypeID, CurBB)) in parseFunctionBody()
5218 if (getValueTypePair(Record, OpNum, NextValueNo, Vec1, Vec1TypeID, in parseFunctionBody()
5220 popValue(Record, OpNum, NextValueNo, Vec1->getType(), Vec1TypeID, in parseFunctionBody()
5225 if (getValueTypePair(Record, OpNum, NextValueNo, Mask, MaskTypeID, CurBB)) in parseFunctionBody()
5247 if (getValueTypePair(Record, OpNum, NextValueNo, LHS, LHSTypeID, CurBB) || in parseFunctionBody()
5248 popValue(Record, OpNum, NextValueNo, LHS->getType(), LHSTypeID, RHS, in parseFunctionBody()
5252 if (OpNum >= Record.size()) in parseFunctionBody()
5256 CmpInst::Predicate PredVal = CmpInst::Predicate(Record[OpNum]); in parseFunctionBody()
5259 if (IsFP && Record.size() > OpNum+1) in parseFunctionBody()
5260 FMF = getDecodedFastMathFlags(Record[++OpNum]); in parseFunctionBody()
5262 if (OpNum+1 != Record.size()) in parseFunctionBody()
5287 unsigned Size = Record.size(); in parseFunctionBody()
5297 if (getValueTypePair(Record, OpNum, NextValueNo, Op, OpTypeID, CurBB)) in parseFunctionBody()
5299 if (OpNum != Record.size()) in parseFunctionBody()
5307 if (Record.size() != 1 && Record.size() != 3) in parseFunctionBody()
5309 BasicBlock *TrueDest = getBasicBlock(Record[0]); in parseFunctionBody()
5313 if (Record.size() == 1) { in parseFunctionBody()
5318 BasicBlock *FalseDest = getBasicBlock(Record[1]); in parseFunctionBody()
5320 Value *Cond = getValue(Record, 2, NextValueNo, CondType, in parseFunctionBody()
5330 if (Record.size() != 1 && Record.size() != 2) in parseFunctionBody()
5334 Value *CleanupPad = getValue(Record, Idx++, NextValueNo, TokenTy, in parseFunctionBody()
5339 if (Record.size() == 2) { in parseFunctionBody()
5340 UnwindDest = getBasicBlock(Record[Idx++]); in parseFunctionBody()
5350 if (Record.size() != 2) in parseFunctionBody()
5354 Value *CatchPad = getValue(Record, Idx++, NextValueNo, TokenTy, in parseFunctionBody()
5358 BasicBlock *BB = getBasicBlock(Record[Idx++]); in parseFunctionBody()
5368 if (Record.size() < 2) in parseFunctionBody()
5374 Value *ParentPad = getValue(Record, Idx++, NextValueNo, TokenTy, in parseFunctionBody()
5379 unsigned NumHandlers = Record[Idx++]; in parseFunctionBody()
5383 BasicBlock *BB = getBasicBlock(Record[Idx++]); in parseFunctionBody()
5390 if (Idx + 1 == Record.size()) { in parseFunctionBody()
5391 UnwindDest = getBasicBlock(Record[Idx++]); in parseFunctionBody()
5396 if (Record.size() != Idx) in parseFunctionBody()
5411 if (Record.size() < 2) in parseFunctionBody()
5417 Value *ParentPad = getValue(Record, Idx++, NextValueNo, TokenTy, in parseFunctionBody()
5422 unsigned NumArgOperands = Record[Idx++]; in parseFunctionBody()
5428 if (getValueTypePair(Record, Idx, NextValueNo, Val, ValTypeID, nullptr)) in parseFunctionBody()
5433 if (Record.size() != Idx) in parseFunctionBody()
5446 if ((Record[0] >> 16) == SWITCH_INST_MAGIC) { in parseFunctionBody()
5452 unsigned OpTyID = Record[1]; in parseFunctionBody()
5456 Value *Cond = getValue(Record, 2, NextValueNo, OpTy, OpTyID, CurBB); in parseFunctionBody()
5457 BasicBlock *Default = getBasicBlock(Record[3]); in parseFunctionBody()
5461 unsigned NumCases = Record[4]; in parseFunctionBody()
5469 unsigned NumItems = Record[CurIdx++]; in parseFunctionBody()
5471 bool isSingleNumber = Record[CurIdx++]; in parseFunctionBody()
5476 ActiveWords = Record[CurIdx++]; in parseFunctionBody()
5477 Low = readWideAPInt(ArrayRef(&Record[CurIdx], ActiveWords), in parseFunctionBody()
5484 ActiveWords = Record[CurIdx++]; in parseFunctionBody()
5485 APInt High = readWideAPInt(ArrayRef(&Record[CurIdx], ActiveWords), in parseFunctionBody()
5498 BasicBlock *DestBB = getBasicBlock(Record[CurIdx++]); in parseFunctionBody()
5508 if (Record.size() < 3 || (Record.size() & 1) == 0) in parseFunctionBody()
5510 unsigned OpTyID = Record[0]; in parseFunctionBody()
5512 Value *Cond = getValue(Record, 1, NextValueNo, OpTy, OpTyID, CurBB); in parseFunctionBody()
5513 BasicBlock *Default = getBasicBlock(Record[2]); in parseFunctionBody()
5516 unsigned NumCases = (Record.size()-3)/2; in parseFunctionBody()
5521 getFnValueByID(Record[3+i*2], OpTy, OpTyID, nullptr)); in parseFunctionBody()
5522 BasicBlock *DestBB = getBasicBlock(Record[1+3+i*2]); in parseFunctionBody()
5533 if (Record.size() < 2) in parseFunctionBody()
5535 unsigned OpTyID = Record[0]; in parseFunctionBody()
5537 Value *Address = getValue(Record, 1, NextValueNo, OpTy, OpTyID, CurBB); in parseFunctionBody()
5540 unsigned NumDests = Record.size()-2; in parseFunctionBody()
5544 if (BasicBlock *DestBB = getBasicBlock(Record[2+i])) { in parseFunctionBody()
5557 if (Record.size() < 4) in parseFunctionBody()
5560 AttributeList PAL = getAttributes(Record[OpNum++]); in parseFunctionBody()
5561 unsigned CCInfo = Record[OpNum++]; in parseFunctionBody()
5562 BasicBlock *NormalBB = getBasicBlock(Record[OpNum++]); in parseFunctionBody()
5563 BasicBlock *UnwindBB = getBasicBlock(Record[OpNum++]); in parseFunctionBody()
5568 FTyID = Record[OpNum++]; in parseFunctionBody()
5576 if (getValueTypePair(Record, OpNum, NextValueNo, Callee, CalleeTypeID, in parseFunctionBody()
5589 if (Record.size() < FTy->getNumParams() + OpNum) in parseFunctionBody()
5596 Ops.push_back(getValue(Record, OpNum, NextValueNo, FTy->getParamType(i), in parseFunctionBody()
5604 if (Record.size() != OpNum) in parseFunctionBody()
5608 while (OpNum != Record.size()) { in parseFunctionBody()
5611 if (getValueTypePair(Record, OpNum, NextValueNo, Op, OpTypeID, CurBB)) in parseFunctionBody()
5641 if (getValueTypePair(Record, Idx, NextValueNo, Val, ValTypeID, CurBB)) in parseFunctionBody()
5650 AttributeList PAL = getAttributes(Record[OpNum++]); in parseFunctionBody()
5651 unsigned CCInfo = Record[OpNum++]; in parseFunctionBody()
5653 BasicBlock *DefaultDest = getBasicBlock(Record[OpNum++]); in parseFunctionBody()
5654 unsigned NumIndirectDests = Record[OpNum++]; in parseFunctionBody()
5657 IndirectDests.push_back(getBasicBlock(Record[OpNum++])); in parseFunctionBody()
5662 FTyID = Record[OpNum++]; in parseFunctionBody()
5670 if (getValueTypePair(Record, OpNum, NextValueNo, Callee, CalleeTypeID, in parseFunctionBody()
5683 if (Record.size() < FTy->getNumParams() + OpNum) in parseFunctionBody()
5693 Arg = getBasicBlock(Record[OpNum]); in parseFunctionBody()
5695 Arg = getValue(Record, OpNum, NextValueNo, FTy->getParamType(i), in parseFunctionBody()
5705 if (OpNum != Record.size()) in parseFunctionBody()
5708 while (OpNum != Record.size()) { in parseFunctionBody()
5711 if (getValueTypePair(Record, OpNum, NextValueNo, Op, OpTypeID, CurBB)) in parseFunctionBody()
5796 if (Record.empty()) in parseFunctionBody()
5799 unsigned TyID = Record[0]; in parseFunctionBody()
5807 size_t NumArgs = (Record.size() - 1) / 2; in parseFunctionBody()
5809 if ((Record.size() - 1) % 2 == 1 && !isa<FPMathOperator>(PN)) { in parseFunctionBody()
5817 BasicBlock *BB = getBasicBlock(Record[i * 2 + 2]); in parseFunctionBody()
5849 V = getValueSigned(Record, i * 2 + 1, NextValueNo, Ty, TyID, EdgeBB); in parseFunctionBody()
5851 V = getValue(Record, i * 2 + 1, NextValueNo, Ty, TyID, EdgeBB); in parseFunctionBody()
5869 if (Record.size() % 2 == 0) { in parseFunctionBody()
5871 FastMathFlags FMF = getDecodedFastMathFlags(Record[Record.size() - 1]); in parseFunctionBody()
5884 if (Record.size() < 3) in parseFunctionBody()
5888 if (Record.size() < 4) in parseFunctionBody()
5891 ResTypeID = Record[Idx++]; in parseFunctionBody()
5898 if (getValueTypePair(Record, Idx, NextValueNo, PersFn, PersFnTypeID, in parseFunctionBody()
5908 bool IsCleanup = !!Record[Idx++]; in parseFunctionBody()
5909 unsigned NumClauses = Record[Idx++]; in parseFunctionBody()
5914 LandingPadInst::ClauseType(Record[Idx++]); (void)CT; in parseFunctionBody()
5918 if (getValueTypePair(Record, Idx, NextValueNo, Val, ValTypeID, in parseFunctionBody()
5939 if (Record.size() != 4 && Record.size() != 5) in parseFunctionBody()
5942 const uint64_t Rec = Record[3]; in parseFunctionBody()
5945 unsigned TyID = Record[0]; in parseFunctionBody()
5953 unsigned OpTyID = Record[1]; in parseFunctionBody()
5955 Value *Size = getFnValueByID(Record[2], OpTy, OpTyID, CurBB); in parseFunctionBody()
5967 unsigned AS = Record.size() == 5 ? Record[4] : DL.getAllocaAddrSpace(); in parseFunctionBody()
5990 if (getValueTypePair(Record, OpNum, NextValueNo, Op, OpTypeID, CurBB) || in parseFunctionBody()
5991 (OpNum + 2 != Record.size() && OpNum + 3 != Record.size())) in parseFunctionBody()
5998 if (OpNum + 3 == Record.size()) { in parseFunctionBody()
5999 ResTypeID = Record[OpNum++]; in parseFunctionBody()
6013 if (Error Err = parseAlignmentValue(Record[OpNum], Align)) in parseFunctionBody()
6020 I = new LoadInst(Ty, Op, "", Record[OpNum + 1], *Align); in parseFunctionBody()
6029 if (getValueTypePair(Record, OpNum, NextValueNo, Op, OpTypeID, CurBB) || in parseFunctionBody()
6030 (OpNum + 4 != Record.size() && OpNum + 5 != Record.size())) in parseFunctionBody()
6037 if (OpNum + 5 == Record.size()) { in parseFunctionBody()
6038 ResTypeID = Record[OpNum++]; in parseFunctionBody()
6051 AtomicOrdering Ordering = getDecodedOrdering(Record[OpNum + 2]); in parseFunctionBody()
6056 if (Ordering != AtomicOrdering::NotAtomic && Record[OpNum] == 0) in parseFunctionBody()
6058 SyncScope::ID SSID = getDecodedSyncScopeID(Record[OpNum + 3]); in parseFunctionBody()
6061 if (Error Err = parseAlignmentValue(Record[OpNum], Align)) in parseFunctionBody()
6065 I = new LoadInst(Ty, Op, "", Record[OpNum + 1], *Align, Ordering, SSID); in parseFunctionBody()
6074 if (getValueTypePair(Record, OpNum, NextValueNo, Ptr, PtrTypeID, CurBB)) in parseFunctionBody()
6078 if (getValueTypePair(Record, OpNum, NextValueNo, Val, ValTypeID, CurBB)) in parseFunctionBody()
6082 if (popValue(Record, OpNum, NextValueNo, getTypeByID(ValTypeID), in parseFunctionBody()
6087 if (OpNum + 2 != Record.size()) in parseFunctionBody()
6093 if (Error Err = parseAlignmentValue(Record[OpNum], Align)) in parseFunctionBody()
6100 I = new StoreInst(Val, Ptr, Record[OpNum + 1], *Align); in parseFunctionBody()
6110 if (getValueTypePair(Record, OpNum, NextValueNo, Ptr, PtrTypeID, CurBB) || in parseFunctionBody()
6114 if (getValueTypePair(Record, OpNum, NextValueNo, Val, ValTypeID, CurBB)) in parseFunctionBody()
6118 if (popValue(Record, OpNum, NextValueNo, getTypeByID(ValTypeID), in parseFunctionBody()
6123 if (OpNum + 4 != Record.size()) in parseFunctionBody()
6128 AtomicOrdering Ordering = getDecodedOrdering(Record[OpNum + 2]); in parseFunctionBody()
6133 SyncScope::ID SSID = getDecodedSyncScopeID(Record[OpNum + 3]); in parseFunctionBody()
6134 if (Ordering != AtomicOrdering::NotAtomic && Record[OpNum] == 0) in parseFunctionBody()
6138 if (Error Err = parseAlignmentValue(Record[OpNum], Align)) in parseFunctionBody()
6142 I = new StoreInst(Val, Ptr, Record[OpNum + 1], *Align, Ordering, SSID); in parseFunctionBody()
6149 const size_t NumRecords = Record.size(); in parseFunctionBody()
6153 if (getValueTypePair(Record, OpNum, NextValueNo, Ptr, PtrTypeID, CurBB)) in parseFunctionBody()
6161 if (popValue(Record, OpNum, NextValueNo, getTypeByID(CmpTypeID), in parseFunctionBody()
6166 if (popValue(Record, OpNum, NextValueNo, Cmp->getType(), CmpTypeID, in parseFunctionBody()
6172 getDecodedOrdering(Record[OpNum + 1]); in parseFunctionBody()
6177 const SyncScope::ID SSID = getDecodedSyncScopeID(Record[OpNum + 2]); in parseFunctionBody()
6185 : getDecodedOrdering(Record[OpNum + 3]); in parseFunctionBody()
6196 cast<AtomicCmpXchgInst>(I)->setVolatile(Record[OpNum]); in parseFunctionBody()
6206 cast<AtomicCmpXchgInst>(I)->setWeak(Record[OpNum + 4]); in parseFunctionBody()
6217 const size_t NumRecords = Record.size(); in parseFunctionBody()
6221 if (getValueTypePair(Record, OpNum, NextValueNo, Ptr, PtrTypeID, CurBB)) in parseFunctionBody()
6229 if (getValueTypePair(Record, OpNum, NextValueNo, Cmp, CmpTypeID, CurBB)) in parseFunctionBody()
6233 if (popValue(Record, OpNum, NextValueNo, Cmp->getType(), CmpTypeID, Val, in parseFunctionBody()
6240 const bool IsVol = Record[OpNum]; in parseFunctionBody()
6243 getDecodedOrdering(Record[OpNum + 1]); in parseFunctionBody()
6247 const SyncScope::ID SSID = getDecodedSyncScopeID(Record[OpNum + 2]); in parseFunctionBody()
6253 getDecodedOrdering(Record[OpNum + 3]); in parseFunctionBody()
6257 const bool IsWeak = Record[OpNum + 4]; in parseFunctionBody()
6262 if (Error Err = parseAlignmentValue(Record[OpNum + 5], Alignment)) in parseFunctionBody()
6284 const size_t NumRecords = Record.size(); in parseFunctionBody()
6289 if (getValueTypePair(Record, OpNum, NextValueNo, Ptr, PtrTypeID, CurBB)) in parseFunctionBody()
6299 if (popValue(Record, OpNum, NextValueNo, in parseFunctionBody()
6303 if (getValueTypePair(Record, OpNum, NextValueNo, Val, ValTypeID, CurBB)) in parseFunctionBody()
6311 getDecodedRMWOperation(Record[OpNum]); in parseFunctionBody()
6316 const bool IsVol = Record[OpNum + 1]; in parseFunctionBody()
6318 const AtomicOrdering Ordering = getDecodedOrdering(Record[OpNum + 2]); in parseFunctionBody()
6323 const SyncScope::ID SSID = getDecodedSyncScopeID(Record[OpNum + 3]); in parseFunctionBody()
6328 if (Error Err = parseAlignmentValue(Record[OpNum + 4], Alignment)) in parseFunctionBody()
6344 if (2 != Record.size()) in parseFunctionBody()
6346 AtomicOrdering Ordering = getDecodedOrdering(Record[0]); in parseFunctionBody()
6351 SyncScope::ID SSID = getDecodedSyncScopeID(Record[1]); in parseFunctionBody()
6358 if (Record.size() < 3) in parseFunctionBody()
6362 AttributeList PAL = getAttributes(Record[OpNum++]); in parseFunctionBody()
6363 unsigned CCInfo = Record[OpNum++]; in parseFunctionBody()
6367 FMF = getDecodedFastMathFlags(Record[OpNum++]); in parseFunctionBody()
6375 FTyID = Record[OpNum++]; in parseFunctionBody()
6383 if (getValueTypePair(Record, OpNum, NextValueNo, Callee, CalleeTypeID, in parseFunctionBody()
6396 if (Record.size() < FTy->getNumParams() + OpNum) in parseFunctionBody()
6405 Args.push_back(getBasicBlock(Record[OpNum])); in parseFunctionBody()
6407 Args.push_back(getValue(Record, OpNum, NextValueNo, in parseFunctionBody()
6416 if (OpNum != Record.size()) in parseFunctionBody()
6419 while (OpNum != Record.size()) { in parseFunctionBody()
6422 if (getValueTypePair(Record, OpNum, NextValueNo, Op, OpTypeID, CurBB)) in parseFunctionBody()
6461 if (Record.size() < 3) in parseFunctionBody()
6463 unsigned OpTyID = Record[0]; in parseFunctionBody()
6465 Value *Op = getValue(Record, 1, NextValueNo, OpTy, OpTyID, CurBB); in parseFunctionBody()
6466 ResTypeID = Record[2]; in parseFunctionBody()
6480 if (Record.empty() || Record[0] >= BundleTags.size()) in parseFunctionBody()
6486 while (OpNum != Record.size()) { in parseFunctionBody()
6489 if (getValueTypePair(Record, OpNum, NextValueNo, Op, OpTypeID, CurBB)) in parseFunctionBody()
6494 OperandBundles.emplace_back(BundleTags[Record[0]], std::move(Inputs)); in parseFunctionBody()
6502 if (getValueTypePair(Record, OpNum, NextValueNo, Op, OpTypeID, CurBB)) in parseFunctionBody()
6504 if (OpNum != Record.size()) in parseFunctionBody()
6835 SmallVector<uint64_t, 64> Record; in parseValueSymbolTable() local
6855 case BitstreamEntry::Record: in parseValueSymbolTable()
6861 Record.clear(); in parseValueSymbolTable()
6862 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record); in parseValueSymbolTable()
6869 if (convertToString(Record, 1, ValueName)) in parseValueSymbolTable()
6871 unsigned ValueID = Record[0]; in parseValueSymbolTable()
6883 if (convertToString(Record, 2, ValueName)) in parseValueSymbolTable()
6885 unsigned ValueID = Record[0]; in parseValueSymbolTable()
6897 unsigned ValueID = Record[0]; in parseValueSymbolTable()
6898 GlobalValue::GUID RefGUID = Record[1]; in parseValueSymbolTable()
6916 SmallVector<uint64_t, 64> Record; in parseModule() local
6980 case BitstreamEntry::Record: { in parseModule()
6981 Record.clear(); in parseModule()
6982 Expected<unsigned> MaybeBitCode = Stream.readRecord(Entry.ID, Record); in parseModule()
6989 if (Error Err = parseVersionRecord(Record).takeError()) in parseModule()
6996 if (convertToString(Record, 0, ValueName)) in parseModule()
7003 if (Record.size() != 5) in parseModule()
7004 return error("Invalid hash length " + Twine(Record.size()).str()); in parseModule()
7007 for (auto &Val : Record) { in parseModule()
7015 if (Record.empty()) in parseModule()
7020 VSTOffset = Record[0] - 1; in parseModule()
7031 std::tie(Name, GVRecord) = readNameFromStrtab(Record); in parseModule()
7052 ModuleSummaryIndexBitcodeReader::makeRefList(ArrayRef<uint64_t> Record) { in makeRefList() argument
7054 Ret.reserve(Record.size()); in makeRefList()
7055 for (uint64_t RefValueId : Record) in makeRefList()
7061 ModuleSummaryIndexBitcodeReader::makeCallList(ArrayRef<uint64_t> Record, in makeCallList() argument
7065 Ret.reserve(Record.size()); in makeCallList()
7066 for (unsigned I = 0, E = Record.size(); I != E; ++I) { in makeCallList()
7070 ValueInfo Callee = std::get<0>(getValueInfoFromValueId(Record[I])); in makeCallList()
7077 getDecodedHotnessCallEdgeInfo(Record[++I]); in makeCallList()
7079 getDecodedRelBFCallEdgeInfo(Record[++I], RelBF, HasTailCall); in makeCallList()
7087 parseWholeProgramDevirtResolutionByArg(ArrayRef<uint64_t> Record, size_t &Slot, in parseWholeProgramDevirtResolutionByArg() argument
7089 uint64_t ArgNum = Record[Slot++]; in parseWholeProgramDevirtResolutionByArg()
7091 Wpd.ResByArg[{Record.begin() + Slot, Record.begin() + Slot + ArgNum}]; in parseWholeProgramDevirtResolutionByArg()
7095 static_cast<WholeProgramDevirtResolution::ByArg::Kind>(Record[Slot++]); in parseWholeProgramDevirtResolutionByArg()
7096 B.Info = Record[Slot++]; in parseWholeProgramDevirtResolutionByArg()
7097 B.Byte = Record[Slot++]; in parseWholeProgramDevirtResolutionByArg()
7098 B.Bit = Record[Slot++]; in parseWholeProgramDevirtResolutionByArg()
7101 static void parseWholeProgramDevirtResolution(ArrayRef<uint64_t> Record, in parseWholeProgramDevirtResolution() argument
7104 uint64_t Id = Record[Slot++]; in parseWholeProgramDevirtResolution()
7107 Wpd.TheKind = static_cast<WholeProgramDevirtResolution::Kind>(Record[Slot++]); in parseWholeProgramDevirtResolution()
7108 Wpd.SingleImplName = {Strtab.data() + Record[Slot], in parseWholeProgramDevirtResolution()
7109 static_cast<size_t>(Record[Slot + 1])}; in parseWholeProgramDevirtResolution()
7112 uint64_t ResByArgNum = Record[Slot++]; in parseWholeProgramDevirtResolution()
7114 parseWholeProgramDevirtResolutionByArg(Record, Slot, Wpd); in parseWholeProgramDevirtResolution()
7117 static void parseTypeIdSummaryRecord(ArrayRef<uint64_t> Record, in parseTypeIdSummaryRecord() argument
7122 {Strtab.data() + Record[Slot], static_cast<size_t>(Record[Slot + 1])}); in parseTypeIdSummaryRecord()
7125 TypeId.TTRes.TheKind = static_cast<TypeTestResolution::Kind>(Record[Slot++]); in parseTypeIdSummaryRecord()
7126 TypeId.TTRes.SizeM1BitWidth = Record[Slot++]; in parseTypeIdSummaryRecord()
7127 TypeId.TTRes.AlignLog2 = Record[Slot++]; in parseTypeIdSummaryRecord()
7128 TypeId.TTRes.SizeM1 = Record[Slot++]; in parseTypeIdSummaryRecord()
7129 TypeId.TTRes.BitMask = Record[Slot++]; in parseTypeIdSummaryRecord()
7130 TypeId.TTRes.InlineBits = Record[Slot++]; in parseTypeIdSummaryRecord()
7132 while (Slot < Record.size()) in parseTypeIdSummaryRecord()
7133 parseWholeProgramDevirtResolution(Record, Strtab, Slot, TypeId); in parseTypeIdSummaryRecord()
7137 ModuleSummaryIndexBitcodeReader::parseParamAccesses(ArrayRef<uint64_t> Record) { in parseParamAccesses() argument
7140 BitcodeReader::decodeSignRotatedValue(Record.front())); in parseParamAccesses()
7141 Record = Record.drop_front(); in parseParamAccesses()
7143 BitcodeReader::decodeSignRotatedValue(Record.front())); in parseParamAccesses()
7144 Record = Record.drop_front(); in parseParamAccesses()
7152 while (!Record.empty()) { in parseParamAccesses()
7155 ParamAccess.ParamNo = Record.front(); in parseParamAccesses()
7156 Record = Record.drop_front(); in parseParamAccesses()
7158 ParamAccess.Calls.resize(Record.front()); in parseParamAccesses()
7159 Record = Record.drop_front(); in parseParamAccesses()
7161 Call.ParamNo = Record.front(); in parseParamAccesses()
7162 Record = Record.drop_front(); in parseParamAccesses()
7163 Call.Callee = std::get<0>(getValueInfoFromValueId(Record.front())); in parseParamAccesses()
7164 Record = Record.drop_front(); in parseParamAccesses()
7172 ArrayRef<uint64_t> Record, size_t &Slot, in parseTypeIdCompatibleVtableInfo() argument
7174 uint64_t Offset = Record[Slot++]; in parseTypeIdCompatibleVtableInfo()
7175 ValueInfo Callee = std::get<0>(getValueInfoFromValueId(Record[Slot++])); in parseTypeIdCompatibleVtableInfo()
7180 ArrayRef<uint64_t> Record) { in parseTypeIdCompatibleVtableSummaryRecord() argument
7184 {Strtab.data() + Record[Slot], in parseTypeIdCompatibleVtableSummaryRecord()
7185 static_cast<size_t>(Record[Slot + 1])}); in parseTypeIdCompatibleVtableSummaryRecord()
7188 while (Slot < Record.size()) in parseTypeIdCompatibleVtableSummaryRecord()
7189 parseTypeIdCompatibleVtableInfo(Record, Slot, TypeId); in parseTypeIdCompatibleVtableSummaryRecord()
7209 SmallVector<uint64_t, 64> Record; in parseEntireSummary() local
7218 if (Entry.Kind != BitstreamEntry::Record) in parseEntireSummary()
7220 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record); in parseEntireSummary()
7226 const uint64_t Version = Record[0]; in parseEntireSummary()
7233 Record.clear(); in parseEntireSummary()
7265 case BitstreamEntry::Record: in parseEntireSummary()
7277 Record.clear(); in parseEntireSummary()
7278 Expected<unsigned> MaybeBitCode = Stream.readRecord(Entry.ID, Record); in parseEntireSummary()
7285 TheIndex.setFlags(Record[0]); in parseEntireSummary()
7289 uint64_t ValueID = Record[0]; in parseEntireSummary()
7290 GlobalValue::GUID RefGUID = Record[1]; in parseEntireSummary()
7307 unsigned ValueID = Record[0]; in parseEntireSummary()
7308 uint64_t RawFlags = Record[1]; in parseEntireSummary()
7309 unsigned InstCount = Record[2]; in parseEntireSummary()
7311 unsigned NumRefs = Record[3]; in parseEntireSummary()
7315 RawFunFlags = Record[3]; in parseEntireSummary()
7316 NumRefs = Record[4]; in parseEntireSummary()
7319 NumRORefs = Record[5]; in parseEntireSummary()
7322 NumWORefs = Record[6]; in parseEntireSummary()
7335 assert(Record.size() >= RefListStartIndex + NumRefs && in parseEntireSummary()
7338 ArrayRef<uint64_t>(Record).slice(RefListStartIndex, NumRefs)); in parseEntireSummary()
7342 ArrayRef<uint64_t>(Record).slice(CallGraphEdgeStartIndex), in parseEntireSummary()
7375 unsigned ValueID = Record[0]; in parseEntireSummary()
7376 uint64_t RawFlags = Record[1]; in parseEntireSummary()
7377 unsigned AliaseeID = Record[2]; in parseEntireSummary()
7400 unsigned ValueID = Record[0]; in parseEntireSummary()
7401 uint64_t RawFlags = Record[1]; in parseEntireSummary()
7409 GVF = getDecodedGVarFlags(Record[2]); in parseEntireSummary()
7413 makeRefList(ArrayRef<uint64_t>(Record).slice(RefArrayStart)); in parseEntireSummary()
7426 unsigned ValueID = Record[0]; in parseEntireSummary()
7427 uint64_t RawFlags = Record[1]; in parseEntireSummary()
7428 GlobalVarSummary::GVarFlags GVF = getDecodedGVarFlags(Record[2]); in parseEntireSummary()
7429 unsigned NumRefs = Record[3]; in parseEntireSummary()
7434 ArrayRef<uint64_t>(Record).slice(RefListStartIndex, NumRefs)); in parseEntireSummary()
7436 for (unsigned I = VTableListStartIndex, E = Record.size(); I != E; ++I) { in parseEntireSummary()
7437 ValueInfo Callee = std::get<0>(getValueInfoFromValueId(Record[I])); in parseEntireSummary()
7438 uint64_t Offset = Record[++I]; in parseEntireSummary()
7458 unsigned ValueID = Record[0]; in parseEntireSummary()
7459 uint64_t ModuleId = Record[1]; in parseEntireSummary()
7460 uint64_t RawFlags = Record[2]; in parseEntireSummary()
7461 unsigned InstCount = Record[3]; in parseEntireSummary()
7464 unsigned NumRefs = Record[4]; in parseEntireSummary()
7469 RawFunFlags = Record[4]; in parseEntireSummary()
7477 EntryCount = Record[5]; in parseEntireSummary()
7481 NumWORefs = Record[8]; in parseEntireSummary()
7485 NumRORefs = Record[RefListStartIndex - NumRORefsOffset]; in parseEntireSummary()
7487 NumRefs = Record[NumRefsIndex]; in parseEntireSummary()
7492 assert(Record.size() >= RefListStartIndex + NumRefs && in parseEntireSummary()
7495 ArrayRef<uint64_t>(Record).slice(RefListStartIndex, NumRefs)); in parseEntireSummary()
7498 ArrayRef<uint64_t>(Record).slice(CallGraphEdgeStartIndex), in parseEntireSummary()
7521 unsigned ValueID = Record[0]; in parseEntireSummary()
7522 uint64_t ModuleId = Record[1]; in parseEntireSummary()
7523 uint64_t RawFlags = Record[2]; in parseEntireSummary()
7524 unsigned AliaseeValueId = Record[3]; in parseEntireSummary()
7541 unsigned ValueID = Record[0]; in parseEntireSummary()
7542 uint64_t ModuleId = Record[1]; in parseEntireSummary()
7543 uint64_t RawFlags = Record[2]; in parseEntireSummary()
7551 GVF = getDecodedGVarFlags(Record[3]); in parseEntireSummary()
7555 makeRefList(ArrayRef<uint64_t>(Record).slice(RefArrayStart)); in parseEntireSummary()
7567 uint64_t OriginalName = Record[0]; in parseEntireSummary()
7579 llvm::append_range(PendingTypeTests, Record); in parseEntireSummary()
7584 for (unsigned I = 0; I != Record.size(); I += 2) in parseEntireSummary()
7585 PendingTypeTestAssumeVCalls.push_back({Record[I], Record[I+1]}); in parseEntireSummary()
7590 for (unsigned I = 0; I != Record.size(); I += 2) in parseEntireSummary()
7591 PendingTypeCheckedLoadVCalls.push_back({Record[I], Record[I+1]}); in parseEntireSummary()
7596 {{Record[0], Record[1]}, {Record.begin() + 2, Record.end()}}); in parseEntireSummary()
7601 {{Record[0], Record[1]}, {Record.begin() + 2, Record.end()}}); in parseEntireSummary()
7606 for (unsigned I = 0; I != Record.size(); I += 2) in parseEntireSummary()
7608 {Strtab.data() + Record[I], static_cast<size_t>(Record[I + 1])}); in parseEntireSummary()
7614 for (unsigned I = 0; I != Record.size(); I += 2) in parseEntireSummary()
7616 {Strtab.data() + Record[I], static_cast<size_t>(Record[I + 1])}); in parseEntireSummary()
7621 parseTypeIdSummaryRecord(Record, Strtab, TheIndex); in parseEntireSummary()
7625 parseTypeIdCompatibleVtableSummaryRecord(Record); in parseEntireSummary()
7629 TheIndex.addBlockCount(Record[0]); in parseEntireSummary()
7633 PendingParamAccesses = parseParamAccesses(Record); in parseEntireSummary()
7640 StackIds = ArrayRef<uint64_t>(Record); in parseEntireSummary()
7645 unsigned ValueID = Record[0]; in parseEntireSummary()
7647 for (auto R = Record.begin() + 1; R != Record.end(); R++) { in parseEntireSummary()
7657 auto RecordIter = Record.begin(); in parseEntireSummary()
7661 assert(Record.size() == 3 + NumStackIds + NumVersions); in parseEntireSummary()
7681 while (I < Record.size()) { in parseEntireSummary()
7682 assert(Record.size() - I >= 2); in parseEntireSummary()
7683 AllocationType AllocType = (AllocationType)Record[I++]; in parseEntireSummary()
7684 unsigned NumStackEntries = Record[I++]; in parseEntireSummary()
7685 assert(Record.size() - I >= NumStackEntries); in parseEntireSummary()
7688 assert(Record[I] < StackIds.size()); in parseEntireSummary()
7690 TheIndex.addOrGetStackIdIndex(StackIds[Record[I++]])); in parseEntireSummary()
7701 unsigned NumMIBs = Record[I++]; in parseEntireSummary()
7702 unsigned NumVersions = Record[I++]; in parseEntireSummary()
7705 assert(Record.size() - I >= 2); in parseEntireSummary()
7706 AllocationType AllocType = (AllocationType)Record[I++]; in parseEntireSummary()
7707 unsigned NumStackEntries = Record[I++]; in parseEntireSummary()
7708 assert(Record.size() - I >= NumStackEntries); in parseEntireSummary()
7711 assert(Record[I] < StackIds.size()); in parseEntireSummary()
7713 TheIndex.addOrGetStackIdIndex(StackIds[Record[I++]])); in parseEntireSummary()
7717 assert(Record.size() - I >= NumVersions); in parseEntireSummary()
7720 Versions.push_back(Record[I++]); in parseEntireSummary()
7736 SmallVector<uint64_t, 64> Record; in parseModuleStringTable() local
7753 case BitstreamEntry::Record: in parseModuleStringTable()
7758 Record.clear(); in parseModuleStringTable()
7759 Expected<unsigned> MaybeRecord = Stream.readRecord(Entry.ID, Record); in parseModuleStringTable()
7767 uint64_t ModuleId = Record[0]; in parseModuleStringTable()
7769 if (convertToString(Record, 1, ModulePath)) in parseModuleStringTable()
7780 if (Record.size() != 5) in parseModuleStringTable()
7781 return error("Invalid hash length " + Twine(Record.size()).str()); in parseModuleStringTable()
7785 for (auto &Val : Record) { in parseModuleStringTable()
7849 case BitstreamEntry::Record: in readBlobInRecord()
7851 SmallVector<uint64_t, 1> Record; in readBlobInRecord() local
7853 Stream.readRecord(Entry.ID, Record, &Blob); in readBlobInRecord()
7976 case BitstreamEntry::Record: in getBitcodeFileContents()
8078 SmallVector<uint64_t, 64> Record; in getEnableSplitLTOUnitAndUnifiedFlag() local
8094 case BitstreamEntry::Record: in getEnableSplitLTOUnitAndUnifiedFlag()
8100 Record.clear(); in getEnableSplitLTOUnitAndUnifiedFlag()
8101 Expected<unsigned> MaybeBitCode = Stream.readRecord(Entry.ID, Record); in getEnableSplitLTOUnitAndUnifiedFlag()
8108 uint64_t Flags = Record[0]; in getEnableSplitLTOUnitAndUnifiedFlag()
8174 case BitstreamEntry::Record: in getLTOInfo()