diff options
| author | Alex Zinenko <zinenko@google.com> | 2019-12-16 11:35:29 -0800 |
|---|---|---|
| committer | A. Unique TensorFlower <gardener@tensorflow.org> | 2019-12-16 11:36:02 -0800 |
| commit | ed749b7689702587d369e241c596808f5d6b92cb (patch) | |
| tree | 01ddb77d3ac0b79a7235c9f2cad39026a97c74ff /mlir/lib/Conversion/LoopToStandard | |
| parent | 3ae56c4135025e5186e289be446246cdc719a5b1 (diff) | |
| download | bcm5719-llvm-ed749b7689702587d369e241c596808f5d6b92cb.tar.gz bcm5719-llvm-ed749b7689702587d369e241c596808f5d6b92cb.zip | |
Make "LowerToCFG" an operation pass
The conversion from the Loops dialect to the Standard dialect, also known as
loop-to-cfg lowering, has been historically a function pass. It can be required
on non-Standard function Ops, in particular the recently introduced GPU
functions. Make the conversion an operation pass instead of a function pass.
PiperOrigin-RevId: 285814560
Diffstat (limited to 'mlir/lib/Conversion/LoopToStandard')
| -rw-r--r-- | mlir/lib/Conversion/LoopToStandard/ConvertLoopToStandard.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/mlir/lib/Conversion/LoopToStandard/ConvertLoopToStandard.cpp b/mlir/lib/Conversion/LoopToStandard/ConvertLoopToStandard.cpp index 08ee320f7d9..ff93ce58fd4 100644 --- a/mlir/lib/Conversion/LoopToStandard/ConvertLoopToStandard.cpp +++ b/mlir/lib/Conversion/LoopToStandard/ConvertLoopToStandard.cpp @@ -38,8 +38,8 @@ using namespace mlir::loop; namespace { -struct LoopToStandardPass : public FunctionPass<LoopToStandardPass> { - void runOnFunction() override; +struct LoopToStandardPass : public OperationPass<LoopToStandardPass> { + void runOnOperation() override; }; // Create a CFG subgraph for the loop around its body blocks (if the body @@ -261,16 +261,16 @@ void mlir::populateLoopToStdConversionPatterns( patterns.insert<ForLowering, IfLowering, TerminatorLowering>(ctx); } -void LoopToStandardPass::runOnFunction() { +void LoopToStandardPass::runOnOperation() { OwningRewritePatternList patterns; populateLoopToStdConversionPatterns(patterns, &getContext()); ConversionTarget target(getContext()); target.addLegalDialect<StandardOpsDialect>(); - if (failed(applyPartialConversion(getFunction(), target, patterns))) + if (failed(applyPartialConversion(getOperation(), target, patterns))) signalPassFailure(); } -std::unique_ptr<OpPassBase<FuncOp>> mlir::createLowerToCFGPass() { +std::unique_ptr<Pass> mlir::createLowerToCFGPass() { return std::make_unique<LoopToStandardPass>(); } |

