Generalize the pass hierarchy by adding a general OpPass<PassT, OpT>.
authorRiver Riddle <riverriddle@google.com>
Fri, 30 Aug 2019 20:16:13 +0000 (13:16 -0700)
committerA. Unique TensorFlower <gardener@tensorflow.org>
Fri, 30 Aug 2019 20:16:37 +0000 (13:16 -0700)
commit1dd9bf47393afba3adad066fde950eb9c608f2cc
tree8367f2f383aaaeeff126972d42198a136ac17980
parent06e8101034e71b95e1338662d27472492dae4d4b
Generalize the pass hierarchy by adding a general OpPass<PassT, OpT>.

This pass class generalizes the current functionality between FunctionPass and ModulePass, and allows for operating on any operation type. The pass manager currently only supports OpPasses operating on FuncOp and ModuleOp, but this restriction will be relaxed in follow-up changes. A utility class OpPassBase<OpT> allows for generically referring to operation specific passes: e.g. FunctionPassBase == OpPassBase<FuncOp>.

PiperOrigin-RevId: 266442239
19 files changed:
mlir/examples/Linalg/Linalg1/include/linalg1/Passes.h
mlir/examples/Linalg/Linalg3/include/linalg3/Transforms.h
mlir/include/mlir/Analysis/Passes.h
mlir/include/mlir/Conversion/ControlFlowToCFG/ConvertControlFlowToCFG.h
mlir/include/mlir/Conversion/GPUToCUDA/GPUToCUDAPass.h
mlir/include/mlir/Conversion/GPUToNVVM/GPUToNVVMPass.h
mlir/include/mlir/Conversion/LoopsToGPU/LoopsToGPUPass.h
mlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVMPass.h
mlir/include/mlir/Conversion/VectorToLLVM/VectorToLLVM.h
mlir/include/mlir/Dialect/FxpMathOps/Passes.h
mlir/include/mlir/Dialect/GPU/Passes.h
mlir/include/mlir/Dialect/Linalg/Passes.h
mlir/include/mlir/Dialect/QuantOps/Passes.h
mlir/include/mlir/Pass/Pass.h
mlir/include/mlir/Pass/PassManager.h
mlir/include/mlir/Transforms/Passes.h
mlir/include/mlir/Transforms/ViewRegionGraph.h
mlir/lib/Pass/Pass.cpp
mlir/lib/Pass/PassDetail.h