[llvm] 5656d79 - [llvm][tapi-diff] Transition diff-tool to be more general purpose

Cyndy Ishida via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 31 09:33:44 PDT 2023


Author: Cyndy Ishida
Date: 2023-07-31T09:32:26-07:00
New Revision: 5656d7971b395b6303661e2ef7c3e6960c715b2a

URL: https://github.com/llvm/llvm-project/commit/5656d7971b395b6303661e2ef7c3e6960c715b2a
DIFF: https://github.com/llvm/llvm-project/commit/5656d7971b395b6303661e2ef7c3e6960c715b2a.diff

LOG: [llvm][tapi-diff] Transition diff-tool to be more general purpose

This is the first of transition tapi-diff to be readtapi.
This tool will eventually replace functionality for Xcode's `xcrun tapi stubify` and
`xcrun tapi archive`.
This patch updates the tool name and is a minor refactor for the driver to handle more options.

Reviewed By: zixuw

Differential Revision: https://reviews.llvm.org/D153045

Added: 
    llvm/test/tools/llvm-readtapi/Inputs/macho.yaml
    llvm/test/tools/llvm-readtapi/Inputs/v4A.tbd
    llvm/test/tools/llvm-readtapi/Inputs/v4B.tbd
    llvm/test/tools/llvm-readtapi/Inputs/v4C.tbd
    llvm/test/tools/llvm-readtapi/Inputs/v4D.tbd
    llvm/test/tools/llvm-readtapi/Inputs/v4E.tbd
    llvm/test/tools/llvm-readtapi/compare-incorrect-format.test
    llvm/test/tools/llvm-readtapi/compare-inlines.test
    llvm/test/tools/llvm-readtapi/compare-left-single-inline.test
    llvm/test/tools/llvm-readtapi/compare-matching-tapi-files.test
    llvm/test/tools/llvm-readtapi/compare-mismatched-inlines.test
    llvm/test/tools/llvm-readtapi/compare-misspelled-files.test
    llvm/test/tools/llvm-readtapi/compare-multiple-inlines.test
    llvm/test/tools/llvm-readtapi/compare-no-inlines.test
    llvm/test/tools/llvm-readtapi/compare-right-single-inline.test
    llvm/test/tools/llvm-readtapi/compare-v5.test
    llvm/tools/llvm-readtapi/CMakeLists.txt
    llvm/tools/llvm-readtapi/DiffEngine.cpp
    llvm/tools/llvm-readtapi/DiffEngine.h
    llvm/tools/llvm-readtapi/llvm-readtapi.cpp

Modified: 
    llvm/test/CMakeLists.txt
    llvm/test/lit.cfg.py

Removed: 
    llvm/test/tools/llvm-tapi-diff/Inputs/macho.yaml
    llvm/test/tools/llvm-tapi-diff/Inputs/v4A.tbd
    llvm/test/tools/llvm-tapi-diff/Inputs/v4B.tbd
    llvm/test/tools/llvm-tapi-diff/Inputs/v4C.tbd
    llvm/test/tools/llvm-tapi-diff/Inputs/v4D.tbd
    llvm/test/tools/llvm-tapi-diff/Inputs/v4E.tbd
    llvm/test/tools/llvm-tapi-diff/incorrect-format.test
    llvm/test/tools/llvm-tapi-diff/left-single-inline.test
    llvm/test/tools/llvm-tapi-diff/matching-tbd.test
    llvm/test/tools/llvm-tapi-diff/mismatched-number-of-inlines.test
    llvm/test/tools/llvm-tapi-diff/misspelled-tbd.test
    llvm/test/tools/llvm-tapi-diff/multiple-inlines.test
    llvm/test/tools/llvm-tapi-diff/no-inlines.test
    llvm/test/tools/llvm-tapi-diff/right-single-inlines.test
    llvm/test/tools/llvm-tapi-diff/same-num-inlines.test
    llvm/test/tools/llvm-tapi-diff/v5.test
    llvm/tools/llvm-tapi-diff/CMakeLists.txt
    llvm/tools/llvm-tapi-diff/DiffEngine.cpp
    llvm/tools/llvm-tapi-diff/DiffEngine.h
    llvm/tools/llvm-tapi-diff/llvm-tapi-diff.cpp


