Loading [MathJax]/jax/output/HTML-CSS/config.js
CIRCT 22.0.0git
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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#include "mlir/Pass/Pass.h"
26
27namespace circt {
28namespace handshake {
29class FuncOp;
30
31#define GEN_PASS_DECL
32#include "circt/Dialect/Handshake/HandshakePasses.h.inc"
33
34std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
36std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
38std::unique_ptr<mlir::Pass> createHandshakeMaterializeForksSinksPass();
39std::unique_ptr<mlir::Pass> createHandshakeDematerializeForksSinksPass();
40std::unique_ptr<mlir::Pass> createHandshakeRemoveBuffersPass();
41std::unique_ptr<mlir::Pass> createHandshakeAddIDsPass();
42std::unique_ptr<mlir::Pass>
43createHandshakeLowerExtmemToHWPass(std::optional<bool> createESIWrapper = {});
44std::unique_ptr<mlir::Pass> createHandshakeLegalizeMemrefsPass();
45std::unique_ptr<mlir::OperationPass<handshake::FuncOp>>
46createHandshakeInsertBuffersPass(const std::string &strategy = "all",
47 unsigned bufferSize = 2);
48std::unique_ptr<mlir::Pass> createHandshakeLockFunctionsPass();
49std::unique_ptr<mlir::Pass> createHandshakeSplitMergesPass();
50
51/// Generate the code for registering passes.
52#define GEN_PASS_REGISTRATION
53#include "circt/Dialect/Handshake/HandshakePasses.h.inc"
54
55} // namespace handshake
56} // namespace circt
57
58#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.