Lines Matching +full:write +full:- +full:1

1 //===-- APINotesWriter.cpp - API Notes Writer -------------------*- C++ -*-===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
27 llvm::SmallVector<std::pair<llvm::VersionTuple, T>, 1>;
38 /// Information about contexts (Objective-C classes or protocols or C++
56 /// Information about Objective-C properties.
62 llvm::SmallVector<std::pair<VersionTuple, ObjCPropertyInfo>, 1>>
65 /// Information about Objective-C methods.
70 llvm::SmallVector<std::pair<VersionTuple, ObjCMethodInfo>, 1>>
77 llvm::SmallVector<std::pair<VersionTuple, CXXMethodInfo>, 1>>
88 llvm::SmallVector<std::pair<VersionTuple, GlobalVariableInfo>, 1>>
96 llvm::SmallVector<std::pair<VersionTuple, GlobalFunctionInfo>, 1>>
103 unsigned, llvm::SmallVector<std::pair<VersionTuple, EnumConstantInfo>, 1>>
110 llvm::SmallVector<std::pair<VersionTuple, TagInfo>, 1>>
117 llvm::SmallVector<std::pair<VersionTuple, TypedefInfo>, 1>>
127 return Known->second;
130 Known = IdentifierIDs.insert({Identifier, IdentifierIDs.size() + 1}).first;
131 return Known->second;
146 return Known->second;
150 return Known->second;
201 OS.write(Buffer.data(), Buffer.size());
229 Buffer.resize(Name.size() + 1);
231 memcpy(Buffer.data() + 1, Name.data(), Name.size());
280 ModuleName.emit(Scratch, this->ModuleName);
284 SourceFile.emit(Scratch, this->SourceFile->getSize(),
285 this->SourceFile->getModificationTime());
290 /// Used to serialize the on-disk identifier table.
308 writer.write<uint16_t>(KeyLength);
309 writer.write<uint16_t>(DataLength);
317 writer.write<uint32_t>(Data);
338 llvm::support::endian::write<uint32_t>(BlobStream, 0,
348 /// Used to serialize the on-disk Objective-C context table.
368 writer.write<uint16_t>(KeyLength);
369 writer.write<uint16_t>(DataLength);
375 writer.write<uint32_t>(Key.parentContextID);
376 writer.write<uint8_t>(Key.contextKind);
377 writer.write<uint32_t>(Key.contextID);
382 writer.write<uint32_t>(Data);
391 /// on-disk hash tables.
428 descriptor = 1;
431 writer.write<uint8_t>(descriptor);
433 // Write the components.
434 writer.write<uint32_t>(VT.getMajor());
436 writer.write<uint32_t>(*minor);
438 writer.write<uint32_t>(*subminor);
440 writer.write<uint32_t>(*build);
452 const std::pair<VersionTuple, T> &RHS) -> bool {
459 writer.write<uint16_t>(VI.size());
466 /// On-disk hash table info key base for handling versioned data.
479 llvm::SmallVector<std::pair<llvm::VersionTuple, UnversionedDataType>, 1>;
493 writer.write<uint16_t>(KeyLength);
494 writer.write<uint16_t>(DataLength);
516 payload <<= 1;
518 payload <<= 1;
521 writer.write<uint8_t>(payload);
523 writer.write<uint16_t>(CEI.UnavailableMsg.size());
524 OS.write(CEI.UnavailableMsg.c_str(), CEI.UnavailableMsg.size());
526 writer.write<uint16_t>(CEI.SwiftName.size());
527 OS.write(CEI.SwiftName.c_str(), CEI.SwiftName.size());
531 /// on-disk hash tables.
537 // in on-disk hash tables.
539 return 2 + (CTI.getSwiftBridge() ? CTI.getSwiftBridge()->size() : 0) + 2 +
540 (CTI.getNSErrorDomain() ? CTI.getNSErrorDomain()->size() : 0) +
550 writer.write<uint16_t>(swiftBridge->size() + 1);
551 OS.write(swiftBridge->c_str(), swiftBridge->size());
553 writer.write<uint16_t>(0);
556 writer.write<uint16_t>(nsErrorDomain->size() + 1);
557 OS.write(nsErrorDomain->c_str(), CTI.getNSErrorDomain()->size());
559 writer.write<uint16_t>(0);
563 /// Used to serialize the on-disk Objective-C property table.
571 writer.write<uint32_t>(Key);
579 return getCommonTypeInfoSize(OCI) + 1;
587 payload |= (0x01 << 1) | (uint8_t)swiftImportAsNonGeneric.value();
590 payload |= (0x01 << 1) | (uint8_t)swiftObjCMembers.value();
594 payload = (payload << 1) | (OCI.hasDesignatedInits() ? 1 : 0);
618 llvm::support::endian::write<uint32_t>(BlobStream, 0,
637 llvm::support::endian::write<uint32_t>(BlobStream, 0,
649 /// on-disk hash tables.
660 bytes[0] = 1;
661 bytes[1] = static_cast<uint8_t>(*nullable);
666 OS.write(reinterpret_cast<const char *>(bytes), 2);
669 writer.write<uint16_t>(VI.getType().size());
670 OS.write(VI.getType().data(), VI.getType().size());
673 /// Used to serialize the on-disk Objective-C property table.
685 writer.write<uint32_t>(std::get<0>(Key));
686 writer.write<uint32_t>(std::get<1>(Key));
687 writer.write<uint8_t>(std::get<2>(Key));
695 return getVariableInfoSize(OPI) + 1;
703 flags |= 1 << 0;
704 flags |= value.value() << 1;
728 llvm::support::endian::write<uint32_t>(BlobStream, 0,
742 /// Used to serialize the on-disk Objective-C method table.
754 writer.write<uint32_t>(std::get<0>(Key));
755 writer.write<uint32_t>(std::get<1>(Key));
756 writer.write<uint8_t>(std::get<2>(Key));
764 return getFunctionInfoSize(OMI) + 1;
770 flags = (flags << 1) | OMI.DesignatedInit;
771 flags = (flags << 1) | OMI.RequiredInit;
772 writer.write<uint8_t>(flags);
778 /// Used to serialize the on-disk C++ method table.
789 writer.write<uint32_t>(Key.parentContextID);
790 writer.write<uint32_t>(Key.nameID);
824 llvm::support::endian::write<uint32_t>(BlobStream, 0,
851 llvm::support::endian::write<uint32_t>(BlobStream, 0,
862 /// Used to serialize the on-disk Objective-C selector table.
883 writer.write<uint16_t>(KeyLength);
884 writer.write<uint16_t>(DataLength);
890 writer.write<uint16_t>(Key.NumArgs);
892 writer.write<uint32_t>(Identifier);
897 writer.write<uint32_t>(Data);
919 llvm::support::endian::write<uint32_t>(BlobStream, 0,
930 /// Used to serialize the on-disk global variable table.
941 writer.write<uint32_t>(Key.parentContextID);
942 writer.write<uint32_t>(Key.nameID);
976 llvm::support::endian::write<uint32_t>(BlobStream, 0,
988 return getVariableInfoSize(PI) + 1;
1002 flags |= static_cast<uint8_t>(RCC.value()) + 1;
1005 writer.write<uint8_t>(flags);
1008 /// Retrieve the serialized size of the given FunctionInfo, for use in on-disk
1027 flags |= static_cast<uint8_t>(RCC.value()) + 1;
1031 writer.write<uint8_t>(flags);
1032 writer.write<uint8_t>(FI.NumAdjustedNullable);
1033 writer.write<uint64_t>(FI.NullabilityPayload);
1035 writer.write<uint16_t>(FI.Params.size());
1039 writer.write<uint16_t>(FI.ResultType.size());
1040 writer.write(ArrayRef<char>{FI.ResultType.data(), FI.ResultType.size()});
1043 /// Used to serialize the on-disk global function table.
1054 writer.write<uint32_t>(Key.parentContextID);
1055 writer.write<uint32_t>(Key.nameID);
1089 llvm::support::endian::write<uint32_t>(BlobStream, 0,
1100 /// Used to serialize the on-disk global enum constant.
1109 writer.write<uint32_t>(Key);
1143 llvm::support::endian::write<uint32_t>(BlobStream, 0,
1168 writer.write<uint32_t>(Key.parentContextID);
1169 writer.write<IdentifierID>(Key.nameID);
1185 /// Used to serialize the on-disk tag table.
1189 return 2 + (TI.SwiftImportAs ? TI.SwiftImportAs->size() : 0) +
1190 2 + (TI.SwiftRetainOp ? TI.SwiftRetainOp->size() : 0) +
1191 2 + (TI.SwiftReleaseOp ? TI.SwiftReleaseOp->size() : 0) +
1200 Flags |= static_cast<uint8_t>(extensibility.value()) + 1;
1201 assert((Flags < (1 << 2)) && "must fit in two bits");
1206 Flags |= (value.value() << 1 | 1 << 0);
1208 writer.write<uint8_t>(Flags);
1211 writer.write<uint8_t>(*Copyable ? kSwiftCopyable : kSwiftNonCopyable);
1213 writer.write<uint8_t>(0);
1216 writer.write<uint16_t>(ImportAs->size() + 1);
1217 OS.write(ImportAs->c_str(), ImportAs->size());
1219 writer.write<uint16_t>(0);
1222 writer.write<uint16_t>(RetainOp->size() + 1);
1223 OS.write(RetainOp->c_str(), RetainOp->size());
1225 writer.write<uint16_t>(0);
1228 writer.write<uint16_t>(ReleaseOp->size() + 1);
1229 OS.write(ReleaseOp->c_str(), ReleaseOp->size());
1231 writer.write<uint16_t>(0);
1256 llvm::support::endian::write<uint32_t>(BlobStream, 0,
1267 /// Used to serialize the on-disk typedef table.
1272 return 1 + getCommonTypeInfoSize(TI);
1280 Flags |= static_cast<uint8_t>(*swiftWrapper) + 1;
1282 writer.write<uint8_t>(Flags);
1306 llvm::support::endian::write<uint32_t>(BlobStream, 0,
1324 Implementation->writeToStream(OS);
1331 IdentifierID NameID = Implementation->getIdentifier(Name);
1333 uint32_t RawParentCtxID = ParentCtxID ? ParentCtxID->Value : -1;
1335 auto Known = Implementation->Contexts.find(Key);
1336 if (Known == Implementation->Contexts.end()) {
1337 unsigned NextID = Implementation->Contexts.size() + 1;
1340 Known = Implementation->Contexts
1345 Implementation->ContextNames[NextID] = NameID;
1346 Implementation->ParentContexts[NextID] = RawParentCtxID;
1350 auto &VersionedVec = Known->second.second;
1363 return ContextID(Known->second.first);
1370 IdentifierID NameID = Implementation->getIdentifier(Name);
1372 ->ObjCProperties[std::make_tuple(CtxID.Value, NameID, IsInstanceProperty)]
1380 SelectorID SelID = Implementation->getSelector(Selector);
1383 Implementation->ObjCMethods[Key].push_back({SwiftVersion, Info});
1388 assert(Implementation->ParentContexts.contains(CtxID.Value));
1389 uint32_t ParentCtxID = Implementation->ParentContexts[CtxID.Value];
1392 Implementation->ContextNames[CtxID.Value]);
1393 assert(Implementation->Contexts.contains(CtxKey));
1394 auto &VersionedVec = Implementation->Contexts[CtxKey].second;
1414 IdentifierID NameID = Implementation->getIdentifier(Name);
1416 Implementation->CXXMethods[Key].push_back({SwiftVersion, Info});
1423 IdentifierID VariableID = Implementation->getIdentifier(Name);
1425 Implementation->GlobalVariables[Key].push_back({SwiftVersion, Info});
1432 IdentifierID NameID = Implementation->getIdentifier(Name);
1434 Implementation->GlobalFunctions[Key].push_back({SwiftVersion, Info});
1440 IdentifierID EnumConstantID = Implementation->getIdentifier(Name);
1441 Implementation->EnumConstants[EnumConstantID].push_back({SwiftVersion, Info});
1446 IdentifierID TagID = Implementation->getIdentifier(Name);
1448 Implementation->Tags[Key].push_back({SwiftVersion, Info});
1454 IdentifierID TypedefID = Implementation->getIdentifier(Name);
1456 Implementation->Typedefs[Key].push_back({SwiftVersion, Info});