From 57818885be5160380e29e9c2e915b37d5b11ade9 Mon Sep 17 00:00:00 2001 From: Stephen Neuendorffer Date: Thu, 30 Apr 2020 13:09:13 -0700 Subject: [PATCH] [MLIR] Move Verifier and Dominance Analysis from /Analysis to /IR These libraries are distinct from other things in Analysis in that they operate only on core IR concepts. This also simplifies dependencies so that Dialect -> Analysis -> Parser -> IR. Previously, the parser depended on portions of the the Analysis directory as well, which sometimes caused issues with the way the cmake makefile generator discovers dependencies on generated files during compilation. Differential Revision: https://reviews.llvm.org/D79240 --- mlir/examples/toy/Ch2/mlir/MLIRGen.cpp | 2 +- mlir/examples/toy/Ch2/toyc.cpp | 2 +- mlir/examples/toy/Ch3/mlir/MLIRGen.cpp | 2 +- mlir/examples/toy/Ch3/toyc.cpp | 2 +- mlir/examples/toy/Ch4/mlir/MLIRGen.cpp | 2 +- mlir/examples/toy/Ch4/toyc.cpp | 2 +- mlir/examples/toy/Ch5/mlir/MLIRGen.cpp | 2 +- mlir/examples/toy/Ch5/toyc.cpp | 2 +- mlir/examples/toy/Ch6/mlir/MLIRGen.cpp | 2 +- mlir/examples/toy/Ch6/toyc.cpp | 2 +- mlir/examples/toy/Ch7/mlir/MLIRGen.cpp | 2 +- mlir/examples/toy/Ch7/toyc.cpp | 2 +- mlir/include/mlir/{Analysis => IR}/Dominance.h | 4 ++-- mlir/include/mlir/{Analysis => IR}/Verifier.h | 4 ++-- mlir/include/mlir/Transforms/BufferPlacement.h | 2 +- mlir/lib/Analysis/CMakeLists.txt | 4 ---- mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp | 2 +- mlir/lib/{Analysis => IR}/Dominance.cpp | 2 +- mlir/lib/{Analysis => IR}/Verifier.cpp | 4 ++-- mlir/lib/Parser/CMakeLists.txt | 2 +- mlir/lib/Parser/Parser.cpp | 2 +- mlir/lib/Pass/Pass.cpp | 2 +- mlir/lib/Transforms/CSE.cpp | 2 +- mlir/lib/Transforms/MemRefDataFlowOpt.cpp | 2 +- mlir/lib/Transforms/Utils/Utils.cpp | 2 +- mlir/lib/Translation/Translation.cpp | 2 +- mlir/test/lib/Transforms/TestDominance.cpp | 2 +- 27 files changed, 29 insertions(+), 33 deletions(-) rename mlir/include/mlir/{Analysis => IR}/Dominance.h (98%) rename mlir/include/mlir/{Analysis => IR}/Verifier.h (91%) rename mlir/lib/{Analysis => IR}/Dominance.cpp (99%) rename mlir/lib/{Analysis => IR}/Verifier.cpp (99%) diff --git a/mlir/examples/toy/Ch2/mlir/MLIRGen.cpp b/mlir/examples/toy/Ch2/mlir/MLIRGen.cpp index ef9862505e8c2a..2541faef4cf502 100644 --- a/mlir/examples/toy/Ch2/mlir/MLIRGen.cpp +++ b/mlir/examples/toy/Ch2/mlir/MLIRGen.cpp @@ -15,13 +15,13 @@ #include "toy/AST.h" #include "toy/Dialect.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/IR/Attributes.h" #include "mlir/IR/Builders.h" #include "mlir/IR/Function.h" #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Module.h" #include "mlir/IR/StandardTypes.h" +#include "mlir/IR/Verifier.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/ScopedHashTable.h" diff --git a/mlir/examples/toy/Ch2/toyc.cpp b/mlir/examples/toy/Ch2/toyc.cpp index a558f64e865ba1..22a33aad6217f6 100644 --- a/mlir/examples/toy/Ch2/toyc.cpp +++ b/mlir/examples/toy/Ch2/toyc.cpp @@ -15,9 +15,9 @@ #include "toy/Parser.h" #include -#include "mlir/Analysis/Verifier.h" #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Module.h" +#include "mlir/IR/Verifier.h" #include "mlir/Parser.h" #include "llvm/ADT/StringRef.h" diff --git a/mlir/examples/toy/Ch3/mlir/MLIRGen.cpp b/mlir/examples/toy/Ch3/mlir/MLIRGen.cpp index ef9862505e8c2a..2541faef4cf502 100644 --- a/mlir/examples/toy/Ch3/mlir/MLIRGen.cpp +++ b/mlir/examples/toy/Ch3/mlir/MLIRGen.cpp @@ -15,13 +15,13 @@ #include "toy/AST.h" #include "toy/Dialect.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/IR/Attributes.h" #include "mlir/IR/Builders.h" #include "mlir/IR/Function.h" #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Module.h" #include "mlir/IR/StandardTypes.h" +#include "mlir/IR/Verifier.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/ScopedHashTable.h" diff --git a/mlir/examples/toy/Ch3/toyc.cpp b/mlir/examples/toy/Ch3/toyc.cpp index d9ae7aa0a68c06..0f09acb85c544b 100644 --- a/mlir/examples/toy/Ch3/toyc.cpp +++ b/mlir/examples/toy/Ch3/toyc.cpp @@ -14,9 +14,9 @@ #include "toy/MLIRGen.h" #include "toy/Parser.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Module.h" +#include "mlir/IR/Verifier.h" #include "mlir/Parser.h" #include "mlir/Pass/Pass.h" #include "mlir/Pass/PassManager.h" diff --git a/mlir/examples/toy/Ch4/mlir/MLIRGen.cpp b/mlir/examples/toy/Ch4/mlir/MLIRGen.cpp index 9d770d478c68e2..78399786007a72 100644 --- a/mlir/examples/toy/Ch4/mlir/MLIRGen.cpp +++ b/mlir/examples/toy/Ch4/mlir/MLIRGen.cpp @@ -15,13 +15,13 @@ #include "toy/AST.h" #include "toy/Dialect.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/IR/Attributes.h" #include "mlir/IR/Builders.h" #include "mlir/IR/Function.h" #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Module.h" #include "mlir/IR/StandardTypes.h" +#include "mlir/IR/Verifier.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/ScopedHashTable.h" diff --git a/mlir/examples/toy/Ch4/toyc.cpp b/mlir/examples/toy/Ch4/toyc.cpp index 6a89d0006239f7..b757d66a692a2a 100644 --- a/mlir/examples/toy/Ch4/toyc.cpp +++ b/mlir/examples/toy/Ch4/toyc.cpp @@ -15,9 +15,9 @@ #include "toy/Parser.h" #include "toy/Passes.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Module.h" +#include "mlir/IR/Verifier.h" #include "mlir/Parser.h" #include "mlir/Pass/Pass.h" #include "mlir/Pass/PassManager.h" diff --git a/mlir/examples/toy/Ch5/mlir/MLIRGen.cpp b/mlir/examples/toy/Ch5/mlir/MLIRGen.cpp index 9d770d478c68e2..78399786007a72 100644 --- a/mlir/examples/toy/Ch5/mlir/MLIRGen.cpp +++ b/mlir/examples/toy/Ch5/mlir/MLIRGen.cpp @@ -15,13 +15,13 @@ #include "toy/AST.h" #include "toy/Dialect.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/IR/Attributes.h" #include "mlir/IR/Builders.h" #include "mlir/IR/Function.h" #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Module.h" #include "mlir/IR/StandardTypes.h" +#include "mlir/IR/Verifier.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/ScopedHashTable.h" diff --git a/mlir/examples/toy/Ch5/toyc.cpp b/mlir/examples/toy/Ch5/toyc.cpp index 4bc2af2ff899ec..b4d398812088dd 100644 --- a/mlir/examples/toy/Ch5/toyc.cpp +++ b/mlir/examples/toy/Ch5/toyc.cpp @@ -15,9 +15,9 @@ #include "toy/Parser.h" #include "toy/Passes.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Module.h" +#include "mlir/IR/Verifier.h" #include "mlir/InitAllDialects.h" #include "mlir/Parser.h" #include "mlir/Pass/Pass.h" diff --git a/mlir/examples/toy/Ch6/mlir/MLIRGen.cpp b/mlir/examples/toy/Ch6/mlir/MLIRGen.cpp index 9d770d478c68e2..78399786007a72 100644 --- a/mlir/examples/toy/Ch6/mlir/MLIRGen.cpp +++ b/mlir/examples/toy/Ch6/mlir/MLIRGen.cpp @@ -15,13 +15,13 @@ #include "toy/AST.h" #include "toy/Dialect.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/IR/Attributes.h" #include "mlir/IR/Builders.h" #include "mlir/IR/Function.h" #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Module.h" #include "mlir/IR/StandardTypes.h" +#include "mlir/IR/Verifier.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/ScopedHashTable.h" diff --git a/mlir/examples/toy/Ch6/toyc.cpp b/mlir/examples/toy/Ch6/toyc.cpp index 558141c2ca8905..a713b1a7d17e2b 100644 --- a/mlir/examples/toy/Ch6/toyc.cpp +++ b/mlir/examples/toy/Ch6/toyc.cpp @@ -15,11 +15,11 @@ #include "toy/Parser.h" #include "toy/Passes.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/ExecutionEngine/ExecutionEngine.h" #include "mlir/ExecutionEngine/OptUtils.h" #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Module.h" +#include "mlir/IR/Verifier.h" #include "mlir/InitAllDialects.h" #include "mlir/Parser.h" #include "mlir/Pass/Pass.h" diff --git a/mlir/examples/toy/Ch7/mlir/MLIRGen.cpp b/mlir/examples/toy/Ch7/mlir/MLIRGen.cpp index 2794768bee7b81..58a153b6127b54 100644 --- a/mlir/examples/toy/Ch7/mlir/MLIRGen.cpp +++ b/mlir/examples/toy/Ch7/mlir/MLIRGen.cpp @@ -15,13 +15,13 @@ #include "toy/AST.h" #include "toy/Dialect.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/IR/Attributes.h" #include "mlir/IR/Builders.h" #include "mlir/IR/Function.h" #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Module.h" #include "mlir/IR/StandardTypes.h" +#include "mlir/IR/Verifier.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/ScopedHashTable.h" diff --git a/mlir/examples/toy/Ch7/toyc.cpp b/mlir/examples/toy/Ch7/toyc.cpp index f3e12fb986cf0b..a8795d8a35a3b2 100644 --- a/mlir/examples/toy/Ch7/toyc.cpp +++ b/mlir/examples/toy/Ch7/toyc.cpp @@ -15,11 +15,11 @@ #include "toy/Parser.h" #include "toy/Passes.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/ExecutionEngine/ExecutionEngine.h" #include "mlir/ExecutionEngine/OptUtils.h" #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Module.h" +#include "mlir/IR/Verifier.h" #include "mlir/InitAllDialects.h" #include "mlir/Parser.h" #include "mlir/Pass/Pass.h" diff --git a/mlir/include/mlir/Analysis/Dominance.h b/mlir/include/mlir/IR/Dominance.h similarity index 98% rename from mlir/include/mlir/Analysis/Dominance.h rename to mlir/include/mlir/IR/Dominance.h index 7d6200d8333193..27ea3c6948e7b8 100644 --- a/mlir/include/mlir/Analysis/Dominance.h +++ b/mlir/include/mlir/IR/Dominance.h @@ -6,8 +6,8 @@ // //===----------------------------------------------------------------------===// -#ifndef MLIR_ANALYSIS_DOMINANCE_H -#define MLIR_ANALYSIS_DOMINANCE_H +#ifndef MLIR_IR_DOMINANCE_H +#define MLIR_IR_DOMINANCE_H #include "mlir/IR/RegionGraphTraits.h" #include "llvm/Support/GenericDomTree.h" diff --git a/mlir/include/mlir/Analysis/Verifier.h b/mlir/include/mlir/IR/Verifier.h similarity index 91% rename from mlir/include/mlir/Analysis/Verifier.h rename to mlir/include/mlir/IR/Verifier.h index aa37fe3327f04c..d9d99dd09df040 100644 --- a/mlir/include/mlir/Analysis/Verifier.h +++ b/mlir/include/mlir/IR/Verifier.h @@ -6,8 +6,8 @@ // //===----------------------------------------------------------------------===// -#ifndef MLIR_ANALYSIS_VERIFIER_H -#define MLIR_ANALYSIS_VERIFIER_H +#ifndef MLIR_IR_VERIFIER_H +#define MLIR_IR_VERIFIER_H namespace mlir { struct LogicalResult; diff --git a/mlir/include/mlir/Transforms/BufferPlacement.h b/mlir/include/mlir/Transforms/BufferPlacement.h index e82186622bedaa..013a55f81f60f8 100644 --- a/mlir/include/mlir/Transforms/BufferPlacement.h +++ b/mlir/include/mlir/Transforms/BufferPlacement.h @@ -14,10 +14,10 @@ #ifndef MLIR_TRANSFORMS_BUFFERPLACEMENT_H #define MLIR_TRANSFORMS_BUFFERPLACEMENT_H -#include "mlir/Analysis/Dominance.h" #include "mlir/Analysis/Liveness.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" #include "mlir/IR/Builders.h" +#include "mlir/IR/Dominance.h" #include "mlir/IR/Operation.h" #include "mlir/Transforms/DialectConversion.h" diff --git a/mlir/lib/Analysis/CMakeLists.txt b/mlir/lib/Analysis/CMakeLists.txt index f9c0236e3d4eca..5eeee048ba3bf1 100644 --- a/mlir/lib/Analysis/CMakeLists.txt +++ b/mlir/lib/Analysis/CMakeLists.txt @@ -2,21 +2,17 @@ set(LLVM_OPTIONAL_SOURCES AffineAnalysis.cpp AffineStructures.cpp CallGraph.cpp - Dominance.cpp Liveness.cpp LoopAnalysis.cpp NestedMatcher.cpp SliceAnalysis.cpp Utils.cpp - Verifier.cpp ) add_mlir_library(MLIRAnalysis CallGraph.cpp Liveness.cpp SliceAnalysis.cpp - Dominance.cpp - Verifier.cpp ADDITIONAL_HEADER_DIRS ${MLIR_MAIN_INCLUDE_DIR}/mlir/Analysis diff --git a/mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp b/mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp index cea91f6dc532b7..b85c586633cbfc 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp @@ -11,7 +11,6 @@ //===----------------------------------------------------------------------===// #include "PassDetail.h" -#include "mlir/Analysis/Dominance.h" #include "mlir/Dialect/Linalg/Analysis/DependenceAnalysis.h" #include "mlir/Dialect/Linalg/EDSC/FoldedIntrinsics.h" #include "mlir/Dialect/Linalg/IR/LinalgOps.h" @@ -21,6 +20,7 @@ #include "mlir/Dialect/StandardOps/EDSC/Intrinsics.h" #include "mlir/IR/AffineExpr.h" #include "mlir/IR/AffineMap.h" +#include "mlir/IR/Dominance.h" #include "mlir/IR/PatternMatch.h" #include "mlir/Support/LLVM.h" #include "mlir/Transforms/FoldUtils.h" diff --git a/mlir/lib/Analysis/Dominance.cpp b/mlir/lib/IR/Dominance.cpp similarity index 99% rename from mlir/lib/Analysis/Dominance.cpp rename to mlir/lib/IR/Dominance.cpp index ed3940535a8e38..86313adc4c0d82 100644 --- a/mlir/lib/Analysis/Dominance.cpp +++ b/mlir/lib/IR/Dominance.cpp @@ -11,7 +11,7 @@ // //===----------------------------------------------------------------------===// -#include "mlir/Analysis/Dominance.h" +#include "mlir/IR/Dominance.h" #include "mlir/IR/Operation.h" #include "llvm/ADT/DenseMap.h" #include "llvm/Support/GenericDomTreeConstruction.h" diff --git a/mlir/lib/Analysis/Verifier.cpp b/mlir/lib/IR/Verifier.cpp similarity index 99% rename from mlir/lib/Analysis/Verifier.cpp rename to mlir/lib/IR/Verifier.cpp index e15d3513b7de5d..763758193c5dfe 100644 --- a/mlir/lib/Analysis/Verifier.cpp +++ b/mlir/lib/IR/Verifier.cpp @@ -24,10 +24,10 @@ // //===----------------------------------------------------------------------===// -#include "mlir/Analysis/Verifier.h" -#include "mlir/Analysis/Dominance.h" +#include "mlir/IR/Verifier.h" #include "mlir/IR/Attributes.h" #include "mlir/IR/Dialect.h" +#include "mlir/IR/Dominance.h" #include "mlir/IR/Operation.h" #include "llvm/ADT/StringMap.h" #include "llvm/Support/FormatVariadic.h" diff --git a/mlir/lib/Parser/CMakeLists.txt b/mlir/lib/Parser/CMakeLists.txt index 019f8bafa0c00b..79aca662d9d32f 100644 --- a/mlir/lib/Parser/CMakeLists.txt +++ b/mlir/lib/Parser/CMakeLists.txt @@ -9,4 +9,4 @@ add_mlir_library(MLIRParser target_link_libraries(MLIRParser PUBLIC MLIRIR - MLIRAnalysis) + ) diff --git a/mlir/lib/Parser/Parser.cpp b/mlir/lib/Parser/Parser.cpp index ec4e8ddfc2abc8..d129b867fb0c4b 100644 --- a/mlir/lib/Parser/Parser.cpp +++ b/mlir/lib/Parser/Parser.cpp @@ -12,7 +12,6 @@ #include "mlir/Parser.h" #include "Lexer.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/IR/AffineExpr.h" #include "mlir/IR/AffineMap.h" #include "mlir/IR/Attributes.h" @@ -25,6 +24,7 @@ #include "mlir/IR/Module.h" #include "mlir/IR/OpImplementation.h" #include "mlir/IR/StandardTypes.h" +#include "mlir/IR/Verifier.h" #include "llvm/ADT/APInt.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/StringExtras.h" diff --git a/mlir/lib/Pass/Pass.cpp b/mlir/lib/Pass/Pass.cpp index 1d9a6c48c34cc5..ef4ed760feb80b 100644 --- a/mlir/lib/Pass/Pass.cpp +++ b/mlir/lib/Pass/Pass.cpp @@ -12,10 +12,10 @@ #include "mlir/Pass/Pass.h" #include "PassDetail.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/IR/Diagnostics.h" #include "mlir/IR/Dialect.h" #include "mlir/IR/Module.h" +#include "mlir/IR/Verifier.h" #include "mlir/Support/FileUtilities.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/SetVector.h" diff --git a/mlir/lib/Transforms/CSE.cpp b/mlir/lib/Transforms/CSE.cpp index 58ffc09919467f..f7cf7f1c8e95bb 100644 --- a/mlir/lib/Transforms/CSE.cpp +++ b/mlir/lib/Transforms/CSE.cpp @@ -12,7 +12,7 @@ //===----------------------------------------------------------------------===// #include "PassDetail.h" -#include "mlir/Analysis/Dominance.h" +#include "mlir/IR/Dominance.h" #include "mlir/Pass/Pass.h" #include "mlir/Transforms/Passes.h" #include "mlir/Transforms/Utils.h" diff --git a/mlir/lib/Transforms/MemRefDataFlowOpt.cpp b/mlir/lib/Transforms/MemRefDataFlowOpt.cpp index ae71d939bc3385..a93ffd6746533b 100644 --- a/mlir/lib/Transforms/MemRefDataFlowOpt.cpp +++ b/mlir/lib/Transforms/MemRefDataFlowOpt.cpp @@ -15,10 +15,10 @@ #include "PassDetail.h" #include "mlir/Analysis/AffineAnalysis.h" -#include "mlir/Analysis/Dominance.h" #include "mlir/Analysis/Utils.h" #include "mlir/Dialect/Affine/IR/AffineOps.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "mlir/IR/Dominance.h" #include "mlir/Transforms/Passes.h" #include "llvm/ADT/SmallPtrSet.h" #include diff --git a/mlir/lib/Transforms/Utils/Utils.cpp b/mlir/lib/Transforms/Utils/Utils.cpp index 5cc83456a9fe2a..91ee3b4e3ce629 100644 --- a/mlir/lib/Transforms/Utils/Utils.cpp +++ b/mlir/lib/Transforms/Utils/Utils.cpp @@ -15,10 +15,10 @@ #include "mlir/Analysis/AffineAnalysis.h" #include "mlir/Analysis/AffineStructures.h" -#include "mlir/Analysis/Dominance.h" #include "mlir/Analysis/Utils.h" #include "mlir/Dialect/Affine/IR/AffineOps.h" #include "mlir/IR/Builders.h" +#include "mlir/IR/Dominance.h" #include "mlir/IR/Function.h" #include "mlir/IR/Module.h" #include "mlir/Support/MathExtras.h" diff --git a/mlir/lib/Translation/Translation.cpp b/mlir/lib/Translation/Translation.cpp index 487e39ac939cbb..f48c5b3e1ec52c 100644 --- a/mlir/lib/Translation/Translation.cpp +++ b/mlir/lib/Translation/Translation.cpp @@ -11,8 +11,8 @@ //===----------------------------------------------------------------------===// #include "mlir/Translation.h" -#include "mlir/Analysis/Verifier.h" #include "mlir/IR/Module.h" +#include "mlir/IR/Verifier.h" #include "mlir/Parser.h" #include "mlir/Support/LLVM.h" #include "llvm/Support/SourceMgr.h" diff --git a/mlir/test/lib/Transforms/TestDominance.cpp b/mlir/test/lib/Transforms/TestDominance.cpp index 97674c400f8141..fd83e603ca2b6a 100644 --- a/mlir/test/lib/Transforms/TestDominance.cpp +++ b/mlir/test/lib/Transforms/TestDominance.cpp @@ -12,7 +12,7 @@ // //===----------------------------------------------------------------------===// -#include "mlir/Analysis/Dominance.h" +#include "mlir/IR/Dominance.h" #include "mlir/Pass/Pass.h" using namespace mlir;