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