]> granicus.if.org Git - llvm/commitdiff
Revert 373551 (CodeExpander.cpp CMake issue)
authorKristina Brooks <notstina@gmail.com>
Thu, 3 Oct 2019 11:04:48 +0000 (11:04 +0000)
committerKristina Brooks <notstina@gmail.com>
Thu, 3 Oct 2019 11:04:48 +0000 (11:04 +0000)
Fix buildbots and revert the CodeExpander commit.

(See http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20190930/699857.html )

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@373581 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/CMakeLists.txt
unittests/TableGen/CMakeLists.txt [deleted file]
unittests/TableGen/CodeExpanderTest.cpp [deleted file]
utils/TableGen/CMakeLists.txt
utils/TableGen/GICombinerEmitter.cpp
utils/TableGen/GlobalISel/CMakeLists.txt [deleted file]
utils/TableGen/GlobalISel/CodeExpander.cpp [deleted file]
utils/TableGen/GlobalISel/CodeExpander.h [deleted file]
utils/TableGen/GlobalISel/CodeExpansions.h [deleted file]

index 9384bdad0434afdfa92fe97006cdb302e549c064..6bb2fb8eb9239ed0e155873aebd117ce98cc8c88 100644 (file)
@@ -31,9 +31,8 @@ add_subdirectory(Remarks)
 add_subdirectory(Passes)
 add_subdirectory(ProfileData)
 add_subdirectory(Support)
-add_subdirectory(TableGen)
-add_subdirectory(Target)
 add_subdirectory(TextAPI)
+add_subdirectory(Target)
 add_subdirectory(Transforms)
 add_subdirectory(XRay)
 add_subdirectory(tools)
