diff --git a/lib/TBDGen/TBDGen.cpp b/lib/TBDGen/TBDGen.cpp index 72ebab22e2b7d..67e6fbf8c5cec 100644 --- a/lib/TBDGen/TBDGen.cpp +++ b/lib/TBDGen/TBDGen.cpp @@ -636,8 +636,6 @@ static void enumeratePublicSymbolsAndWrite(ModuleDecl *M, FileUnit *singleFile, file.setTwoLevelNamespace(); file.setSwiftABIVersion(irgen::getSwiftABIVersion()); file.setInstallAPI(opts.IsInstallAPI); - llvm::MachO::Target target(triple); - file.addTarget(target); llvm::MachO::Target target(triple); file.addTarget(target); diff --git a/lib/TBDGen/tapi/Registry.cpp b/lib/TBDGen/tapi/Registry.cpp deleted file mode 100644 index aa3f38a4059ab..0000000000000 --- a/lib/TBDGen/tapi/Registry.cpp +++ /dev/null @@ -1,186 +0,0 @@ -//===- lib/Core/Registry.cpp - TAPI Registry --------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -/// -/// \file -/// Implements the TAPI Registry. -/// -//===----------------------------------------------------------------------===// - -#include "Registry.h" -/*#include "tapi/Core/MachODylibReader.h" -#include "tapi/Core/ReexportFileWriter.h" -#include "tapi/Core/TextAPI_v1.h" -#include "tapi/Core/TextStub_v1.h" -#include "tapi/Core/TextStub_v2.h"*/ -#include "TextStub_v3.h" -#include "llvm/ADT/StringRef.h" -#include "llvm/Support/FileSystem.h" -#include "llvm/Support/raw_ostream.h" - -using namespace llvm; - -TAPI_NAMESPACE_INTERNAL_BEGIN - -namespace { - -// Diagnostic reader. It can read all the YAML file with !tapi tag and returns -// proper error when started to read the file. -class DiagnosticReader : public Reader { - bool canRead(file_magic fileType, MemoryBufferRef bufferRef, - FileType types = FileType::All) const override; - Expected getFileType(file_magic magic, - MemoryBufferRef bufferRef) const override; - Expected> - readFile(std::unique_ptr memBuffer, ReadFlags readFlags, - ArchitectureSet arches) const override; -}; - -} // namespace - -bool DiagnosticReader::canRead(file_magic fileType, MemoryBufferRef bufferRef, - FileType types) const { - auto str = bufferRef.getBuffer().trim(); - if (!str.startswith("--- !tapi") || !str.endswith("...")) - return false; - - return true; -} - -Expected -DiagnosticReader::getFileType(file_magic magic, - MemoryBufferRef bufferRef) const { - return Invalid; -} - -Expected> -DiagnosticReader::readFile(std::unique_ptr memBuffer, - ReadFlags readFlags, ArchitectureSet arches) const { - auto str = memBuffer->getBuffer().trim(); - auto tag = str.split('\n').first.drop_front(4); - return make_error( - "unsupported tapi file type \'" + tag.str() + "\' in YAML", - std::make_error_code(std::errc::not_supported)); -} - -bool Registry::canRead(MemoryBufferRef memBuffer, FileType types) const { - auto data = memBuffer.getBuffer(); - auto magic = identify_magic(data); - - for (const auto &reader : _readers) { - if (reader->canRead(magic, memBuffer, types)) - return true; - } - - return false; -} - -Expected Registry::getFileType(MemoryBufferRef memBuffer) const { - auto data = memBuffer.getBuffer(); - auto magic = identify_magic(data); - - for (const auto &reader : _readers) { - auto fileType = reader->getFileType(magic, memBuffer); - if (!fileType) - return fileType.takeError(); - if (fileType.get() != FileType::Invalid) - return fileType; - } - - return FileType::Invalid; -} - -bool Registry::canWrite(const File *file) const { - for (const auto &writer : _writers) { - if (writer->canWrite(file)) - return true; - } - - return false; -} - -Expected> -Registry::readFile(std::unique_ptr memBuffer, ReadFlags readFlags, - ArchitectureSet arches) const { - auto data = memBuffer->getBuffer(); - auto fileType = identify_magic(data); - - for (const auto &reader : _readers) { - if (!reader->canRead(fileType, memBuffer->getMemBufferRef())) - continue; - return reader->readFile(std::move(memBuffer), readFlags, arches); - } - - return make_error( - "unsupported file type", std::make_error_code(std::errc::not_supported)); -} - -Error Registry::writeFile(const File *file, const std::string &path) const { - std::error_code ec; - raw_fd_ostream os(path, ec, sys::fs::F_Text); - if (ec) - return errorCodeToError(ec); - auto error = writeFile(os, file); - if (error) - return error; - os.close(); - if (ec) - return errorCodeToError(ec); - return Error::success(); -} - -Error Registry::writeFile(raw_ostream &os, const File *file) const { - for (const auto &writer : _writers) { - if (!writer->canWrite(file)) - continue; - return writer->writeFile(os, file); - } - - return make_error( - "unsupported file type", std::make_error_code(std::errc::not_supported)); -} - -/*void Registry::addBinaryReaders() { - add(std::unique_ptr(new MachODylibReader)); - }*/ - -void Registry::addYAMLReaders() { - auto reader =std::make_unique(); - /*reader->add( - std::unique_ptr(new stub::v1::YAMLDocumentHandler)); - reader->add( - std::unique_ptr(new stub::v2::YAMLDocumentHandler));*/ - reader->add( - std::unique_ptr(new stub::v3::YAMLDocumentHandler)); -/*reader->add( - std::unique_ptr(new api::v1::YAMLDocumentHandler));*/ - add(std::unique_ptr(std::move(reader))); -} - -void Registry::addYAMLWriters() { - auto writer =std::make_unique(); - /*writer->add( - std::unique_ptr(new stub::v1::YAMLDocumentHandler)); - writer->add( - std::unique_ptr(new stub::v2::YAMLDocumentHandler));*/ - writer->add( - std::unique_ptr(new stub::v3::YAMLDocumentHandler)); - /*writer->add( - std::unique_ptr(new api::v1::YAMLDocumentHandler));*/ - add(std::unique_ptr(std::move(writer))); -} - -void Registry::addReexportWriters() { - //add(std::unique_ptr(new ReexportFileWriter)); -} - -void Registry::addDiagnosticReader() { - add(std::make_unique()); -} - -TAPI_NAMESPACE_INTERNAL_END diff --git a/lib/TBDGen/tapi/YAML.cpp b/lib/TBDGen/tapi/YAML.cpp deleted file mode 100644 index 2037759afe631..0000000000000 --- a/lib/TBDGen/tapi/YAML.cpp +++ /dev/null @@ -1,153 +0,0 @@ -//===- lib/Core/YAML.cpp - Common YAML Mappings------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -/// -/// \file -/// Implements common YAML mappings -/// -//===----------------------------------------------------------------------===// - -#include "YAML.h" - -namespace llvm { -namespace yaml { - -using tapi::ObjCConstraint; -void ScalarEnumerationTraits::enumeration( - IO &io, ObjCConstraint &constraint) { - io.enumCase(constraint, "none", ObjCConstraint::None); - io.enumCase(constraint, "retain_release", ObjCConstraint::Retain_Release); - io.enumCase(constraint, "retain_release_for_simulator", - ObjCConstraint::Retain_Release_For_Simulator); - io.enumCase(constraint, "retain_release_or_gc", - ObjCConstraint::Retain_Release_Or_GC); - io.enumCase(constraint, "gc", ObjCConstraint::GC); -} - -using TAPI_INTERNAL::Platform; -void ScalarEnumerationTraits::enumeration(IO &io, - Platform &platform) { - io.enumCase(platform, "unknown", Platform::unknown); - io.enumCase(platform, "macosx", Platform::macOS); - io.enumCase(platform, "ios", Platform::iOS); - io.enumCase(platform, "ios", Platform::iOSSimulator); - - io.enumCase(platform, "watchos", Platform::watchOS); - io.enumCase(platform, "watchos", Platform::watchOSSimulator); - io.enumCase(platform, "tvos", Platform::tvOS); - io.enumCase(platform, "tvos", Platform::tvOSSimulator); - io.enumCase(platform, "bridgeos", Platform::bridgeOS); -} - -using TAPI_INTERNAL::Architecture; -using TAPI_INTERNAL::ArchitectureSet; -void ScalarBitSetTraits::bitset(IO &io, - ArchitectureSet &archs) { -#define ARCHINFO(arch, type, subtype) \ - io.bitSetCase(archs, #arch, 1U << static_cast(Architecture::arch)); -#include "Architecture.def" -#undef ARCHINFO -} - -using TAPI_INTERNAL::getArchType; -void ScalarTraits::output(const Architecture &value, void *, - raw_ostream &os) { - os << value; -} -StringRef ScalarTraits::input(StringRef scalar, void *, - Architecture &value) { - value = getArchType(scalar); - return {}; -} -QuotingType ScalarTraits::mustQuote(StringRef) { - return QuotingType::None; -} - -using TAPI_INTERNAL::PackedVersion; -void ScalarTraits::output(const PackedVersion &value, void *, - raw_ostream &os) { - os << value; -} -StringRef ScalarTraits::input(StringRef scalar, void *, - PackedVersion &value) { - if (!value.parse32(scalar)) - return "invalid packed version string."; - return {}; -} -QuotingType ScalarTraits::mustQuote(StringRef) { - return QuotingType::None; -} - -using TAPI_INTERNAL::AvailabilityInfo; -void ScalarTraits::output(const AvailabilityInfo &value, - void *, raw_ostream &os) { - if (value._unavailable) { - os << "n/a"; - return; - } - - os << value._introduced; - if (!value._obsoleted.empty()) - os << ".." << value._obsoleted; -} -StringRef ScalarTraits::input(StringRef scalar, void *, - AvailabilityInfo &value) { - if (scalar == "n/a") { - value._unavailable = true; - return {}; - } - - auto split = scalar.split(".."); - auto introduced = split.first.trim(); - auto obsoleted = split.second.trim(); - - if (!value._introduced.parse32(introduced)) - return "invalid packed version string."; - - if (obsoleted.empty()) - return StringRef(); - - if (!value._obsoleted.parse32(obsoleted)) - return "invalid packed version string."; - - return StringRef(); -} -QuotingType ScalarTraits::mustQuote(StringRef) { - return QuotingType::None; -} - -void ScalarTraits::output(const UUID &value, void *, raw_ostream &os) { - os << value.first << ": " << value.second; -} -StringRef ScalarTraits::input(StringRef scalar, void *, UUID &value) { - auto split = scalar.split(':'); - auto arch = split.first.trim(); - auto uuid = split.second.trim(); - if (uuid.empty()) - return "invalid uuid string pair"; - value.first = getArchType(arch); - value.second = uuid; - return {}; -} -QuotingType ScalarTraits::mustQuote(StringRef) { - return QuotingType::Single; -} - -using clang::Language; -void ScalarEnumerationTraits::enumeration(IO &io, Language &kind) { - io.enumCase(kind, "c", Language::C); - io.enumCase(kind, "cxx", Language::CXX); - io.enumCase(kind, "objective-c", Language::ObjC); - io.enumCase(kind, "objc", Language::ObjC); // to keep old snapshots working. - io.enumCase(kind, "objective-cxx", Language::ObjCXX); - io.enumCase(kind, "objcxx", - Language::ObjCXX); // to keep old snapshots working. -} - -} // end namespace yaml. -} // end namespace llvm. diff --git a/lib/TBDGen/tapi/YAML.h b/lib/TBDGen/tapi/YAML.h deleted file mode 100644 index cbacb33db4e01..0000000000000 --- a/lib/TBDGen/tapi/YAML.h +++ /dev/null @@ -1,101 +0,0 @@ -//===- tapi/Core/YAML.h - YAML ----------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -/// -/// \file -/// Defines common YAML mappings -/// -//===----------------------------------------------------------------------===// - -#ifndef TAPI_CORE_YAML_H -#define TAPI_CORE_YAML_H - -#include "Architecture.h" -#include "ArchitectureSet.h" -#include "ArchitectureSupport.h" -#include "AvailabilityInfo.h" -#include "Platform.h" -#include "YAMLReaderWriter.h" -#include "clang/Frontend/FrontendOptions.h" -#include "llvm/ADT/StringSwitch.h" -#include "llvm/Support/YAMLTraits.h" - -using UUID = std::pair; - -LLVM_YAML_STRONG_TYPEDEF(llvm::StringRef, FlowStringRef) -LLVM_YAML_STRONG_TYPEDEF(uint8_t, SwiftVersion) -LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(UUID) -LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(FlowStringRef) - -namespace llvm { -namespace yaml { - -template <> struct ScalarTraits { - static void output(const FlowStringRef &value, void *ctx, raw_ostream &os); - static StringRef input(StringRef value, void *ctx, FlowStringRef &out); - static QuotingType mustQuote(StringRef name); -}; - -using tapi::ObjCConstraint; -template <> struct ScalarEnumerationTraits { - static void enumeration(IO &io, ObjCConstraint &constraint); -}; - -using TAPI_INTERNAL::Platform; -template <> struct ScalarEnumerationTraits { - static void enumeration(IO &io, Platform &platform); -}; - -using TAPI_INTERNAL::Architecture; -using TAPI_INTERNAL::ArchitectureSet; -template <> struct ScalarBitSetTraits { - static void bitset(IO &io, ArchitectureSet &archs); -}; - -using TAPI_INTERNAL::getArchType; -template <> struct ScalarTraits { - static void output(const Architecture &value, void *, raw_ostream &os); - static StringRef input(StringRef scalar, void *, Architecture &value); - static QuotingType mustQuote(StringRef); -}; - -using TAPI_INTERNAL::PackedVersion; -template <> struct ScalarTraits { - static void output(const PackedVersion &value, void *, raw_ostream &os); - static StringRef input(StringRef scalar, void *, PackedVersion &value); - static QuotingType mustQuote(StringRef); -}; - -template <> struct ScalarTraits { - static void output(const SwiftVersion &value, void *, raw_ostream &os); - static StringRef input(StringRef scalar, void *, SwiftVersion &value); - static QuotingType mustQuote(StringRef); -}; - -using TAPI_INTERNAL::AvailabilityInfo; -template <> struct ScalarTraits { - static void output(const AvailabilityInfo &value, void *, raw_ostream &os); - static StringRef input(StringRef scalar, void *, AvailabilityInfo &value); - static QuotingType mustQuote(StringRef); -}; - -template <> struct ScalarTraits { - static void output(const UUID &value, void *, raw_ostream &os); - static StringRef input(StringRef scalar, void *, UUID &value); - static QuotingType mustQuote(StringRef); -}; - -using clang::InputKind; -template <> struct ScalarEnumerationTraits { - static void enumeration(IO &io, clang::Language &kind); -}; - -} // end namespace yaml. -} // end namespace llvm. - -#endif // TAPI_CORE_YAML_H