Index: mlir/lib/TableGen/CMakeLists.txt =================================================================== --- mlir/lib/TableGen/CMakeLists.txt +++ mlir/lib/TableGen/CMakeLists.txt @@ -17,6 +17,7 @@ Constraint.cpp Dialect.cpp Format.cpp + GenInfo.cpp Interfaces.cpp Operator.cpp Pass.cpp Index: mlir/lib/TableGen/GenInfo.cpp =================================================================== --- /dev/null +++ mlir/lib/TableGen/GenInfo.cpp @@ -0,0 +1,41 @@ +//===- GenInfo.cpp - Generator info -----------------------------*- 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 +// +//===----------------------------------------------------------------------===// + +#include "mlir/TableGen/GenInfo.h" + +#include "mlir/TableGen/GenNameParser.h" +#include "llvm/Support/CommandLine.h" +#include "llvm/Support/ManagedStatic.h" + +using namespace mlir; + +static llvm::ManagedStatic> generatorRegistry; + +mlir::GenRegistration::GenRegistration(StringRef arg, StringRef description, + const GenFunction &function) { + generatorRegistry->emplace_back(arg, description, function); +} + +GenNameParser::GenNameParser(llvm::cl::Option &opt) + : llvm::cl::parser(opt) { + for (const auto &kv : *generatorRegistry) { + addLiteralOption(kv.getGenArgument(), &kv, kv.getGenDescription()); + } +} + +void GenNameParser::printOptionInfo(const llvm::cl::Option &o, + size_t globalWidth) const { + GenNameParser *tp = const_cast(this); + llvm::array_pod_sort(tp->Values.begin(), tp->Values.end(), + [](const GenNameParser::OptionInfo *vT1, + const GenNameParser::OptionInfo *vT2) { + return vT1->Name.compare(vT2->Name); + }); + using llvm::cl::parser; + parser::printOptionInfo(o, globalWidth); +} Index: mlir/tools/mlir-tblgen/mlir-tblgen.cpp =================================================================== --- mlir/tools/mlir-tblgen/mlir-tblgen.cpp +++ mlir/tools/mlir-tblgen/mlir-tblgen.cpp @@ -12,16 +12,13 @@ #include "mlir/TableGen/GenInfo.h" #include "mlir/TableGen/GenNameParser.h" -#include "llvm/ADT/StringExtras.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/FormatVariadic.h" #include "llvm/Support/InitLLVM.h" -#include "llvm/Support/ManagedStatic.h" #include "llvm/Support/Signals.h" #include "llvm/TableGen/Error.h" #include "llvm/TableGen/Main.h" #include "llvm/TableGen/Record.h" -#include "llvm/TableGen/TableGenBackend.h" using namespace llvm; using namespace mlir; @@ -35,32 +32,6 @@ clEnumValN(DeprecatedAction::Error, "error", "Error on use"))); -static llvm::ManagedStatic> generatorRegistry; - -mlir::GenRegistration::GenRegistration(StringRef arg, StringRef description, - const GenFunction &function) { - generatorRegistry->emplace_back(arg, description, function); -} - -GenNameParser::GenNameParser(llvm::cl::Option &opt) - : llvm::cl::parser(opt) { - for (const auto &kv : *generatorRegistry) { - addLiteralOption(kv.getGenArgument(), &kv, kv.getGenDescription()); - } -} - -void GenNameParser::printOptionInfo(const llvm::cl::Option &o, - size_t globalWidth) const { - GenNameParser *tp = const_cast(this); - llvm::array_pod_sort(tp->Values.begin(), tp->Values.end(), - [](const GenNameParser::OptionInfo *vT1, - const GenNameParser::OptionInfo *vT2) { - return vT1->Name.compare(vT2->Name); - }); - using llvm::cl::parser; - parser::printOptionInfo(o, globalWidth); -} - // Generator that prints records. GenRegistration printRecords("print-records", "Print all records to stdout", [](const RecordKeeper &records, raw_ostream &os) {