Skip to content

Commit

Permalink
[flang] Convert uses of FunctionPass to OperationPass<FuncOp>
Browse files Browse the repository at this point in the history
FunctionPass has been deprecated and is in the process of being removed.
  • Loading branch information
River707 committed Jan 19, 2022
1 parent a56a7d9 commit 196c427
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 15 deletions.
10 changes: 5 additions & 5 deletions flang/include/flang/Optimizer/Transforms/Passes.td
Expand Up @@ -35,7 +35,7 @@ def AbstractResultOpt : Pass<"abstract-result-opt", "mlir::FuncOp"> {
];
}

def AffineDialectPromotion : FunctionPass<"promote-to-affine"> {
def AffineDialectPromotion : Pass<"promote-to-affine", "::mlir::FuncOp"> {
let summary = "Promotes `fir.{do_loop,if}` to `affine.{for,if}`.";
let description = [{
Convert fir operations which satisfy affine constraints to the affine
Expand All @@ -60,7 +60,7 @@ def AffineDialectPromotion : FunctionPass<"promote-to-affine"> {
];
}

def AffineDialectDemotion : FunctionPass<"demote-affine"> {
def AffineDialectDemotion : Pass<"demote-affine", "::mlir::FuncOp"> {
let summary = "Converts `affine.{load,store}` back to fir operations";
let description = [{
Affine dialect's default lowering for loads and stores is different from
Expand All @@ -74,7 +74,7 @@ def AffineDialectDemotion : FunctionPass<"demote-affine"> {
];
}

def ArrayValueCopy : FunctionPass<"array-value-copy"> {
def ArrayValueCopy : Pass<"array-value-copy", "::mlir::FuncOp"> {
let summary = "Convert array value operations to memory operations.";
let description = [{
Transform the set of array value primitives to a memory-based array
Expand Down Expand Up @@ -111,7 +111,7 @@ def CharacterConversion : Pass<"character-conversion"> {
];
}

def CFGConversion : FunctionPass<"cfg-conversion"> {
def CFGConversion : Pass<"cfg-conversion", "::mlir::FuncOp"> {
let summary = "Convert FIR structured control flow ops to CFG ops.";
let description = [{
Transform the `fir.do_loop`, `fir.if`, and `fir.iterate_while` ops into
Expand Down Expand Up @@ -139,7 +139,7 @@ def ExternalNameConversion : Pass<"external-name-interop", "mlir::ModuleOp"> {
let constructor = "::fir::createExternalNameConversionPass()";
}

def MemRefDataFlowOpt : FunctionPass<"fir-memref-dataflow-opt"> {
def MemRefDataFlowOpt : Pass<"fir-memref-dataflow-opt", "::mlir::FuncOp"> {
let summary =
"Perform store/load forwarding and potentially removing dead stores.";
let description = [{
Expand Down
4 changes: 2 additions & 2 deletions flang/lib/Optimizer/Transforms/AffineDemotion.cpp
Expand Up @@ -137,9 +137,9 @@ class StdAllocConversion : public mlir::OpRewritePattern<memref::AllocOp> {
class AffineDialectDemotion
: public AffineDialectDemotionBase<AffineDialectDemotion> {
public:
void runOnFunction() override {
void runOnOperation() override {
auto *context = &getContext();
auto function = getFunction();
auto function = getOperation();
LLVM_DEBUG(llvm::dbgs() << "AffineDemotion: running on function:\n";
function.print(llvm::dbgs()););

Expand Down
4 changes: 2 additions & 2 deletions flang/lib/Optimizer/Transforms/AffinePromotion.cpp
Expand Up @@ -581,10 +581,10 @@ class AffineIfConversion : public mlir::OpRewritePattern<fir::IfOp> {
class AffineDialectPromotion
: public AffineDialectPromotionBase<AffineDialectPromotion> {
public:
void runOnFunction() override {
void runOnOperation() override {

auto *context = &getContext();
auto function = getFunction();
auto function = getOperation();
markAllAnalysesPreserved();
auto functionAnalysis = AffineFunctionAnalysis(function);
mlir::OwningRewritePatternList patterns(context);
Expand Down
4 changes: 2 additions & 2 deletions flang/lib/Optimizer/Transforms/ArrayValueCopy.cpp
Expand Up @@ -770,8 +770,8 @@ namespace {
class ArrayValueCopyConverter
: public ArrayValueCopyBase<ArrayValueCopyConverter> {
public:
void runOnFunction() override {
auto func = getFunction();
void runOnOperation() override {
auto func = getOperation();
LLVM_DEBUG(llvm::dbgs() << "\n\narray-value-copy pass on function '"
<< func.getName() << "'\n");
auto *context = &getContext();
Expand Down
4 changes: 2 additions & 2 deletions flang/lib/Optimizer/Transforms/MemRefDataFlowOpt.cpp
Expand Up @@ -94,8 +94,8 @@ class LoadStoreForwarding {

class MemDataFlowOpt : public fir::MemRefDataFlowOptBase<MemDataFlowOpt> {
public:
void runOnFunction() override {
mlir::FuncOp f = getFunction();
void runOnOperation() override {
mlir::FuncOp f = getOperation();

auto *domInfo = &getAnalysis<mlir::DominanceInfo>();
LoadStoreForwarding<fir::LoadOp, fir::StoreOp> lsf(domInfo);
Expand Down
4 changes: 2 additions & 2 deletions flang/lib/Optimizer/Transforms/RewriteLoop.cpp
Expand Up @@ -294,7 +294,7 @@ class CfgIterWhileConv : public mlir::OpRewritePattern<fir::IterWhileOp> {
/// Convert FIR structured control flow ops to CFG ops.
class CfgConversion : public CFGConversionBase<CfgConversion> {
public:
void runOnFunction() override {
void runOnOperation() override {
auto *context = &getContext();
mlir::OwningRewritePatternList patterns(context);
patterns.insert<CfgLoopConv, CfgIfConv, CfgIterWhileConv>(
Expand All @@ -306,7 +306,7 @@ class CfgConversion : public CFGConversionBase<CfgConversion> {
// apply the patterns
target.addIllegalOp<ResultOp, DoLoopOp, IfOp, IterWhileOp>();
target.markUnknownOpDynamicallyLegal([](Operation *) { return true; });
if (mlir::failed(mlir::applyPartialConversion(getFunction(), target,
if (mlir::failed(mlir::applyPartialConversion(getOperation(), target,
std::move(patterns)))) {
mlir::emitError(mlir::UnknownLoc::get(context),
"error in converting to CFG\n");
Expand Down

0 comments on commit 196c427

Please sign in to comment.