CIRCT  20.0.0git
HandshakePasses.h
Go to the documentation of this file.
1 //===- HandshakePasses.h - Handshake pass entry points ----------*- C++ -*-===//
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 // This header file defines prototypes that expose pass constructors.
10 //
11 //===----------------------------------------------------------------------===//
12 
13 #ifndef CIRCT_DIALECT_HANDSHAKE_HANDSHAKEPASSES_H
14 #define CIRCT_DIALECT_HANDSHAKE_HANDSHAKEPASSES_H
15 
16 #include "circt/Support/LLVM.h"
17 #include <map>
18 #include <memory>
19 #include <optional>
20 #include <set>
21 
22 #include "mlir/Dialect/Func/IR/FuncOps.h"
23 #include "mlir/Dialect/MemRef/IR/MemRef.h"
24 #include "mlir/Dialect/SCF/IR/SCF.h"
25 
26 namespace circt {
27 namespace handshake {
28 class FuncOp;
29 
30 #define GEN_PASS_DECL
31 #include "circt/Dialect/Handshake/HandshakePasses.h.inc"
32 
33 std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
35 std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
37 std::unique_ptr<mlir::Pass> createHandshakeMaterializeForksSinksPass();
38 std::unique_ptr<mlir::Pass> createHandshakeDematerializeForksSinksPass();
39 std::unique_ptr<mlir::Pass> createHandshakeRemoveBuffersPass();
40 std::unique_ptr<mlir::Pass> createHandshakeAddIDsPass();
41 std::unique_ptr<mlir::Pass>
42 createHandshakeLowerExtmemToHWPass(std::optional<bool> createESIWrapper = {});
43 std::unique_ptr<mlir::Pass> createHandshakeLegalizeMemrefsPass();
44 std::unique_ptr<mlir::OperationPass<handshake::FuncOp>>
45 createHandshakeInsertBuffersPass(const std::string &strategy = "all",
46  unsigned bufferSize = 2);
47 std::unique_ptr<mlir::Pass> createHandshakeLockFunctionsPass();
48 std::unique_ptr<mlir::Pass> createHandshakeSplitMergesPass();
49 
50 /// Generate the code for registering passes.
51 #define GEN_PASS_REGISTRATION
52 #include "circt/Dialect/Handshake/HandshakePasses.h.inc"
53 
54 } // namespace handshake
55 } // namespace circt
56 
57 #endif // CIRCT_DIALECT_HANDSHAKE_HANDSHAKEPASSES_H
Strategy strategy
std::unique_ptr< mlir::OperationPass< handshake::FuncOp > > createHandshakeInsertBuffersPass(const std::string &strategy="all", unsigned bufferSize=2)
Definition: Buffers.cpp:225
std::unique_ptr< mlir::Pass > createHandshakeMaterializeForksSinksPass()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createHandshakeOpCountPass()
Definition: Analysis.cpp:627
std::unique_ptr< mlir::Pass > createHandshakeSplitMergesPass()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createHandshakeDotPrintPass()
Definition: Analysis.cpp:622
std::unique_ptr< mlir::Pass > createHandshakeLowerExtmemToHWPass(std::optional< bool > createESIWrapper={})
std::unique_ptr< mlir::Pass > createHandshakeDematerializeForksSinksPass()
std::unique_ptr< mlir::Pass > createHandshakeLegalizeMemrefsPass()
std::unique_ptr< mlir::Pass > createHandshakeRemoveBuffersPass()
Definition: Buffers.cpp:220
std::unique_ptr< mlir::Pass > createHandshakeLockFunctionsPass()
std::unique_ptr< mlir::Pass > createHandshakeAddIDsPass()
Definition: Analysis.cpp:631
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
Definition: DebugAnalysis.h:21