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;
34#define GEN_PASS_DECL_ABSTRACTRESULTOPT
35#define GEN_PASS_DECL_AFFINEDIALECTPROMOTION
36#define GEN_PASS_DECL_AFFINEDIALECTDEMOTION
37#define GEN_PASS_DECL_ANNOTATECONSTANTOPERANDS
38#define GEN_PASS_DECL_ARRAYVALUECOPY
39#define GEN_PASS_DECL_ASSUMEDRANKOPCONVERSION
40#define GEN_PASS_DECL_CHARACTERCONVERSION
41#define GEN_PASS_DECL_CFGCONVERSION
42#define GEN_PASS_DECL_CUFADDCONSTRUCTOR
43#define GEN_PASS_DECL_CUFDEVICEGLOBAL
44#define GEN_PASS_DECL_CUFGPUTOLLVMCONVERSION
45#define GEN_PASS_DECL_CUFOPCONVERSION
46#define GEN_PASS_DECL_EXTERNALNAMECONVERSION
47#define GEN_PASS_DECL_MEMREFDATAFLOWOPT
48#define GEN_PASS_DECL_SIMPLIFYINTRINSICS
49#define GEN_PASS_DECL_MEMORYALLOCATIONOPT
50#define GEN_PASS_DECL_SIMPLIFYREGIONLITE
51#define GEN_PASS_DECL_ALGEBRAICSIMPLIFICATION
52#define GEN_PASS_DECL_POLYMORPHICOPCONVERSION
53#define GEN_PASS_DECL_OPENACCDATAOPERANDCONVERSION
54#define GEN_PASS_DECL_ADDDEBUGINFO
55#define GEN_PASS_DECL_STACKARRAYS
56#define GEN_PASS_DECL_STACKRECLAIM
57#define GEN_PASS_DECL_LOOPVERSIONING
58#define GEN_PASS_DECL_ADDALIASTAGS
59#define GEN_PASS_DECL_VSCALEATTR
60#define GEN_PASS_DECL_FUNCTIONATTR
61#define GEN_PASS_DECL_CONSTANTARGUMENTGLOBALISATIONOPT
62#define GEN_PASS_DECL_COMPILERGENERATEDNAMESCONVERSION
64#include "flang/Optimizer/Transforms/Passes.h.inc"
66std::unique_ptr<mlir::Pass> createAffineDemotionPass();
67std::unique_ptr<mlir::Pass>
68createArrayValueCopyPass(fir::ArrayValueCopyOptions options = {});
69std::unique_ptr<mlir::Pass> createMemDataFlowOptPass();
71std::unique_ptr<mlir::Pass>
72createAddDebugInfoPass(fir::AddDebugInfoOptions options = {});
74std::unique_ptr<mlir::Pass> createAnnotateConstantOperandsPass();
75std::unique_ptr<mlir::Pass> createAlgebraicSimplificationPass();
76std::unique_ptr<mlir::Pass>
77createAlgebraicSimplificationPass(
const mlir::GreedyRewriteConfig &config);
79std::unique_ptr<mlir::Pass> createVScaleAttrPass();
80std::unique_ptr<mlir::Pass>
81createVScaleAttrPass(std::pair<unsigned, unsigned> vscaleAttr);
84 bool forceLoopToExecuteOnce =
false,
88#define GEN_PASS_REGISTRATION
89#include "flang/Optimizer/Transforms/Passes.h.inc"
Definition: AbstractConverter.h:31
std::unique_ptr< mlir::Pass > createPromoteToAffinePass()
Convert FIR loop constructs to the Affine dialect.
Definition: AffinePromotion.cpp:626
void populateCfgConversionRewrites(mlir::RewritePatternSet &patterns, bool forceLoopToExecuteOnce=false, bool setNSW=true)
Expose conversion rewriters to other passes.
Definition: ControlFlowConverter.cpp:360
Definition: AbstractConverter.h:27