#include "mlir/Dialect/SCF/TransformOps/SCFTransformOps.h"
#include "mlir/Conversion/SCFToControlFlow/SCFToControlFlow.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Affine/LoopUtils.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Arith/Utils/Utils.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/Dialect/SCF/Transforms/Patterns.h"
#include "mlir/Dialect/SCF/Transforms/Transforms.h"
#include "mlir/Dialect/SCF/Utils/Utils.h"
#include "mlir/Dialect/Transform/IR/TransformDialect.h"
#include "mlir/Dialect/Transform/IR/TransformOps.h"
#include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.h"
#include "mlir/Dialect/Utils/StaticValueUtils.h"
#include "mlir/Dialect/Vector/IR/VectorOps.h"
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/Dominance.h"
#include "mlir/IR/OpDefinition.h"
usingnamespacemlir;
usingnamespacemlir::affine;
void transform::ApplyForLoopCanonicalizationPatternsOp::populatePatterns(
RewritePatternSet &patterns) { … }
void transform::ApplySCFStructuralConversionPatternsOp::populatePatterns(
TypeConverter &typeConverter, RewritePatternSet &patterns) { … }
void transform::ApplySCFStructuralConversionPatternsOp::
populateConversionTargetRules(const TypeConverter &typeConverter,
ConversionTarget &conversionTarget) { … }
void transform::ApplySCFToControlFlowPatternsOp::populatePatterns(
TypeConverter &typeConverter, RewritePatternSet &patterns) { … }
DiagnosedSilenceableFailure
transform::ForallToForOp::apply(transform::TransformRewriter &rewriter,
transform::TransformResults &results,
transform::TransformState &state) { … }
DiagnosedSilenceableFailure
transform::ForallToParallelOp::apply(transform::TransformRewriter &rewriter,
transform::TransformResults &results,
transform::TransformState &state) { … }
static scf::ExecuteRegionOp wrapInExecuteRegion(RewriterBase &b,
Operation *op) { … }
DiagnosedSilenceableFailure
transform::LoopOutlineOp::apply(transform::TransformRewriter &rewriter,
transform::TransformResults &results,
transform::TransformState &state) { … }
DiagnosedSilenceableFailure
transform::LoopPeelOp::applyToOne(transform::TransformRewriter &rewriter,
scf::ForOp target,
transform::ApplyToEachResultList &results,
transform::TransformState &state) { … }
static void
loopScheduling(scf::ForOp forOp,
std::vector<std::pair<Operation *, unsigned>> &schedule,
unsigned iterationInterval, unsigned readLatency) { … }
DiagnosedSilenceableFailure
transform::LoopPipelineOp::applyToOne(transform::TransformRewriter &rewriter,
scf::ForOp target,
transform::ApplyToEachResultList &results,
transform::TransformState &state) { … }
DiagnosedSilenceableFailure transform::LoopPromoteIfOneIterationOp::applyToOne(
transform::TransformRewriter &rewriter, LoopLikeOpInterface target,
transform::ApplyToEachResultList &results,
transform::TransformState &state) { … }
void transform::LoopPromoteIfOneIterationOp::getEffects(
SmallVectorImpl<MemoryEffects::EffectInstance> &effects) { … }
DiagnosedSilenceableFailure
transform::LoopUnrollOp::applyToOne(transform::TransformRewriter &rewriter,
Operation *op,
transform::ApplyToEachResultList &results,
transform::TransformState &state) { … }
DiagnosedSilenceableFailure transform::LoopUnrollAndJamOp::applyToOne(
transform::TransformRewriter &rewriter, Operation *op,
transform::ApplyToEachResultList &results,
transform::TransformState &state) { … }
DiagnosedSilenceableFailure
transform::LoopCoalesceOp::applyToOne(transform::TransformRewriter &rewriter,
Operation *op,
transform::ApplyToEachResultList &results,
transform::TransformState &state) { … }
static void replaceOpWithRegion(RewriterBase &rewriter, Operation *op,
Region ®ion) { … }
DiagnosedSilenceableFailure transform::TakeAssumedBranchOp::applyToOne(
transform::TransformRewriter &rewriter, scf::IfOp ifOp,
transform::ApplyToEachResultList &results,
transform::TransformState &state) { … }
void transform::TakeAssumedBranchOp::getEffects(
SmallVectorImpl<MemoryEffects::EffectInstance> &effects) { … }
static DiagnosedSilenceableFailure isOpSibling(Operation *target,
Operation *source) { … }
static bool isForallWithIdenticalConfiguration(Operation *target,
Operation *source) { … }
static bool isForWithIdenticalConfiguration(Operation *target,
Operation *source) { … }
DiagnosedSilenceableFailure
transform::LoopFuseSiblingOp::apply(transform::TransformRewriter &rewriter,
transform::TransformResults &results,
transform::TransformState &state) { … }
namespace {
class SCFTransformDialectExtension
: public transform::TransformDialectExtension<
SCFTransformDialectExtension> { … };
}
#define GET_OP_CLASSES
#include "mlir/Dialect/SCF/TransformOps/SCFTransformOps.cpp.inc"
void mlir::scf::registerTransformDialectExtension(DialectRegistry ®istry) { … }