CIRCT  20.0.0git
CalyxToHW.h
Go to the documentation of this file.
1 //===- CalyxToHW.h - Calyx to HW conversion pass ----------------*- 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 file declares passes which together will lower the Calyx dialect to the
10 // HW dialect.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef CIRCT_CONVERSION_CALYXTOHW_CALYXTOHW_H
15 #define CIRCT_CONVERSION_CALYXTOHW_CALYXTOHW_H
16 
18 #include "circt/Dialect/HW/HWOps.h"
19 #include "circt/Support/LLVM.h"
20 #include <memory>
21 
22 namespace mlir {
23 class Pass;
24 } // namespace mlir
25 
26 namespace circt {
27 
28 #define GEN_PASS_DECL_CALYXTOHW
29 #include "circt/Conversion/Passes.h.inc"
30 
31 namespace calyx {
32 
33 /// Returns a hw.module.extern operation describing the Verilog module which a
34 /// ComponentOp eventually results in.
35 hw::HWModuleExternOp getExternHWModule(OpBuilder &builder, ComponentOp op);
36 
37 } // namespace calyx
38 
39 std::unique_ptr<mlir::Pass> createCalyxToHWPass();
40 
41 } // namespace circt
42 
43 #endif // CIRCT_CONVERSION_CALYXTOHW_CALYXTOHW_H
hw::HWModuleExternOp getExternHWModule(OpBuilder &builder, ComponentOp op)
Returns a hw.module.extern operation describing the Verilog module which a ComponentOp eventually res...
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
Definition: DebugAnalysis.h:21
std::unique_ptr< mlir::Pass > createCalyxToHWPass()
Definition: CalyxToHW.cpp:486