9#ifndef FORTRAN_OPTIMIZER_TRANSFORMS_PASSES_H
10#define FORTRAN_OPTIMIZER_TRANSFORMS_PASSES_H
12#include "flang/Optimizer/Dialect/FIROps.h"
13#include "mlir/Dialect/LLVMIR/LLVMAttrs.h"
14#include "mlir/Dialect/OpenMP/OpenMPDialect.h"
15#include "mlir/Pass/Pass.h"
16#include "mlir/Pass/PassRegistry.h"
21class GreedyRewriteConfig;
36#include "flang/Optimizer/Transforms/Passes.h.inc"
38std::unique_ptr<mlir::Pass> createAffineDemotionPass();
39std::unique_ptr<mlir::Pass>
40createArrayValueCopyPass(fir::ArrayValueCopyOptions options = {});
41std::unique_ptr<mlir::Pass> createMemDataFlowOptPass();
43std::unique_ptr<mlir::Pass> createFIRToSCFPass();
44std::unique_ptr<mlir::Pass>
45createAddDebugInfoPass(fir::AddDebugInfoOptions options = {});
47std::unique_ptr<mlir::Pass> createAnnotateConstantOperandsPass();
48std::unique_ptr<mlir::Pass> createAlgebraicSimplificationPass();
49std::unique_ptr<mlir::Pass>
50createAlgebraicSimplificationPass(
const mlir::GreedyRewriteConfig &config);
52std::unique_ptr<mlir::Pass> createVScaleAttrPass();
53std::unique_ptr<mlir::Pass>
54createVScaleAttrPass(std::pair<unsigned, unsigned> vscaleAttr);
57 bool forceLoopToExecuteOnce =
false,
60void populateSimplifyFIROperationsPatterns(mlir::RewritePatternSet &patterns,
61 bool preferInlineImplementation);
64#define GEN_PASS_REGISTRATION
65#include "flang/Optimizer/Transforms/Passes.h.inc"
Definition AbstractConverter.h:34
std::unique_ptr< mlir::Pass > createPromoteToAffinePass()
Convert FIR loop constructs to the Affine dialect.
Definition AffinePromotion.cpp:646
void populateCfgConversionRewrites(mlir::RewritePatternSet &patterns, bool forceLoopToExecuteOnce=false, bool setNSW=true)
Expose conversion rewriters to other passes.
Definition ControlFlowConverter.cpp:365
Definition AbstractConverter.h:29