################################################################################
diff  --git a/llvm/test/CMakeLists.txt b/llvm/test/CMakeLists.txt
index 8cd77b72c987349..983bac33c596a38 100644
--- a/llvm/test/CMakeLists.txt
+++ b/llvm/test/CMakeLists.txt
@@ -131,7 +131,7 @@ set(LLVM_TEST_DEPENDS
           llvm-strip
           llvm-symbolizer
           llvm-tblgen
-          llvm-tapi-
diff 
+          llvm-readtapi
           llvm-tli-checker
           llvm-undname
           llvm-windres

diff  --git a/llvm/test/lit.cfg.py b/llvm/test/lit.cfg.py
index a6574c405107e58..417c41773d9b2b4 100644
--- a/llvm/test/lit.cfg.py
+++ b/llvm/test/lit.cfg.py
@@ -225,7 +225,7 @@ def get_asan_rtlib():
         "llvm-strings",
         "llvm-strip",
         "llvm-tblgen",
-        "llvm-tapi-
diff ",
+        "llvm-readtapi",
         "llvm-undname",
         "llvm-windres",
         "llvm-c-test",

diff  --git a/llvm/test/tools/llvm-tapi-
diff /Inputs/macho.yaml b/llvm/test/tools/llvm-readtapi/Inputs/macho.yaml
similarity index 100%
rename from llvm/test/tools/llvm-tapi-
diff /Inputs/macho.yaml
rename to llvm/test/tools/llvm-readtapi/Inputs/macho.yaml

diff  --git a/llvm/test/tools/llvm-tapi-
diff /Inputs/v4A.tbd b/llvm/test/tools/llvm-readtapi/Inputs/v4A.tbd
similarity index 100%
rename from llvm/test/tools/llvm-tapi-
diff /Inputs/v4A.tbd
rename to llvm/test/tools/llvm-readtapi/Inputs/v4A.tbd

diff  --git a/llvm/test/tools/llvm-tapi-
diff /Inputs/v4B.tbd b/llvm/test/tools/llvm-readtapi/Inputs/v4B.tbd
similarity index 100%
rename from llvm/test/tools/llvm-tapi-
diff /Inputs/v4B.tbd
rename to llvm/test/tools/llvm-readtapi/Inputs/v4B.tbd

diff  --git a/llvm/test/tools/llvm-tapi-
diff /Inputs/v4C.tbd b/llvm/test/tools/llvm-readtapi/Inputs/v4C.tbd
similarity index 100%
rename from llvm/test/tools/llvm-tapi-
diff /Inputs/v4C.tbd
rename to llvm/test/tools/llvm-readtapi/Inputs/v4C.tbd

diff  --git a/llvm/test/tools/llvm-tapi-
diff /Inputs/v4D.tbd b/llvm/test/tools/llvm-readtapi/Inputs/v4D.tbd
similarity index 100%
rename from llvm/test/tools/llvm-tapi-
diff /Inputs/v4D.tbd
rename to llvm/test/tools/llvm-readtapi/Inputs/v4D.tbd

diff  --git a/llvm/test/tools/llvm-tapi-
diff /Inputs/v4E.tbd b/llvm/test/tools/llvm-readtapi/Inputs/v4E.tbd
similarity index 100%
rename from llvm/test/tools/llvm-tapi-
diff /Inputs/v4E.tbd
rename to llvm/test/tools/llvm-readtapi/Inputs/v4E.tbd

diff  --git a/llvm/test/tools/llvm-tapi-
diff /incorrect-format.test b/llvm/test/tools/llvm-readtapi/compare-incorrect-format.test
similarity index 66%
rename from llvm/test/tools/llvm-tapi-
diff /incorrect-format.test
rename to llvm/test/tools/llvm-readtapi/compare-incorrect-format.test
index 6eb0ab6a3aedff8..32a350b28eb1e40 100644
--- a/llvm/test/tools/llvm-tapi-
diff /incorrect-format.test
+++ b/llvm/test/tools/llvm-readtapi/compare-incorrect-format.test
@@ -1,6 +1,6 @@
 ; RUN: mkdir -p %t
 ; RUN: yaml2obj %S/Inputs/macho.yaml -o %t/macho.dylib
-; RUN: not llvm-tapi-
diff  %S/Inputs/v4A.tbd %t/macho.dylib 2>&1 | FileCheck %s
+; RUN: not llvm-readtapi --compare %S/Inputs/v4A.tbd %t/macho.dylib 2>&1 | FileCheck %s
 
 ; CHECK: error: {{.*}}macho.dylib' unsupported file format
 ; CHECK-NOT: error:

diff  --git a/llvm/test/tools/llvm-tapi-
diff /same-num-inlines.test b/llvm/test/tools/llvm-readtapi/compare-inlines.test
similarity index 93%
rename from llvm/test/tools/llvm-tapi-
diff /same-num-inlines.test
rename to llvm/test/tools/llvm-readtapi/compare-inlines.test
index 64bdd48ec06f81e..6781718d3e610a9 100644
--- a/llvm/test/tools/llvm-tapi-
diff /same-num-inlines.test
+++ b/llvm/test/tools/llvm-readtapi/compare-inlines.test
@@ -1,4 +1,4 @@
-; RUN: not llvm-tapi-
diff  %S/Inputs/v4B.tbd %S/Inputs/v4E.tbd 2>&1 | FileCheck %s
+; RUN: not llvm-readtapi --compare %S/Inputs/v4B.tbd %S/Inputs/v4E.tbd 2>&1 | FileCheck %s
 
 ; CHECK:< {{.*}}/Inputs/v4B.tbd
 ; CHECK:> {{.*}}/Inputs/v4E.tbd

diff  --git a/llvm/test/tools/llvm-tapi-
diff /left-single-inline.test b/llvm/test/tools/llvm-readtapi/compare-left-single-inline.test
similarity index 96%
rename from llvm/test/tools/llvm-tapi-
diff /left-single-inline.test
rename to llvm/test/tools/llvm-readtapi/compare-left-single-inline.test
index 0c507c3ca598aa1..f8bccb5aa79f159 100644
--- a/llvm/test/tools/llvm-tapi-
diff /left-single-inline.test
+++ b/llvm/test/tools/llvm-readtapi/compare-left-single-inline.test
@@ -1,4 +1,4 @@
-; RUN: not llvm-tapi-
diff  %S/Inputs/v4A.tbd %S/Inputs/v4B.tbd 2>&1 | FileCheck %s
+; RUN: not llvm-readtapi --compare %S/Inputs/v4A.tbd %S/Inputs/v4B.tbd 2>&1 | FileCheck %s
 
 ; CHECK:< {{.*}}/Inputs/v4A.tbd
 ; CHECK:> {{.*}}/Inputs/v4B.tbd

diff  --git a/llvm/test/tools/llvm-readtapi/compare-matching-tapi-files.test b/llvm/test/tools/llvm-readtapi/compare-matching-tapi-files.test
new file mode 100644
index 000000000000000..2e30f9bc1b0b6a7
--- /dev/null
+++ b/llvm/test/tools/llvm-readtapi/compare-matching-tapi-files.test
@@ -0,0 +1,4 @@
+; RUN: llvm-readtapi --compare %S/Inputs/v4A.tbd %S/Inputs/v4A.tbd 2>&1 | FileCheck %s --allow-empty
+
+; CHECK-NOT: error:
+; CHECK-NOT: warning:

diff  --git a/llvm/test/tools/llvm-tapi-
diff /mismatched-number-of-inlines.test b/llvm/test/tools/llvm-readtapi/compare-mismatched-inlines.test
similarity index 94%
rename from llvm/test/tools/llvm-tapi-
diff /mismatched-number-of-inlines.test
rename to llvm/test/tools/llvm-readtapi/compare-mismatched-inlines.test
index 9f1db68cb43d3f3..161727cd6fcba74 100644
--- a/llvm/test/tools/llvm-tapi-
diff /mismatched-number-of-inlines.test
+++ b/llvm/test/tools/llvm-readtapi/compare-mismatched-inlines.test
@@ -1,4 +1,4 @@
-; RUN: not llvm-tapi-
diff  %S/Inputs/v4B.tbd %S/Inputs/v4D.tbd 2>&1 | FileCheck %s
+; RUN: not llvm-readtapi --compare %S/Inputs/v4B.tbd %S/Inputs/v4D.tbd 2>&1 | FileCheck %s
 
 ; CHECK:< {{.*}}/Inputs/v4B.tbd
 ; CHECK:> {{.*}}/Inputs/v4D.tbd

diff  --git a/llvm/test/tools/llvm-readtapi/compare-misspelled-files.test b/llvm/test/tools/llvm-readtapi/compare-misspelled-files.test
new file mode 100644
index 000000000000000..dd6bb41ca91804c
--- /dev/null
+++ b/llvm/test/tools/llvm-readtapi/compare-misspelled-files.test
@@ -0,0 +1,3 @@
+; RUN: not llvm-readtapi --compare %S/Inputs/v4A.tbd %S/Inputs/v4.tbd 2>&1 | FileCheck -DMSG=%errc_ENOENT %s
+
+; CHECK: error: {{.*}}v4.tbd' [[MSG]]

diff  --git a/llvm/test/tools/llvm-tapi-
diff /multiple-inlines.test b/llvm/test/tools/llvm-readtapi/compare-multiple-inlines.test
similarity index 97%
rename from llvm/test/tools/llvm-tapi-
diff /multiple-inlines.test
rename to llvm/test/tools/llvm-readtapi/compare-multiple-inlines.test
index 45d4f0367ab67ff..52e11befec07c98 100644
--- a/llvm/test/tools/llvm-tapi-
diff /multiple-inlines.test
+++ b/llvm/test/tools/llvm-readtapi/compare-multiple-inlines.test
@@ -1,4 +1,4 @@
-; RUN: not llvm-tapi-
diff  %S/Inputs/v4A.tbd %S/Inputs/v4D.tbd 2>&1 | FileCheck %s
+; RUN: not llvm-readtapi --compare %S/Inputs/v4A.tbd %S/Inputs/v4D.tbd 2>&1 | FileCheck %s
 
 ; CHECK:< {{.*}}/Inputs/v4A.tbd
 ; CHECK:> {{.*}}/Inputs/v4D.tbd

diff  --git a/llvm/test/tools/llvm-tapi-
diff /no-inlines.test b/llvm/test/tools/llvm-readtapi/compare-no-inlines.test
similarity index 87%
rename from llvm/test/tools/llvm-tapi-
diff /no-inlines.test
rename to llvm/test/tools/llvm-readtapi/compare-no-inlines.test
index c46c91fd011ea10..b44d8979b2228d0 100644
--- a/llvm/test/tools/llvm-tapi-
diff /no-inlines.test
+++ b/llvm/test/tools/llvm-readtapi/compare-no-inlines.test
@@ -1,4 +1,4 @@
-; RUN: not llvm-tapi-
diff  %S/Inputs/v4A.tbd %S/Inputs/v4C.tbd 2>&1 | FileCheck %s
+; RUN: not llvm-readtapi --compare %S/Inputs/v4A.tbd %S/Inputs/v4C.tbd 2>&1 | FileCheck %s
 
 ; CHECK:< {{.*}}/Inputs/v4A.tbd
 ; CHECK:> {{.*}}/Inputs/v4C.tbd

diff  --git a/llvm/test/tools/llvm-tapi-
diff /right-single-inlines.test b/llvm/test/tools/llvm-readtapi/compare-right-single-inline.test
similarity index 96%
rename from llvm/test/tools/llvm-tapi-
diff /right-single-inlines.test
rename to llvm/test/tools/llvm-readtapi/compare-right-single-inline.test
index cfed2e75c1ee62a..46642b037b7ef9a 100644
--- a/llvm/test/tools/llvm-tapi-
diff /right-single-inlines.test
+++ b/llvm/test/tools/llvm-readtapi/compare-right-single-inline.test
@@ -1,4 +1,4 @@
-; RUN: not llvm-tapi-
diff  %S/Inputs/v4B.tbd %S/Inputs/v4C.tbd 2>&1 | FileCheck %s
+; RUN: not llvm-readtapi --compare %S/Inputs/v4B.tbd %S/Inputs/v4C.tbd 2>&1 | FileCheck %s
 
 ; CHECK:< {{.*}}/Inputs/v4B.tbd
 ; CHECK:> {{.*}}/Inputs/v4C.tbd

diff  --git a/llvm/test/tools/llvm-tapi-
diff /v5.test b/llvm/test/tools/llvm-readtapi/compare-v5.test
similarity index 77%
rename from llvm/test/tools/llvm-tapi-
diff /v5.test
rename to llvm/test/tools/llvm-readtapi/compare-v5.test
index 019b0245b201f64..6edeb4f27f174a8 100644
--- a/llvm/test/tools/llvm-tapi-
diff /v5.test
+++ b/llvm/test/tools/llvm-readtapi/compare-v5.test
@@ -1,7 +1,7 @@
 ; RUN: rm -rf %t
 ; RUN: split-file %s %t  
-; RUN: llvm-tapi-
diff  %t/Simple_v5.tbd  %t/Simple_v5.tbd 2>&1 | FileCheck %s --allow-empty
-; RUN: llvm-tapi-
diff  %t/Simple_v5.tbd  %t/Simple_v4.tbd 2>&1 | FileCheck %s --allow-empty
+; RUN: llvm-readtapi --compare %t/Simple_v5.tbd  %t/Simple_v5.tbd 2>&1 | FileCheck %s --allow-empty
+; RUN: llvm-readtapi --compare %t/Simple_v5.tbd  %t/Simple_v4.tbd 2>&1 | FileCheck %s --allow-empty
 
 ; CHECK-NOT: error:
 ; CHECK-NOT: warning:

diff  --git a/llvm/test/tools/llvm-tapi-
diff /matching-tbd.test b/llvm/test/tools/llvm-tapi-
diff /matching-tbd.test
deleted file mode 100644
index a98bc41ec6fd5bd..000000000000000
--- a/llvm/test/tools/llvm-tapi-
diff /matching-tbd.test
+++ /dev/null
@@ -1,4 +0,0 @@
-; RUN: llvm-tapi-
diff  %S/Inputs/v4A.tbd %S/Inputs/v4A.tbd 2>&1 | FileCheck %s --allow-empty
-
-; CHECK-NOT: error:
-; CHECK-NOT: warning:

diff  --git a/llvm/test/tools/llvm-tapi-
diff /misspelled-tbd.test b/llvm/test/tools/llvm-tapi-
diff /misspelled-tbd.test
deleted file mode 100644
index b09000fd1af7fb6..000000000000000
--- a/llvm/test/tools/llvm-tapi-
diff /misspelled-tbd.test
+++ /dev/null
@@ -1,3 +0,0 @@
-; RUN: not llvm-tapi-
diff  %S/Inputs/v4A.tbd %S/Inputs/v4.tbd 2>&1 | FileCheck -DMSG=%errc_ENOENT %s
-
-; CHECK: error: {{.*}}v4.tbd' [[MSG]]

diff  --git a/llvm/tools/llvm-tapi-
diff /CMakeLists.txt b/llvm/tools/llvm-readtapi/CMakeLists.txt
similarity index 61%
rename from llvm/tools/llvm-tapi-
diff /CMakeLists.txt
rename to llvm/tools/llvm-readtapi/CMakeLists.txt
index 2870221dd18f3de..a91cad77e4abee9 100644
--- a/llvm/tools/llvm-tapi-
diff /CMakeLists.txt
+++ b/llvm/tools/llvm-readtapi/CMakeLists.txt
@@ -4,7 +4,7 @@ set(LLVM_LINK_COMPONENTS
   TextAPI
   )
 
-add_llvm_tool(llvm-tapi-
diff 
-  llvm-tapi-
diff .cpp
+add_llvm_tool(llvm-readtapi
+  llvm-readtapi.cpp
   DiffEngine.cpp
   )

diff  --git a/llvm/tools/llvm-tapi-
diff /DiffEngine.cpp b/llvm/tools/llvm-readtapi/DiffEngine.cpp
similarity index 100%
rename from llvm/tools/llvm-tapi-
diff /DiffEngine.cpp
rename to llvm/tools/llvm-readtapi/DiffEngine.cpp

diff  --git a/llvm/tools/llvm-tapi-
diff /DiffEngine.h b/llvm/tools/llvm-readtapi/DiffEngine.h
similarity index 100%
rename from llvm/tools/llvm-tapi-
diff /DiffEngine.h
rename to llvm/tools/llvm-readtapi/DiffEngine.h

diff  --git a/llvm/tools/llvm-readtapi/llvm-readtapi.cpp b/llvm/tools/llvm-readtapi/llvm-readtapi.cpp
new file mode 100644
index 000000000000000..1a3a66e2a7a1c3c
--- /dev/null
+++ b/llvm/tools/llvm-readtapi/llvm-readtapi.cpp
@@ -0,0 +1,90 @@
+//===-- llvm-readtapi.cpp - tapi file reader and manipulator -----*- C++-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines the command-line driver for llvm-readtapi.
+//
+//===----------------------------------------------------------------------===//
+#include "DiffEngine.h"
+#include "llvm/Object/TapiUniversal.h"
+#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Error.h"
+#include "llvm/Support/InitLLVM.h"
+#include "llvm/Support/MemoryBuffer.h"
+#include "llvm/Support/WithColor.h"
+#include "llvm/Support/raw_ostream.h"
+#include <cstdlib>
+
+using namespace llvm;
+using namespace MachO;
+using namespace object;
+
+namespace {
+cl::OptionCategory TapiCat("llvm-readtapi options");
+cl::OptionCategory CompareCat("llvm-readtapi --compare options");
+
+cl::opt<std::string> InputFileName(cl::Positional, cl::desc("<tapi file>"),
+                                   cl::Required, cl::cat(TapiCat));
+cl::opt<std::string> CompareInputFileName(cl::Positional,
+                                          cl::desc("<comparison file>"),
+                                          cl::Required, cl::cat(CompareCat));
+enum OutputKind {
+  Compare,
+};
+
+cl::opt<OutputKind>
+    Output(cl::desc("choose command action:"),
+           cl::values(clEnumValN(Compare, "compare",
+                                 "compare tapi file for library 
diff erences")),
+           cl::init(OutputKind::Compare), cl::cat(TapiCat));
+} // anonymous namespace
+
+Expected<std::unique_ptr<Binary>> convertFileToBinary(std::string &Filename) {
+  ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr =
+      MemoryBuffer::getFileOrSTDIN(Filename);
+  if (BufferOrErr.getError())
+    return errorCodeToError(BufferOrErr.getError());
+  return createBinary(BufferOrErr.get()->getMemBufferRef());
+}
+
+int main(int Argc, char **Argv) {
+  InitLLVM X(Argc, Argv);
+  cl::HideUnrelatedOptions(TapiCat);
+  cl::ParseCommandLineOptions(Argc, Argv,
+                              "TAPI File Reader and Manipulator Tool");
+
+  if (Output == OutputKind::Compare) {
+    if (InputFileName.empty() || CompareInputFileName.empty()) {
+      cl::PrintHelpMessage();
+      return EXIT_FAILURE;
+    }
+
+    ExitOnError ExitOnErr("error: '" + InputFileName + "' ",
+                          /*DefaultErrorExitCode=*/2);
+    auto BinLHS = ExitOnErr(convertFileToBinary(InputFileName));
+
+    TapiUniversal *FileLHS = dyn_cast<TapiUniversal>(BinLHS.get());
+    if (!FileLHS) {
+      ExitOnErr(createStringError(std::errc::executable_format_error,
+                                  "unsupported file format"));
+    }
+
+    ExitOnErr.setBanner("error: '" + CompareInputFileName + "' ");
+    auto BinRHS = ExitOnErr(convertFileToBinary(CompareInputFileName));
+
+    TapiUniversal *FileRHS = dyn_cast<TapiUniversal>(BinRHS.get());
+    if (!FileRHS) {
+      ExitOnErr(createStringError(std::errc::executable_format_error,
+                                  "unsupported file format"));
+    }
+
+    raw_ostream &OS = outs();
+    return DiffEngine(FileLHS, FileRHS).compareFiles(OS);
+  }
+
+  return 0;
+}

diff  --git a/llvm/tools/llvm-tapi-
diff /llvm-tapi-
diff .cpp b/llvm/tools/llvm-tapi-
diff /llvm-tapi-
diff .cpp
deleted file mode 100644
index 09dd6f76bf6ef5c..000000000000000
--- a/llvm/tools/llvm-tapi-
diff /llvm-tapi-
diff .cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//===-- llvm-tapi-
diff .cpp - tbd comparator command-line driver --*- C++-*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the command-line driver for the llvm-tapi 
diff erence
-// engine.
-//
-//===----------------------------------------------------------------------===//
-#include "DiffEngine.h"
-#include "llvm/Object/TapiUniversal.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Error.h"
-#include "llvm/Support/InitLLVM.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/WithColor.h"
-#include "llvm/Support/raw_ostream.h"
-#include <cstdlib>
-
-using namespace llvm;
-using namespace MachO;
-using namespace object;
-
-namespace {
-cl::OptionCategory NMCat("llvm-tapi-
diff  Options");
-cl::opt<std::string> InputFileNameLHS(cl::Positional, cl::desc("<first file>"),
-                                      cl::cat(NMCat));
-cl::opt<std::string> InputFileNameRHS(cl::Positional, cl::desc("<second file>"),
-                                      cl::cat(NMCat));
-} // anonymous namespace
-
-Expected<std::unique_ptr<Binary>> convertFileToBinary(std::string &Filename) {
-  ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr =
-      MemoryBuffer::getFileOrSTDIN(Filename);
-  if (BufferOrErr.getError())
-    return errorCodeToError(BufferOrErr.getError());
-  return createBinary(BufferOrErr.get()->getMemBufferRef());
-}
-
-int main(int Argc, char **Argv) {
-  InitLLVM X(Argc, Argv);
-  cl::HideUnrelatedOptions(NMCat);
-  cl::ParseCommandLineOptions(Argc, Argv, "Text-based Stubs Comparison Tool");
-  if (InputFileNameLHS.empty() || InputFileNameRHS.empty()) {
-    cl::PrintHelpMessage();
-    return EXIT_FAILURE;
-  }
-
-  ExitOnError ExitOnErr("error: '" + InputFileNameLHS + "' ",
-                        /*DefaultErrorExitCode=*/2);
-  auto BinLHS = ExitOnErr(convertFileToBinary(InputFileNameLHS));
-
-  TapiUniversal *FileLHS = dyn_cast<TapiUniversal>(BinLHS.get());
-  if (!FileLHS) {
-    ExitOnErr(createStringError(std::errc::executable_format_error,
-                                "unsupported file format"));
-  }
-
-  ExitOnErr.setBanner("error: '" + InputFileNameRHS + "' ");
-  auto BinRHS = ExitOnErr(convertFileToBinary(InputFileNameRHS));
-
-  TapiUniversal *FileRHS = dyn_cast<TapiUniversal>(BinRHS.get());
-  if (!FileRHS) {
-    ExitOnErr(createStringError(std::errc::executable_format_error,
-                                "unsupported file format"));
-  }
-
-  raw_ostream &OS = outs();
-
-  return DiffEngine(FileLHS, FileRHS).compareFiles(OS);
-}


        


More information about the llvm-commits mailing list