diff --git a/unittests/TableGen/CMakeLists.txt b/unittests/TableGen/CMakeLists.txt
deleted file mode 100644 (file)
index d909557..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-set(LLVM_LINK_COMPONENTS
-  TableGen
-  Support
-  )
-
-add_llvm_unittest(TableGenTests
-  CodeExpanderTest.cpp
-  $<TARGET_OBJECTS:obj.LLVMTableGenGlobalISel>
-  )
-
-include_directories(${CMAKE_SOURCE_DIR}/utils/TableGen)
diff --git a/unittests/TableGen/CodeExpanderTest.cpp b/unittests/TableGen/CodeExpanderTest.cpp
deleted file mode 100644 (file)
index 75b9b73..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-//===- llvm/unittest/TableGen/CodeExpanderTest.cpp - Tests ----------------===//
-//
-// 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
-//
-//===----------------------------------------------------------------------===//
-
-#include "GlobalISel/CodeExpander.h"
-#include "GlobalISel/CodeExpansions.h"
-
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/TableGen/Error.h"
-#include "gtest/gtest.h"
-
-using namespace llvm;
-
-static StringRef bufferize(StringRef Str) {
-  std::unique_ptr<MemoryBuffer> Buffer =
-      MemoryBuffer::getMemBufferCopy(Str, "TestBuffer");
-  StringRef StrBufferRef = Buffer->getBuffer();
-  SrcMgr.AddNewSourceBuffer(std::move(Buffer), SMLoc());
-  return StrBufferRef;
-}
-
-class RAIIDiagnosticChecker {
-  std::string EmittedDiags;
-  raw_string_ostream OS;
-  std::vector<SMDiagnostic> Expected;
-  std::vector<SMDiagnostic> Received;
-
-public:
-  RAIIDiagnosticChecker() : OS(EmittedDiags) {
-    SrcMgr.setDiagHandler(handler, this);
-  }
-  ~RAIIDiagnosticChecker() {
-    SrcMgr.setDiagHandler(nullptr);
-    EXPECT_EQ(Received.size(), Expected.size());
-    for (unsigned i = 0; i < Received.size() && i < Expected.size(); ++i) {
-      EXPECT_EQ(Received[i].getLoc(), Expected[i].getLoc());
-      EXPECT_EQ(Received[i].getFilename(), Expected[i].getFilename());
-      EXPECT_EQ(Received[i].getKind(), Expected[i].getKind());
-      EXPECT_EQ(Received[i].getLineNo(), Expected[i].getLineNo());
-      EXPECT_EQ(Received[i].getColumnNo(), Expected[i].getColumnNo());
-      EXPECT_EQ(Received[i].getMessage(), Expected[i].getMessage());
-      EXPECT_EQ(Received[i].getLineContents(), Expected[i].getLineContents());
-      EXPECT_EQ(Received[i].getRanges(), Expected[i].getRanges());
-    }
-
-    if (testing::Test::HasFailure())
-      errs() << "Emitted diagnostic:\n" << OS.str();
-  }
-
-  void expect(SMDiagnostic D) { Expected.push_back(D); }
-
-  void diag(const SMDiagnostic &D) {
-    Received.push_back(D);
-  }
-
-  static void handler(const SMDiagnostic &D, void *Context) {
-    RAIIDiagnosticChecker *Self = static_cast<RAIIDiagnosticChecker *>(Context);
-    Self->diag(D);
-    SrcMgr.setDiagHandler(nullptr);
-    SrcMgr.PrintMessage(Self->OS, D);
-    SrcMgr.setDiagHandler(handler, Context);
-  };
-};
-
-TEST(CodeExpander, NoExpansions) {
-  std::string Result;
-  raw_string_ostream OS(Result);
-  CodeExpansions Expansions;
-
-  RAIIDiagnosticChecker DiagChecker;
-  CodeExpander("No expansions", Expansions, SMLoc(), false).emit(OS);
-  EXPECT_EQ(OS.str(), "No expansions");
-}
-
-// Indentation is applied to all lines except the first
-TEST(CodeExpander, Indentation) {
-  std::string Result;
-  raw_string_ostream OS(Result);
-  CodeExpansions Expansions;
-
-  RAIIDiagnosticChecker DiagChecker;
-  CodeExpander("No expansions\nsecond line\nthird line", Expansions, SMLoc(),
-               false, "  ")
-      .emit(OS);
-  EXPECT_EQ(OS.str(), "No expansions\n  second line\n  third line");
-}
-
-// \ is an escape character that removes special meanings from the next
-// character.
-TEST(CodeExpander, Escape) {
-  std::string Result;
-  raw_string_ostream OS(Result);
-  CodeExpansions Expansions;
-
-  RAIIDiagnosticChecker DiagChecker;
-  CodeExpander("\\\\\\a\\$", Expansions, SMLoc(), false).emit(OS);
-  EXPECT_EQ(OS.str(), "\\a$");
-}
-
-// $foo is not an expansion. It should warn though.
-TEST(CodeExpander, NotAnExpansion) {
-  std::string Result;
-  raw_string_ostream OS(Result);
-  CodeExpansions Expansions;
-
-  RAIIDiagnosticChecker DiagChecker;
-  StringRef In = bufferize(" $foo");
-  CodeExpander(" $foo", Expansions, SMLoc::getFromPointer(In.data()), false)
-      .emit(OS);
-  EXPECT_EQ(OS.str(), " $foo");
-  DiagChecker.expect(SMDiagnostic(
-      SrcMgr, SMLoc::getFromPointer(In.data() + 1), "TestBuffer", 1, 1,
-      SourceMgr::DK_Warning, "Assuming missing escape character", " $foo", {}));
-}
-
-// \$foo is not an expansion but shouldn't warn as it's using the escape.
-TEST(CodeExpander, EscapedNotAnExpansion) {
-  std::string Result;
-  raw_string_ostream OS(Result);
-  CodeExpansions Expansions;
-
-  RAIIDiagnosticChecker DiagChecker;
-  CodeExpander("\\$foo", Expansions, SMLoc(), false).emit(OS);
-  EXPECT_EQ(OS.str(), "$foo");
-}
-
-// \${foo is not an expansion but shouldn't warn as it's using the escape.
-TEST(CodeExpander, EscapedUnterminatedExpansion) {
-  std::string Result;
-  raw_string_ostream OS(Result);
-  CodeExpansions Expansions;
-
-  RAIIDiagnosticChecker DiagChecker;
-  CodeExpander("\\${foo", Expansions, SMLoc(), false).emit(OS);
-  EXPECT_EQ(OS.str(), "${foo");
-}
-
-// \${foo is not an expansion but shouldn't warn as it's using the escape.
-TEST(CodeExpander, EscapedExpansion) {
-  std::string Result;
-  raw_string_ostream OS(Result);
-  CodeExpansions Expansions;
-
-  RAIIDiagnosticChecker DiagChecker;
-  CodeExpander("\\${foo}", Expansions, SMLoc(), false).emit(OS);
-  EXPECT_EQ(OS.str(), "${foo}");
-}
-
-// ${foo} is an undefined expansion and should error.
-TEST(CodeExpander, UndefinedExpansion) {
-  std::string Result;
-  raw_string_ostream OS(Result);
-  CodeExpansions Expansions;
-  Expansions.declare("bar", "expansion");
-
-  RAIIDiagnosticChecker DiagChecker;
-  CodeExpander("${foo}${bar}", Expansions, SMLoc(), false).emit(OS);
-  EXPECT_EQ(OS.str(), "expansion");
-  DiagChecker.expect(
-      SMDiagnostic(SrcMgr, SMLoc(), "<unknown>", 0, -1, SourceMgr::DK_Error,
-                   "Attempting to expand an undeclared variable foo", "", {}));
-}
-
-// ${foo} is an undefined expansion and should error. When given a valid
-// location for the start of the buffer it should correctly point at the
-// expansion being performed.
-TEST(CodeExpander, UndefinedExpansionWithLoc) {
-  std::string Result;
-  raw_string_ostream OS(Result);
-  CodeExpansions Expansions;
-  Expansions.declare("bar", "expansion");
-
-  RAIIDiagnosticChecker DiagChecker;
-  StringRef In = bufferize("Padding ${foo}${bar}");
-  CodeExpander(In, Expansions, SMLoc::getFromPointer(In.data()), false)
-      .emit(OS);
-  EXPECT_EQ(OS.str(), "Padding expansion");
-  DiagChecker.expect(SMDiagnostic(
-      SrcMgr, SMLoc::getFromPointer(In.data() + 8), "TestBuffer", 1, 8,
-      SourceMgr::DK_Error, "Attempting to expand an undeclared variable foo",
-      "Padding ${foo}${bar}", {}));
-}
-
-// ${bar is an unterminated expansion. Warn and implicitly terminate it.
-TEST(CodeExpander, UnterminatedExpansion) {
-  std::string Result;
-  raw_string_ostream OS(Result);
-  CodeExpansions Expansions;
-  Expansions.declare("bar", "expansion");
-
-  RAIIDiagnosticChecker DiagChecker;
-  StringRef In = bufferize(" ${bar");
-  CodeExpander(In, Expansions, SMLoc::getFromPointer(In.data()), false)
-      .emit(OS);
-  EXPECT_EQ(OS.str(), " expansion");
-  DiagChecker.expect(SMDiagnostic(SrcMgr, SMLoc::getFromPointer(In.data() + 1),
-                                  "TestBuffer", 1, 1, SourceMgr::DK_Warning,
-                                  "Unterminated expansion", " ${bar", {}));
-}
index 8a79d5757b2a0ab688390f6a98b58c25ca0d460d..d97f9359f54d0b9d47236de72faccebf80d99ce4 100644 (file)
@@ -1,5 +1,3 @@
-add_subdirectory(GlobalISel)
-
 set(LLVM_LINK_COMPONENTS Support)
 
 add_tablegen(llvm-tblgen LLVM
@@ -51,6 +49,5 @@ add_tablegen(llvm-tblgen LLVM
   X86RecognizableInstr.cpp
   WebAssemblyDisassemblerEmitter.cpp
   CTagsEmitter.cpp
-  $<TARGET_OBJECTS:obj.LLVMTableGenGlobalISel>
   )
 set_target_properties(llvm-tblgen PROPERTIES FOLDER "Tablegenning")
index c2b64bcfb7c5e3c3a5a4a6ec79ff020bd68a10a8..a85462b5aa89dfa9b6f71f05a6e5d4e69541d293 100644 (file)
@@ -26,11 +26,6 @@ cl::OptionCategory
 static cl::list<std::string>
     SelectedCombiners("combiners", cl::desc("Emit the specified combiners"),
                       cl::cat(GICombinerEmitterCat), cl::CommaSeparated);
-static cl::opt<bool> ShowExpansions(
-    "gicombiner-show-expansions",
-    cl::desc("Use C++ comments to indicate occurence of code expansion"),
-    cl::cat(GICombinerEmitterCat));
-
 namespace {
 class GICombinerEmitter {
   StringRef Name;
diff --git a/utils/TableGen/GlobalISel/CMakeLists.txt b/utils/TableGen/GlobalISel/CMakeLists.txt
deleted file mode 100644 (file)
index cd64534..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-set(LLVM_LINK_COMPONENTS
-  Support
-  )
-
-llvm_add_library(LLVMTableGenGlobalISel OBJECT
-                 CodeExpander.cpp
-                )
diff --git a/utils/TableGen/GlobalISel/CodeExpander.cpp b/utils/TableGen/GlobalISel/CodeExpander.cpp
deleted file mode 100644 (file)
index d59a9b8..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-//===- CodeExpander.cpp - Expand variables in a string --------------------===//
-//
-// 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
-//
-//===----------------------------------------------------------------------===//
-//
-/// \file Expand the variables in a string.
-//
-//===----------------------------------------------------------------------===//
-
-#include "CodeExpander.h"
-#include "CodeExpansions.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/raw_ostream.h"
-#include "llvm/TableGen/Error.h"
-
-using namespace llvm;
-
-void CodeExpander::emit(raw_ostream &OS) const {
-  StringRef Current = Code;
-
-  while (!Current.empty()) {
-    size_t Pos = Current.find_first_of("$\n\\");
-    if (Pos == StringRef::npos) {
-      OS << Current;
-      Current = "";
-      continue;
-    }
-
-    OS << Current.substr(0, Pos);
-    Current = Current.substr(Pos);
-
-    if (Current.startswith("\n")) {
-      OS << "\n" << Indent;
-      Current = Current.drop_front(1);
-      continue;
-    }
-
-    if (Current.startswith("\\$") || Current.startswith("\\\\")) {
-      OS << Current[1];
-      Current = Current.drop_front(2);
-      continue;
-    }
-
-    if (Current.startswith("\\")) {
-      Current = Current.drop_front(1);
-      continue;
-    }
-
-    if (Current.startswith("${")) {
-      StringRef StartVar = Current;
-      Current = Current.drop_front(2);
-      StringRef Var;
-      std::tie(Var, Current) = Current.split("}");
-
-      // Warn if we split because no terminator was found.
-      StringRef EndVar = StartVar.drop_front(2 /* ${ */ + Var.size());
-      if (EndVar.empty()) {
-        size_t LocOffset = StartVar.data() - Code.data();
-        PrintWarning(
-            Loc.size() > 0 && Loc[0].isValid()
-                ? SMLoc::getFromPointer(Loc[0].getPointer() + LocOffset)
-                : SMLoc(),
-            "Unterminated expansion");
-      }
-
-      auto ValueI = Expansions.find(Var);
-      if (ValueI == Expansions.end()) {
-        size_t LocOffset = StartVar.data() - Code.data();
-        PrintError(Loc.size() > 0 && Loc[0].isValid()
-                       ? SMLoc::getFromPointer(Loc[0].getPointer() + LocOffset)
-                       : SMLoc(),
-                   "Attempting to expand an undeclared variable " + Var);
-      }
-      if (ShowExpansions)
-        OS << "/*$" << Var << "{*/";
-      OS << Expansions.lookup(Var);
-      if (ShowExpansions)
-        OS << "/*}*/";
-      continue;
-    }
-
-    size_t LocOffset = Current.data() - Code.data();
-    PrintWarning(Loc.size() > 0 && Loc[0].isValid()
-                     ? SMLoc::getFromPointer(Loc[0].getPointer() + LocOffset)
-                     : SMLoc(),
-                 "Assuming missing escape character");
-    OS << "$";
-    Current = Current.drop_front(1);
-  }
-}
diff --git a/utils/TableGen/GlobalISel/CodeExpander.h b/utils/TableGen/GlobalISel/CodeExpander.h
deleted file mode 100644 (file)
index bd6946d..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-//===- CodeExpander.h - Expand variables in a string ----------------------===//
-//
-// 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
-//
-//===----------------------------------------------------------------------===//
-//
-/// \file Expand the variables in a string.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_UTILS_TABLEGEN_CODEEXPANDER_H
-#define LLVM_UTILS_TABLEGEN_CODEEXPANDER_H
-
-#include "llvm/ADT/ArrayRef.h"
-#include "llvm/ADT/StringRef.h"
-#include "llvm/Support/SMLoc.h"
-
-namespace llvm {
-class CodeExpansions;
-class raw_ostream;
-
-/// Emit the given code with all '${foo}' placeholders expanded to their
-/// replacements.
-///
-/// It's an error to use an undefined expansion and expansion-like output that
-/// needs to be emitted verbatim can be escaped as '\${foo}'
-///
-/// The emitted code can be given a custom indent to enable both indentation by
-/// an arbitrary amount of whitespace and emission of the code as a comment.
-class CodeExpander {
-  StringRef Code;
-  const CodeExpansions &Expansions;
-  const ArrayRef<SMLoc> &Loc;
-  bool ShowExpansions;
-  StringRef Indent;
-
-public:
-  CodeExpander(StringRef Code, const CodeExpansions &Expansions,
-               const ArrayRef<SMLoc> &Loc, bool ShowExpansions,
-               StringRef Indent = "    ")
-      : Code(Code), Expansions(Expansions), Loc(Loc),
-        ShowExpansions(ShowExpansions), Indent(Indent) {}
-
-  void emit(raw_ostream &OS) const;
-};
-
-inline raw_ostream &operator<<(raw_ostream &OS, const CodeExpander &Expander) {
-  Expander.emit(OS);
-  return OS;
-}
-} // end namespace llvm
-
-#endif // ifndef LLVM_UTILS_TABLEGEN_CODEEXPANDER_H
diff --git a/utils/TableGen/GlobalISel/CodeExpansions.h b/utils/TableGen/GlobalISel/CodeExpansions.h
deleted file mode 100644 (file)
index bb890ec..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-//===- CodeExpansions.h - Record expansions for CodeExpander --------------===//
-//
-// 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
-//
-//===----------------------------------------------------------------------===//
-//
-/// \file Record the expansions to use in a CodeExpander.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/ADT/StringMap.h"
-
-#ifndef LLVM_UTILS_TABLEGEN_CODEEXPANSIONS_H
-#define LLVM_UTILS_TABLEGEN_CODEEXPANSIONS_H
-namespace llvm {
-class CodeExpansions {
-public:
-  using const_iterator = StringMap<std::string>::const_iterator;
-
-protected:
-  StringMap<std::string> Expansions;
-
-public:
-  void declare(StringRef Name, StringRef Expansion) {
-    bool Inserted = Expansions.try_emplace(Name, Expansion).second;
-    assert(Inserted && "Declared variable twice");
-    (void)Inserted;
-  }
-
-  std::string lookup(StringRef Variable) const {
-    return Expansions.lookup(Variable);
-  }
-
-  const_iterator begin() const { return Expansions.begin(); }
-  const_iterator end() const { return Expansions.end(); }
-  const_iterator find(StringRef Variable) const {
-    return Expansions.find(Variable);
-  }
-};
-} // end namespace llvm
-#endif // ifndef LLVM_UTILS_TABLEGEN_CODEEXPANSIONS_H