From ebf190fcda0b8b4e9de405ba13ddbc679550644b Mon Sep 17 00:00:00 2001 From: River Riddle Date: Tue, 14 Apr 2020 14:53:50 -0700 Subject: [PATCH] [llvm][ADT] Move TypeSwitch class from MLIR to LLVM This class implements a switch-like dispatch statement for a value of 'T' using dyn_cast functionality. Each `Case` takes a callable to be invoked if the root value isa, the callable is invoked with the result of dyn_cast() as a parameter. Differential Revision: https://reviews.llvm.org/D78070 --- flang/lib/Optimizer/Dialect/FIROps.cpp | 4 +-- flang/lib/Optimizer/Dialect/FIRType.cpp | 4 +-- .../mlir => llvm/include/llvm}/ADT/TypeSwitch.h | 34 ++++++++++------------ llvm/unittests/ADT/CMakeLists.txt | 1 + {mlir => llvm}/unittests/ADT/TypeSwitchTest.cpp | 12 ++++---- mlir/examples/toy/Ch1/parser/AST.cpp | 4 +-- mlir/examples/toy/Ch2/parser/AST.cpp | 4 +-- mlir/examples/toy/Ch3/parser/AST.cpp | 4 +-- mlir/examples/toy/Ch4/parser/AST.cpp | 4 +-- mlir/examples/toy/Ch5/parser/AST.cpp | 4 +-- mlir/examples/toy/Ch6/parser/AST.cpp | 4 +-- mlir/examples/toy/Ch7/parser/AST.cpp | 4 +-- mlir/include/mlir/Support/LLVM.h | 3 ++ .../Conversion/StandardToLLVM/StandardToLLVM.cpp | 2 +- .../lib/Dialect/SPIRV/Serialization/Serializer.cpp | 2 +- mlir/lib/TableGen/Operator.cpp | 2 +- mlir/lib/TableGen/Successor.cpp | 2 +- mlir/lib/TableGen/Type.cpp | 2 +- mlir/lib/Target/LLVMIR/ModuleTranslation.cpp | 4 +-- mlir/lib/Transforms/Utils/Utils.cpp | 2 +- mlir/test/lib/Transforms/TestMemRefBoundCheck.cpp | 2 +- mlir/tools/mlir-tblgen/OpFormatGen.cpp | 2 +- mlir/unittests/ADT/CMakeLists.txt | 5 ---- mlir/unittests/CMakeLists.txt | 1 - 24 files changed, 54 insertions(+), 58 deletions(-) rename {mlir/include/mlir => llvm/include/llvm}/ADT/TypeSwitch.h (89%) rename {mlir => llvm}/unittests/ADT/TypeSwitchTest.cpp (93%) delete mode 100644 mlir/unittests/ADT/CMakeLists.txt diff --git a/flang/lib/Optimizer/Dialect/FIROps.cpp b/flang/lib/Optimizer/Dialect/FIROps.cpp index 9c46de0..f62e1c4 100644 --- a/flang/lib/Optimizer/Dialect/FIROps.cpp +++ b/flang/lib/Optimizer/Dialect/FIROps.cpp @@ -10,7 +10,6 @@ #include "flang/Optimizer/Dialect/FIRAttr.h" #include "flang/Optimizer/Dialect/FIROpsSupport.h" #include "flang/Optimizer/Dialect/FIRType.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "mlir/IR/Diagnostics.h" #include "mlir/IR/Function.h" @@ -18,6 +17,7 @@ #include "mlir/IR/StandardTypes.h" #include "mlir/IR/SymbolTable.h" #include "llvm/ADT/StringSwitch.h" +#include "llvm/ADT/TypeSwitch.h" using namespace fir; @@ -351,7 +351,7 @@ void fir::GlobalOp::appendInitialValue(mlir::Operation *op) { /// Get the element type of a reference like type; otherwise null static mlir::Type elementTypeOf(mlir::Type ref) { - return mlir::TypeSwitch(ref) + return llvm::TypeSwitch(ref) .Case( [](auto type) { return type.getEleTy(); }) .Default([](mlir::Type) { return mlir::Type{}; }); diff --git a/flang/lib/Optimizer/Dialect/FIRType.cpp b/flang/lib/Optimizer/Dialect/FIRType.cpp index d1fccd7..1fedd00 100644 --- a/flang/lib/Optimizer/Dialect/FIRType.cpp +++ b/flang/lib/Optimizer/Dialect/FIRType.cpp @@ -8,7 +8,6 @@ #include "flang/Optimizer/Dialect/FIRType.h" #include "flang/Optimizer/Dialect/FIRDialect.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/IR/Builders.h" #include "mlir/IR/Diagnostics.h" #include "mlir/IR/Dialect.h" @@ -17,6 +16,7 @@ #include "mlir/Parser.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/StringSet.h" +#include "llvm/ADT/TypeSwitch.h" using namespace fir; @@ -847,7 +847,7 @@ bool isa_aggregate(mlir::Type t) { } mlir::Type dyn_cast_ptrEleTy(mlir::Type t) { - return mlir::TypeSwitch(t) + return llvm::TypeSwitch(t) .Case( [](auto p) { return p.getEleTy(); }) .Default([](mlir::Type) { return mlir::Type{}; }); diff --git a/mlir/include/mlir/ADT/TypeSwitch.h b/llvm/include/llvm/ADT/TypeSwitch.h similarity index 89% rename from mlir/include/mlir/ADT/TypeSwitch.h rename to llvm/include/llvm/ADT/TypeSwitch.h index d4798c5..bfcb206 100644 --- a/mlir/include/mlir/ADT/TypeSwitch.h +++ b/llvm/include/llvm/ADT/TypeSwitch.h @@ -11,14 +11,14 @@ // //===-----------------------------------------------------------------------===/ -#ifndef MLIR_SUPPORT_TYPESWITCH_H -#define MLIR_SUPPORT_TYPESWITCH_H +#ifndef LLVM_ADT_TYPESWITCH_H +#define LLVM_ADT_TYPESWITCH_H -#include "mlir/Support/LLVM.h" -#include "mlir/Support/STLExtras.h" #include "llvm/ADT/Optional.h" +#include "llvm/ADT/STLExtras.h" +#include "llvm/Support/Casting.h" -namespace mlir { +namespace llvm { namespace detail { template class TypeSwitchBase { @@ -46,7 +46,7 @@ public: /// Note: This inference rules for this overload are very simple: strip /// pointers and references. template DerivedT &Case(CallableT &&caseFn) { - using Traits = llvm::function_traits>; + using Traits = function_traits>; using CaseT = std::remove_cv_t>>>; @@ -64,22 +64,20 @@ protected: /// Attempt to dyn_cast the given `value` to `CastT`. This overload is /// selected if `value` already has a suitable dyn_cast method. template - static auto - castValue(ValueT value, - typename std::enable_if_t< - llvm::is_detected::value> * = - nullptr) { + static auto castValue( + ValueT value, + typename std::enable_if_t< + is_detected::value> * = nullptr) { return value.template dyn_cast(); } /// Attempt to dyn_cast the given `value` to `CastT`. This overload is /// selected if llvm::dyn_cast should be used. template - static auto - castValue(ValueT value, - typename std::enable_if_t< - !llvm::is_detected::value> * = - nullptr) { + static auto castValue( + ValueT value, + typename std::enable_if_t< + !is_detected::value> * = nullptr) { return dyn_cast(value); } @@ -173,6 +171,6 @@ private: /// A flag detailing if we have already found a match. bool foundMatch = false; }; -} // end namespace mlir +} // end namespace llvm -#endif // MLIR_SUPPORT_TYPESWITCH_H +#endif // LLVM_ADT_TYPESWITCH_H diff --git a/llvm/unittests/ADT/CMakeLists.txt b/llvm/unittests/ADT/CMakeLists.txt index b6a1484..8879a2a 100644 --- a/llvm/unittests/ADT/CMakeLists.txt +++ b/llvm/unittests/ADT/CMakeLists.txt @@ -73,6 +73,7 @@ add_llvm_unittest(ADTTests TinyPtrVectorTest.cpp TripleTest.cpp TwineTest.cpp + TypeSwitchTest.cpp TypeTraitsTest.cpp WaymarkingTest.cpp ) diff --git a/mlir/unittests/ADT/TypeSwitchTest.cpp b/llvm/unittests/ADT/TypeSwitchTest.cpp similarity index 93% rename from mlir/unittests/ADT/TypeSwitchTest.cpp rename to llvm/unittests/ADT/TypeSwitchTest.cpp index 5a48922..fde423d 100644 --- a/mlir/unittests/ADT/TypeSwitchTest.cpp +++ b/llvm/unittests/ADT/TypeSwitchTest.cpp @@ -6,10 +6,10 @@ // //===----------------------------------------------------------------------===// -#include "mlir/ADT/TypeSwitch.h" +#include "llvm/ADT/TypeSwitch.h" #include "gtest/gtest.h" -using namespace mlir; +using namespace llvm; namespace { /// Utility classes to setup casting functionality. @@ -28,7 +28,7 @@ struct DerivedD : public DerivedImpl {}; struct DerivedE : public DerivedImpl {}; } // end anonymous namespace -TEST(StringSwitchTest, CaseResult) { +TEST(TypeSwitchTest, CaseResult) { auto translate = [](auto value) { return TypeSwitch(&value) .Case([](DerivedA *) { return 0; }) @@ -42,7 +42,7 @@ TEST(StringSwitchTest, CaseResult) { EXPECT_EQ(-1, translate(DerivedD())); } -TEST(StringSwitchTest, CasesResult) { +TEST(TypeSwitchTest, CasesResult) { auto translate = [](auto value) { return TypeSwitch(&value) .Case([](auto *) { return 0; }) @@ -56,7 +56,7 @@ TEST(StringSwitchTest, CasesResult) { EXPECT_EQ(-1, translate(DerivedE())); } -TEST(StringSwitchTest, CaseVoid) { +TEST(TypeSwitchTest, CaseVoid) { auto translate = [](auto value) { int result = -2; TypeSwitch(&value) @@ -72,7 +72,7 @@ TEST(StringSwitchTest, CaseVoid) { EXPECT_EQ(-1, translate(DerivedD())); } -TEST(StringSwitchTest, CasesVoid) { +TEST(TypeSwitchTest, CasesVoid) { auto translate = [](auto value) { int result = -1; TypeSwitch(&value) diff --git a/mlir/examples/toy/Ch1/parser/AST.cpp b/mlir/examples/toy/Ch1/parser/AST.cpp index 55e75f6..d46d913 100644 --- a/mlir/examples/toy/Ch1/parser/AST.cpp +++ b/mlir/examples/toy/Ch1/parser/AST.cpp @@ -12,9 +12,9 @@ #include "toy/AST.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Support/STLExtras.h" #include "llvm/ADT/Twine.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/Support/raw_ostream.h" using namespace toy; @@ -76,7 +76,7 @@ template static std::string loc(T *node) { /// Dispatch to a generic expressions to the appropriate subclass using RTTI void ASTDumper::dump(ExprAST *expr) { - mlir::TypeSwitch(expr) + llvm::TypeSwitch(expr) .Case( [&](auto *node) { this->dump(node); }) diff --git a/mlir/examples/toy/Ch2/parser/AST.cpp b/mlir/examples/toy/Ch2/parser/AST.cpp index 55e75f6..d46d913 100644 --- a/mlir/examples/toy/Ch2/parser/AST.cpp +++ b/mlir/examples/toy/Ch2/parser/AST.cpp @@ -12,9 +12,9 @@ #include "toy/AST.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Support/STLExtras.h" #include "llvm/ADT/Twine.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/Support/raw_ostream.h" using namespace toy; @@ -76,7 +76,7 @@ template static std::string loc(T *node) { /// Dispatch to a generic expressions to the appropriate subclass using RTTI void ASTDumper::dump(ExprAST *expr) { - mlir::TypeSwitch(expr) + llvm::TypeSwitch(expr) .Case( [&](auto *node) { this->dump(node); }) diff --git a/mlir/examples/toy/Ch3/parser/AST.cpp b/mlir/examples/toy/Ch3/parser/AST.cpp index 55e75f6..d46d913 100644 --- a/mlir/examples/toy/Ch3/parser/AST.cpp +++ b/mlir/examples/toy/Ch3/parser/AST.cpp @@ -12,9 +12,9 @@ #include "toy/AST.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Support/STLExtras.h" #include "llvm/ADT/Twine.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/Support/raw_ostream.h" using namespace toy; @@ -76,7 +76,7 @@ template static std::string loc(T *node) { /// Dispatch to a generic expressions to the appropriate subclass using RTTI void ASTDumper::dump(ExprAST *expr) { - mlir::TypeSwitch(expr) + llvm::TypeSwitch(expr) .Case( [&](auto *node) { this->dump(node); }) diff --git a/mlir/examples/toy/Ch4/parser/AST.cpp b/mlir/examples/toy/Ch4/parser/AST.cpp index 55e75f6..d46d913 100644 --- a/mlir/examples/toy/Ch4/parser/AST.cpp +++ b/mlir/examples/toy/Ch4/parser/AST.cpp @@ -12,9 +12,9 @@ #include "toy/AST.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Support/STLExtras.h" #include "llvm/ADT/Twine.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/Support/raw_ostream.h" using namespace toy; @@ -76,7 +76,7 @@ template static std::string loc(T *node) { /// Dispatch to a generic expressions to the appropriate subclass using RTTI void ASTDumper::dump(ExprAST *expr) { - mlir::TypeSwitch(expr) + llvm::TypeSwitch(expr) .Case( [&](auto *node) { this->dump(node); }) diff --git a/mlir/examples/toy/Ch5/parser/AST.cpp b/mlir/examples/toy/Ch5/parser/AST.cpp index 55e75f6..d46d913 100644 --- a/mlir/examples/toy/Ch5/parser/AST.cpp +++ b/mlir/examples/toy/Ch5/parser/AST.cpp @@ -12,9 +12,9 @@ #include "toy/AST.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Support/STLExtras.h" #include "llvm/ADT/Twine.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/Support/raw_ostream.h" using namespace toy; @@ -76,7 +76,7 @@ template static std::string loc(T *node) { /// Dispatch to a generic expressions to the appropriate subclass using RTTI void ASTDumper::dump(ExprAST *expr) { - mlir::TypeSwitch(expr) + llvm::TypeSwitch(expr) .Case( [&](auto *node) { this->dump(node); }) diff --git a/mlir/examples/toy/Ch6/parser/AST.cpp b/mlir/examples/toy/Ch6/parser/AST.cpp index 55e75f6..d46d913 100644 --- a/mlir/examples/toy/Ch6/parser/AST.cpp +++ b/mlir/examples/toy/Ch6/parser/AST.cpp @@ -12,9 +12,9 @@ #include "toy/AST.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Support/STLExtras.h" #include "llvm/ADT/Twine.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/Support/raw_ostream.h" using namespace toy; @@ -76,7 +76,7 @@ template static std::string loc(T *node) { /// Dispatch to a generic expressions to the appropriate subclass using RTTI void ASTDumper::dump(ExprAST *expr) { - mlir::TypeSwitch(expr) + llvm::TypeSwitch(expr) .Case( [&](auto *node) { this->dump(node); }) diff --git a/mlir/examples/toy/Ch7/parser/AST.cpp b/mlir/examples/toy/Ch7/parser/AST.cpp index bf2e9a8..69c3fc6 100644 --- a/mlir/examples/toy/Ch7/parser/AST.cpp +++ b/mlir/examples/toy/Ch7/parser/AST.cpp @@ -12,9 +12,9 @@ #include "toy/AST.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Support/STLExtras.h" #include "llvm/ADT/Twine.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/Support/raw_ostream.h" using namespace toy; @@ -78,7 +78,7 @@ template static std::string loc(T *node) { /// Dispatch to a generic expressions to the appropriate subclass using RTTI void ASTDumper::dump(ExprAST *expr) { - mlir::TypeSwitch(expr) + llvm::TypeSwitch(expr) .Case([&](auto *node) { this->dump(node); }) diff --git a/mlir/include/mlir/Support/LLVM.h b/mlir/include/mlir/Support/LLVM.h index c21271c..8d7dfc0 100644 --- a/mlir/include/mlir/Support/LLVM.h +++ b/mlir/include/mlir/Support/LLVM.h @@ -48,6 +48,7 @@ template class DenseMap; template class function_ref; template class iterator_range; +template class TypeSwitch; // Other common classes. class raw_ostream; @@ -88,6 +89,8 @@ using llvm::StringLiteral; using llvm::StringRef; using llvm::TinyPtrVector; using llvm::Twine; +template +using TypeSwitch = llvm::TypeSwitch; // Other common classes. using llvm::APFloat; diff --git a/mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp b/mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp index abb3fd7..3c5a925 100644 --- a/mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp +++ b/mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp @@ -12,7 +12,6 @@ //===----------------------------------------------------------------------===// #include "../PassDetail.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h" #include "mlir/Conversion/StandardToLLVM/ConvertStandardToLLVMPass.h" #include "mlir/Dialect/LLVMIR/LLVMDialect.h" @@ -27,6 +26,7 @@ #include "mlir/Transforms/DialectConversion.h" #include "mlir/Transforms/Passes.h" #include "mlir/Transforms/Utils.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/IR/DerivedTypes.h" #include "llvm/IR/IRBuilder.h" #include "llvm/IR/Type.h" diff --git a/mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp b/mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp index b951f5a..45eaba6 100644 --- a/mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp +++ b/mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp @@ -12,7 +12,6 @@ #include "mlir/Dialect/SPIRV/Serialization.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Dialect/SPIRV/SPIRVAttributes.h" #include "mlir/Dialect/SPIRV/SPIRVBinaryUtils.h" #include "mlir/Dialect/SPIRV/SPIRVDialect.h" @@ -26,6 +25,7 @@ #include "llvm/ADT/Sequence.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/ADT/bit.h" #include "llvm/Support/Debug.h" #include "llvm/Support/raw_ostream.h" diff --git a/mlir/lib/TableGen/Operator.cpp b/mlir/lib/TableGen/Operator.cpp index a6bed62..808ba7a 100644 --- a/mlir/lib/TableGen/Operator.cpp +++ b/mlir/lib/TableGen/Operator.cpp @@ -11,11 +11,11 @@ //===----------------------------------------------------------------------===// #include "mlir/TableGen/Operator.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/TableGen/OpTrait.h" #include "mlir/TableGen/Predicate.h" #include "mlir/TableGen/Type.h" #include "llvm/ADT/SmallPtrSet.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/Support/Debug.h" #include "llvm/Support/FormatVariadic.h" #include "llvm/TableGen/Error.h" diff --git a/mlir/lib/TableGen/Successor.cpp b/mlir/lib/TableGen/Successor.cpp index 80c6e9b..ce0aafb 100644 --- a/mlir/lib/TableGen/Successor.cpp +++ b/mlir/lib/TableGen/Successor.cpp @@ -12,7 +12,7 @@ //===----------------------------------------------------------------------===// #include "mlir/TableGen/Successor.h" -#include "mlir/ADT/TypeSwitch.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/TableGen/Record.h" using namespace mlir; diff --git a/mlir/lib/TableGen/Type.cpp b/mlir/lib/TableGen/Type.cpp index 6cf2a5f4..a3d6ac6 100644 --- a/mlir/lib/TableGen/Type.cpp +++ b/mlir/lib/TableGen/Type.cpp @@ -11,7 +11,7 @@ //===----------------------------------------------------------------------===// #include "mlir/TableGen/Type.h" -#include "mlir/ADT/TypeSwitch.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/TableGen/Record.h" using namespace mlir; diff --git a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp index 125b88f..78458e8 100644 --- a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp +++ b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp @@ -14,13 +14,13 @@ #include "mlir/Target/LLVMIR/ModuleTranslation.h" #include "DebugTranslation.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Dialect/LLVMIR/LLVMDialect.h" #include "mlir/Dialect/OpenMP/OpenMPDialect.h" #include "mlir/IR/Attributes.h" #include "mlir/IR/Module.h" #include "mlir/IR/StandardTypes.h" #include "mlir/Support/LLVM.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/ADT/SetVector.h" #include "llvm/Frontend/OpenMP/OMPIRBuilder.h" @@ -316,7 +316,7 @@ ModuleTranslation::convertOmpOperation(Operation &opInst, ompBuilder = std::make_unique(*llvmModule); ompBuilder->initialize(); } - return mlir::TypeSwitch(&opInst) + return llvm::TypeSwitch(&opInst) .Case([&](omp::BarrierOp) { ompBuilder->CreateBarrier(builder.saveIP(), llvm::omp::OMPD_barrier); return success(); diff --git a/mlir/lib/Transforms/Utils/Utils.cpp b/mlir/lib/Transforms/Utils/Utils.cpp index 4ab773e..481b757 100644 --- a/mlir/lib/Transforms/Utils/Utils.cpp +++ b/mlir/lib/Transforms/Utils/Utils.cpp @@ -13,7 +13,6 @@ #include "mlir/Transforms/Utils.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Analysis/AffineAnalysis.h" #include "mlir/Analysis/AffineStructures.h" #include "mlir/Analysis/Dominance.h" @@ -24,6 +23,7 @@ #include "mlir/IR/Module.h" #include "mlir/Support/MathExtras.h" #include "llvm/ADT/DenseMap.h" +#include "llvm/ADT/TypeSwitch.h" using namespace mlir; /// Return true if this operation dereferences one or more memref's. diff --git a/mlir/test/lib/Transforms/TestMemRefBoundCheck.cpp b/mlir/test/lib/Transforms/TestMemRefBoundCheck.cpp index 51339be..da140b3 100644 --- a/mlir/test/lib/Transforms/TestMemRefBoundCheck.cpp +++ b/mlir/test/lib/Transforms/TestMemRefBoundCheck.cpp @@ -11,7 +11,6 @@ // //===----------------------------------------------------------------------===// -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Analysis/AffineAnalysis.h" #include "mlir/Analysis/AffineStructures.h" #include "mlir/Analysis/Utils.h" @@ -19,6 +18,7 @@ #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "mlir/IR/Builders.h" #include "mlir/Pass/Pass.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/Support/Debug.h" #define DEBUG_TYPE "memref-bound-check" diff --git a/mlir/tools/mlir-tblgen/OpFormatGen.cpp b/mlir/tools/mlir-tblgen/OpFormatGen.cpp index fcb431b..c433c2e 100644 --- a/mlir/tools/mlir-tblgen/OpFormatGen.cpp +++ b/mlir/tools/mlir-tblgen/OpFormatGen.cpp @@ -7,7 +7,6 @@ //===----------------------------------------------------------------------===// #include "OpFormatGen.h" -#include "mlir/ADT/TypeSwitch.h" #include "mlir/Support/LogicalResult.h" #include "mlir/Support/STLExtras.h" #include "mlir/TableGen/Format.h" @@ -20,6 +19,7 @@ #include "llvm/ADT/Sequence.h" #include "llvm/ADT/SmallBitVector.h" #include "llvm/ADT/StringExtras.h" +#include "llvm/ADT/TypeSwitch.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/Signals.h" #include "llvm/TableGen/Error.h" diff --git a/mlir/unittests/ADT/CMakeLists.txt b/mlir/unittests/ADT/CMakeLists.txt deleted file mode 100644 index cb12262..0000000 --- a/mlir/unittests/ADT/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -add_mlir_unittest(MLIRADTTests - TypeSwitchTest.cpp -) - -target_link_libraries(MLIRADTTests PRIVATE MLIRSupport LLVMSupport) diff --git a/mlir/unittests/CMakeLists.txt b/mlir/unittests/CMakeLists.txt index 79a5297..e80cc91 100644 --- a/mlir/unittests/CMakeLists.txt +++ b/mlir/unittests/CMakeLists.txt @@ -5,7 +5,6 @@ function(add_mlir_unittest test_dirname) add_unittest(MLIRUnitTests ${test_dirname} ${ARGN}) endfunction() -add_subdirectory(ADT) add_subdirectory(Dialect) add_subdirectory(IR) add_subdirectory(Pass) -- 2.7.4