summaryrefslogtreecommitdiffstats
path: root/mlir/lib/Conversion/LoopToStandard
diff options
context:
space:
mode:
authorAlex Zinenko <zinenko@google.com>2019-12-16 11:35:29 -0800
committerA. Unique TensorFlower <gardener@tensorflow.org>2019-12-16 11:36:02 -0800
commited749b7689702587d369e241c596808f5d6b92cb (patch)
tree01ddb77d3ac0b79a7235c9f2cad39026a97c74ff /mlir/lib/Conversion/LoopToStandard
parent3ae56c4135025e5186e289be446246cdc719a5b1 (diff)
downloadbcm5719-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.cpp10
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>();
}
OpenPOWER on IntegriCloud