llvm/mlir/lib/Dialect/SCF/Transforms/OneToNTypeConversion.cpp

//===-- OneToNTypeConversion.cpp - SCF 1:N type conversion ------*- C++ -*-===//
//
// Licensed under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// The patterns in this file are heavily inspired (and copied from)
// lib/Dialect/SCF/Transforms/StructuralTypeConversions.cpp but work for 1:N
// type conversions.
//
//===----------------------------------------------------------------------===//

#include "mlir/Dialect/SCF/Transforms/Transforms.h"

#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/Transforms/OneToNTypeConversion.h"

usingnamespacemlir;
usingnamespacemlir::scf;

class ConvertTypesInSCFIfOp : public OneToNOpConversionPattern<IfOp> {};

class ConvertTypesInSCFWhileOp : public OneToNOpConversionPattern<WhileOp> {};

class ConvertTypesInSCFYieldOp : public OneToNOpConversionPattern<YieldOp> {};

class ConvertTypesInSCFConditionOp
    : public OneToNOpConversionPattern<ConditionOp> {};

class ConvertTypesInSCFForOp final : public OneToNOpConversionPattern<ForOp> {};

namespace mlir {
namespace scf {

void populateSCFStructuralOneToNTypeConversions(TypeConverter &typeConverter,
                                                RewritePatternSet &patterns) {}

} // namespace scf
} // namespace mlir