CIRCT  20.0.0git
ArcPasses.h
Go to the documentation of this file.
1 //===- ArcPasses.h - Arc dialect passes -----------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef CIRCT_DIALECT_ARC_ARCPASSES_H
10 #define CIRCT_DIALECT_ARC_ARCPASSES_H
11 
12 #include "mlir/Pass/Pass.h"
13 #include <memory>
14 #include <optional>
15 
16 namespace mlir {
17 class Pass;
18 } // namespace mlir
19 
20 #include "circt/Dialect/Arc/ArcPassesEnums.h.inc"
21 
22 namespace circt {
23 namespace arc {
24 
25 #define GEN_PASS_DECL
26 #include "circt/Dialect/Arc/ArcPasses.h.inc"
27 
28 std::unique_ptr<mlir::Pass>
29 createAddTapsPass(const AddTapsOptions &options = {});
30 std::unique_ptr<mlir::Pass> createAllocateStatePass();
31 std::unique_ptr<mlir::Pass> createArcCanonicalizerPass();
32 std::unique_ptr<mlir::Pass> createDedupPass();
33 std::unique_ptr<mlir::Pass> createFindInitialVectorsPass();
34 std::unique_ptr<mlir::Pass>
35 createInferMemoriesPass(const InferMemoriesOptions &options = {});
36 std::unique_ptr<mlir::Pass> createInlineArcsPass();
37 std::unique_ptr<mlir::Pass> createIsolateClocksPass();
38 std::unique_ptr<mlir::Pass> createLatencyRetimingPass();
39 std::unique_ptr<mlir::Pass> createLowerArcsToFuncsPass();
40 std::unique_ptr<mlir::Pass> createLowerClocksToFuncsPass();
41 std::unique_ptr<mlir::Pass> createLowerLUTPass();
42 std::unique_ptr<mlir::Pass> createLowerVectorizationsPass(
43  LowerVectorizationsModeEnum mode = LowerVectorizationsModeEnum::Full);
44 std::unique_ptr<mlir::Pass> createMakeTablesPass();
45 std::unique_ptr<mlir::Pass> createMuxToControlFlowPass();
46 std::unique_ptr<mlir::Pass> createPrintCostModelPass();
47 std::unique_ptr<mlir::Pass> createSimplifyVariadicOpsPass();
48 std::unique_ptr<mlir::Pass> createSplitLoopsPass();
49 std::unique_ptr<mlir::Pass> createStripSVPass();
50 
51 #define GEN_PASS_REGISTRATION
52 #include "circt/Dialect/Arc/ArcPasses.h.inc"
53 
54 } // namespace arc
55 } // namespace circt
56 
57 #endif // CIRCT_DIALECT_ARC_ARCPASSES_H
std::unique_ptr< mlir::Pass > createLowerVectorizationsPass(LowerVectorizationsModeEnum mode=LowerVectorizationsModeEnum::Full)
std::unique_ptr< mlir::Pass > createFindInitialVectorsPass()
std::unique_ptr< mlir::Pass > createLatencyRetimingPass()
std::unique_ptr< mlir::Pass > createLowerArcsToFuncsPass()
std::unique_ptr< mlir::Pass > createMakeTablesPass()
Definition: MakeTables.cpp:185
std::unique_ptr< mlir::Pass > createSplitLoopsPass()
Definition: SplitLoops.cpp:426
std::unique_ptr< mlir::Pass > createSimplifyVariadicOpsPass()
std::unique_ptr< mlir::Pass > createPrintCostModelPass()
std::unique_ptr< mlir::Pass > createArcCanonicalizerPass()
std::unique_ptr< mlir::Pass > createLowerLUTPass()
Definition: LowerLUT.cpp:377
std::unique_ptr< mlir::Pass > createIsolateClocksPass()
std::unique_ptr< mlir::Pass > createAllocateStatePass()
std::unique_ptr< mlir::Pass > createAddTapsPass(const AddTapsOptions &options={})
Definition: AddTaps.cpp:103
std::unique_ptr< mlir::Pass > createInlineArcsPass()
Definition: InlineArcs.cpp:359
std::unique_ptr< mlir::Pass > createMuxToControlFlowPass()
std::unique_ptr< mlir::Pass > createDedupPass()
Definition: Dedup.cpp:744
std::unique_ptr< mlir::Pass > createInferMemoriesPass(const InferMemoriesOptions &options={})
std::unique_ptr< mlir::Pass > createStripSVPass()
Definition: StripSV.cpp:193
std::unique_ptr< mlir::Pass > createLowerClocksToFuncsPass()
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
Definition: DebugAnalysis.h:21