CIRCT 22.0.0git
Loading...
Searching...
No Matches
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
17
18namespace mlir {
19class Pass;
20} // namespace mlir
21
22#include "circt/Dialect/Arc/ArcPassesEnums.h.inc"
23
24namespace circt {
25namespace arc {
26
27#define GEN_PASS_DECL
28#include "circt/Dialect/Arc/ArcPasses.h.inc"
29
30std::unique_ptr<mlir::Pass>
31createAddTapsPass(const AddTapsOptions &options = {});
32std::unique_ptr<mlir::Pass> createAllocateStatePass();
33std::unique_ptr<mlir::Pass> createArcCanonicalizerPass();
34std::unique_ptr<mlir::Pass> createDedupPass();
35std::unique_ptr<mlir::Pass> createFindInitialVectorsPass();
36std::unique_ptr<mlir::Pass>
37createInferMemoriesPass(const InferMemoriesOptions &options = {});
38std::unique_ptr<mlir::Pass> createInlineArcsPass();
39std::unique_ptr<mlir::Pass> createIsolateClocksPass();
40std::unique_ptr<mlir::Pass> createLatencyRetimingPass();
41std::unique_ptr<mlir::Pass> createLowerArcsToFuncsPass();
42std::unique_ptr<mlir::Pass> createLowerClocksToFuncsPass();
43std::unique_ptr<mlir::Pass> createLowerLUTPass();
44std::unique_ptr<mlir::Pass> createLowerVectorizationsPass(
45 LowerVectorizationsModeEnum mode = LowerVectorizationsModeEnum::Full);
46std::unique_ptr<mlir::Pass> createMakeTablesPass();
47std::unique_ptr<mlir::Pass> createMuxToControlFlowPass();
48std::unique_ptr<mlir::Pass> createPrintCostModelPass();
49std::unique_ptr<mlir::Pass> createSimplifyVariadicOpsPass();
50std::unique_ptr<mlir::Pass> createSplitLoopsPass();
51std::unique_ptr<mlir::Pass> createStripSVPass();
52
53#define GEN_PASS_REGISTRATION
54#include "circt/Dialect/Arc/ArcPasses.h.inc"
55
56} // namespace arc
57} // namespace circt
58
59#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()
std::unique_ptr< mlir::Pass > createSplitLoopsPass()
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:328
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()
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:185
std::unique_ptr< mlir::Pass > createLowerClocksToFuncsPass()
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.