Skip to content

Commit c09cf01

Browse files
Remove Usage of Deprecated FunctionPass (llvm#1134)
* remove usage of deprected FunctionPass Signed-off-by: ian Bearman <[email protected]> Co-authored-by: Alexandre Eichenberger <[email protected]>
1 parent af02912 commit c09cf01

13 files changed

+48
-41
lines changed

src/Conversion/KrnlToAffine/KrnlToAffine.cpp

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -432,13 +432,13 @@ void lowerGetInductionVariableValueOp(KrnlGetInductionVariableValueOp &getIVOp,
432432
/// At this stage the dialect will contain standard operations as well like
433433
/// add and multiply, this pass will leave these operations intact.
434434
struct ConvertKrnlToAffinePass
435-
: public PassWrapper<ConvertKrnlToAffinePass, FunctionPass> {
435+
: public PassWrapper<ConvertKrnlToAffinePass, OperationPass<FuncOp>> {
436436

437437
StringRef getArgument() const override { return "convert-krnl-to-affine"; }
438438

439439
StringRef getDescription() const override { return "Lower Krnl dialect."; }
440440

441-
void runOnFunction() final;
441+
void runOnOperation() final;
442442
};
443443

444444
LogicalResult interpretOperation(Operation *op, OpBuilder &builder,
@@ -1443,9 +1443,15 @@ void markLoopBodyAsMovable(
14431443
}
14441444
}
14451445

1446-
void ConvertKrnlToAffinePass::runOnFunction() {
1446+
void ConvertKrnlToAffinePass::runOnOperation() {
14471447
OpBuilder builder(&getContext());
1448-
FuncOp funcOp = getFunction();
1448+
FuncOp funcOp = getOperation();
1449+
1450+
// external function: nothing to do
1451+
if (funcOp.body().empty()) {
1452+
return;
1453+
}
1454+
14491455
// Move invariant instructions outside of the loops as many as possible. This
14501456
// helps make loops perfectly nested, which facilitates transformations.
14511457
funcOp.walk([&](KrnlIterateOp loopOp) {
@@ -1530,7 +1536,7 @@ void ConvertKrnlToAffinePass::runOnFunction() {
15301536

15311537
DenseSet<Operation *> unconverted;
15321538
if (failed(applyPartialConversion(
1533-
getFunction(), target, std::move(patterns), &unconverted))) {
1539+
getOperation(), target, std::move(patterns), &unconverted))) {
15341540
{
15351541
const std::lock_guard<std::mutex> lock(unrollAndJamMutex);
15361542
unrollAndJamMap.erase(currFuncOp);

src/Transform/BundleMemoryPools.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ class KrnlMoveConstantsUp : public OpRewritePattern<arith::ConstantOp> {
506506
*/
507507

508508
class KrnlBundleMemoryPoolsPass
509-
: public PassWrapper<KrnlBundleMemoryPoolsPass, FunctionPass> {
509+
: public PassWrapper<KrnlBundleMemoryPoolsPass, OperationPass<FuncOp>> {
510510

511511
BlockToMemPool blockToStaticPool;
512512
BlockToMemPool blockToDynamicPool;
@@ -518,8 +518,8 @@ class KrnlBundleMemoryPoolsPass
518518
return "Bundle memory pools of internal MemRefs into a single memory pool.";
519519
}
520520

521-
void runOnFunction() override {
522-
auto function = getFunction();
521+
void runOnOperation() override {
522+
auto function = getOperation();
523523

524524
ConversionTarget target(getContext());
525525
RewritePatternSet patterns(&getContext());

src/Transform/DisconnectKrnlDimFromAlloc.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,16 +129,17 @@ class DisconnectKrnlDimFromAlloc : public OpRewritePattern<KrnlDimOp> {
129129
* Function pass that disconnects krnl.dim emission from its MemRef alloc.
130130
*/
131131
class DisconnectKrnlDimFromAllocPass
132-
: public PassWrapper<DisconnectKrnlDimFromAllocPass, FunctionPass> {
132+
: public PassWrapper<DisconnectKrnlDimFromAllocPass,
133+
OperationPass<FuncOp>> {
133134
public:
134135
StringRef getArgument() const override { return "lower-krnl-shape-to-std"; }
135136

136137
StringRef getDescription() const override {
137138
return "Lowers krnl shape-related operations.";
138139
}
139140

140-
void runOnFunction() override {
141-
auto function = getFunction();
141+
void runOnOperation() override {
142+
auto function = getOperation();
142143

143144
ConversionTarget target(getContext());
144145
RewritePatternSet patterns(&getContext());

src/Transform/ElideKrnlGlobalConstants.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,16 +80,16 @@ namespace {
8080
* Function pass that performs constant value elision of Krnl globals.
8181
*/
8282
class ElideConstGlobalValuePass
83-
: public PassWrapper<ElideConstGlobalValuePass, FunctionPass> {
83+
: public PassWrapper<ElideConstGlobalValuePass, OperationPass<FuncOp>> {
8484
public:
8585
StringRef getArgument() const override { return "elide-krnl-constants"; }
8686

8787
StringRef getDescription() const override {
8888
return "Elide the constant values of the Global Krnl operations.";
8989
}
9090

91-
void runOnFunction() override {
92-
auto function = getFunction();
91+
void runOnOperation() override {
92+
auto function = getOperation();
9393

9494
ConversionTarget target(getContext());
9595
RewritePatternSet patterns(&getContext());

src/Transform/EnableMemoryPool.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,16 +185,16 @@ class KrnlEliminateOldDealloc : public OpRewritePattern<memref::DeallocOp> {
185185
* Function pass that enables memory pooling for MemRefs.
186186
*/
187187
class KrnlEnableMemoryPoolPass
188-
: public PassWrapper<KrnlEnableMemoryPoolPass, FunctionPass> {
188+
: public PassWrapper<KrnlEnableMemoryPoolPass, OperationPass<FuncOp>> {
189189
public:
190190
StringRef getArgument() const override { return "enable-memory-pool"; }
191191

192192
StringRef getDescription() const override {
193193
return "Enable a memory pool for allocating internal MemRefs.";
194194
}
195195

196-
void runOnFunction() override {
197-
auto function = getFunction();
196+
void runOnOperation() override {
197+
auto function = getOperation();
198198

199199
ConversionTarget target(getContext());
200200
RewritePatternSet patterns(&getContext());

src/Transform/LowerKrnlShape.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,16 +78,16 @@ class LowerKrnlShape : public OpRewritePattern<KrnlShapeOp> {
7878
* Function pass that emits the shape of a MemRef.
7979
*/
8080
class LowerKrnlShapePass
81-
: public PassWrapper<LowerKrnlShapePass, FunctionPass> {
81+
: public PassWrapper<LowerKrnlShapePass, OperationPass<FuncOp>> {
8282
public:
8383
StringRef getArgument() const override { return "lower-krnl-shape"; }
8484

8585
StringRef getDescription() const override {
8686
return "Lower krnl.shape operation to use Shape dialect operations.";
8787
}
8888

89-
void runOnFunction() override {
90-
auto function = getFunction();
89+
void runOnOperation() override {
90+
auto function = getOperation();
9191

9292
ConversionTarget target(getContext());
9393
RewritePatternSet patterns(&getContext());

src/Transform/ONNX/ConstProp.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -745,7 +745,7 @@ class ConstPropScatterNDPattern : public OpRewritePattern<ONNXScatterNDOp> {
745745
//===----------------------------------------------------------------------===//
746746

747747
struct ConstPropONNXToONNXPass
748-
: public PassWrapper<ConstPropONNXToONNXPass, FunctionPass> {
748+
: public PassWrapper<ConstPropONNXToONNXPass, OperationPass<FuncOp>> {
749749

750750
StringRef getArgument() const override { return "constprop-onnx"; }
751751

@@ -754,12 +754,12 @@ struct ConstPropONNXToONNXPass
754754
"other ONNX operations.";
755755
}
756756

757-
void runOnFunction() final;
757+
void runOnOperation() final;
758758
};
759759
} // end anonymous namespace.
760760

761-
void ConstPropONNXToONNXPass::runOnFunction() {
762-
auto function = getFunction();
761+
void ConstPropONNXToONNXPass::runOnOperation() {
762+
auto function = getOperation();
763763
MLIRContext *context = &getContext();
764764

765765
ConversionTarget target(getContext());

src/Transform/ONNX/Decompose.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ Value createSequenceConstructOp(
123123
namespace {
124124

125125
struct DecomposeONNXToONNXPass
126-
: public PassWrapper<DecomposeONNXToONNXPass, FunctionPass> {
126+
: public PassWrapper<DecomposeONNXToONNXPass, OperationPass<FuncOp>> {
127127

128128
StringRef getArgument() const override { return "decompose-onnx"; }
129129

@@ -132,12 +132,12 @@ struct DecomposeONNXToONNXPass
132132
"operations.";
133133
}
134134

135-
void runOnFunction() final;
135+
void runOnOperation() final;
136136
};
137137
} // end anonymous namespace.
138138

139-
void DecomposeONNXToONNXPass::runOnFunction() {
140-
auto function = getFunction();
139+
void DecomposeONNXToONNXPass::runOnOperation() {
140+
auto function = getOperation();
141141
MLIRContext *context = &getContext();
142142

143143
ConversionTarget target(getContext());

src/Transform/ONNX/ElideConstants.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,16 @@ class ConstantValueElision : public OpRewritePattern<ONNXConstantOp> {
6464
* Function pass that performs constant value elision.
6565
*/
6666
class ElideConstantValuePass
67-
: public PassWrapper<ElideConstantValuePass, FunctionPass> {
67+
: public PassWrapper<ElideConstantValuePass, OperationPass<FuncOp>> {
6868
public:
6969
StringRef getArgument() const override { return "elide-constants"; }
7070

7171
StringRef getDescription() const override {
7272
return "Elide values of constant operations.";
7373
}
7474

75-
void runOnFunction() override {
76-
auto function = getFunction();
75+
void runOnOperation() override {
76+
auto function = getOperation();
7777

7878
ConversionTarget target(getContext());
7979
RewritePatternSet patterns(&getContext());

src/Transform/ONNX/InstrumentONNXPass.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ llvm::cl::bits<InstrumentActions> InstrumentControlBits(
5757
llvm::cl::cat(OMPassOptions));
5858

5959
class InstrumentONNXPass
60-
: public mlir::PassWrapper<InstrumentONNXPass, FunctionPass> {
60+
: public mlir::PassWrapper<InstrumentONNXPass, OperationPass<FuncOp>> {
6161

6262
private:
6363
bool allOpsAllowed;
@@ -84,13 +84,13 @@ class InstrumentONNXPass
8484
runtimeActions = InstrumentControlBits.getBits();
8585
};
8686

87-
void runOnFunction() override {
87+
void runOnOperation() override {
8888
if (instrumentONNXOps == "" || instrumentONNXOps == "NONE")
8989
return;
9090
init(instrumentONNXOps);
9191

9292
// Iterate on the operations nested in this function
93-
getFunction().walk([&](mlir::Operation *op) {
93+
getOperation().walk([&](mlir::Operation *op) {
9494
if (isa<mlir::ONNXOpsDialect>(op->getDialect())) {
9595
// Skip the prefix "onnx." of onnx op name
9696
const char *opName = op->getName().getStringRef().data() + 5;

src/Transform/ONNX/ONNXPreKrnlVerifyPass.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ namespace {
3838
*/
3939

4040
class ONNXPreKrnlVerifyPass
41-
: public mlir::PassWrapper<ONNXPreKrnlVerifyPass, FunctionPass> {
41+
: public mlir::PassWrapper<ONNXPreKrnlVerifyPass, OperationPass<FuncOp>> {
4242

4343
public:
4444
StringRef getArgument() const override { return "onnx-pre-krnl-verify"; }
4545

4646
StringRef getDescription() const override { return "Verify onnx ops."; }
4747

48-
void runOnFunction() override {
49-
auto function = getFunction();
48+
void runOnOperation() override {
49+
auto function = getOperation();
5050
auto &funcBody = function.getBody();
5151

5252
// Iterate on the operations

src/Transform/ONNX/ShapeInferencePass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ static SmallVector<mlir::FuncOp, 4> lookUpFuncsMatching(
4141
}
4242

4343
/*!
44-
* FunctionPass that performs shape inference by iterating over a list of
44+
* Function pass that performs shape inference by iterating over a list of
4545
* candidate operations and propagating the shape information until the list
4646
* of operations is empty [credit MLIR authors].
4747
*

src/Transform/OptimizeMemoryPools.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -868,7 +868,7 @@ class KrnlCompactStaticMemoryPools : public OpRewritePattern<memref::AllocOp> {
868868
* Function pass that optimizes memory pools.
869869
*/
870870
class KrnlOptimizeMemoryPoolsPass
871-
: public PassWrapper<KrnlOptimizeMemoryPoolsPass, FunctionPass> {
871+
: public PassWrapper<KrnlOptimizeMemoryPoolsPass, OperationPass<FuncOp>> {
872872
BlockToCompactedAlignments blockToStaticPoolAlignments;
873873
BlockToDiscardedGetRefs blockToDiscardedGetRefs;
874874

@@ -879,8 +879,8 @@ class KrnlOptimizeMemoryPoolsPass
879879
return "Optimize the static and dynamic memory pools.";
880880
}
881881

882-
void runOnFunction() override {
883-
auto function = getFunction();
882+
void runOnOperation() override {
883+
auto function = getOperation();
884884

885885
ConversionTarget target(getContext());
886886
RewritePatternSet patterns(&getContext());

0 commit comments

Comments
 (0)