|
Jlm
|
#include <RhlsToFirrtlConverter.hpp>


Public Member Functions | |
| std::string | GetText (llvm::LlvmRvsdgModule &) override |
| RhlsToFirrtlConverter () | |
| RhlsToFirrtlConverter (const RhlsToFirrtlConverter &)=delete | |
| RhlsToFirrtlConverter (RhlsToFirrtlConverter &&)=delete | |
| RhlsToFirrtlConverter & | operator= (const RhlsToFirrtlConverter &)=delete |
| RhlsToFirrtlConverter & | operator= (RhlsToFirrtlConverter &&)=delete |
| circt::firrtl::CircuitOp | MlirGen (const rvsdg::LambdaNode *lamdaNode) |
| void | WriteModuleToFile (const circt::firrtl::FModuleOp fModuleOp, const rvsdg::Node *node) |
| void | WriteCircuitToFile (const circt::firrtl::CircuitOp circuit, std::string name) |
| std::string | ToString (llvm::LlvmRvsdgModule &rvsdgModule) |
| std::unique_ptr< mlir::ModuleOp > | ConvertToMduleOp (llvm::LlvmRvsdgModule &rvsdgModule) |
Public Member Functions inherited from jlm::hls::BaseHLS | |
| virtual | ~BaseHLS () |
| std::string | run (llvm::LlvmRvsdgModule &rm) |
Private Member Functions | |
| std::string | extension () override |
| std::string | toString (const circt::firrtl::CircuitOp circuit) |
| circt::firrtl::FModuleOp | MlirGen (LoopNode *loopNode, mlir::Block *circuitBody) |
| circt::firrtl::FModuleLike | MlirGen (rvsdg::Region *subRegion, mlir::Block *circuitBody) |
| circt::firrtl::FModuleLike | MlirGen (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenSink (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenLoopConstBuffer (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenFork (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenStateGate (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenMem (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenHlsMemResp (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenHlsMemReq (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenHlsLoad (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenHlsDLoad (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenHlsLocalMem (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenHlsStore (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenTrigger (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenPrint (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenAddrQueue (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenPredicationBuffer (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenBuffer (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenDMux (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenNDMux (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenBranch (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FModuleOp | MlirGenSimpleNode (const jlm::rvsdg::SimpleNode *node) |
| circt::firrtl::FExtModuleOp | MlirGenExtModule (const jlm::rvsdg::SimpleNode *node) |
| void | AddClockPort (::llvm::SmallVector< circt::firrtl::PortInfo > *ports) |
| void | AddResetPort (::llvm::SmallVector< circt::firrtl::PortInfo > *ports) |
| void | AddMemReqPort (::llvm::SmallVector< circt::firrtl::PortInfo > *ports) |
| void | AddMemResPort (::llvm::SmallVector< circt::firrtl::PortInfo > *ports) |
| void | AddBundlePort (::llvm::SmallVector< circt::firrtl::PortInfo > *ports, circt::firrtl::Direction direction, std::string name, circt::firrtl::FIRRTLBaseType type) |
| circt::firrtl::BundleType | GetBundleType (const circt::firrtl::FIRRTLBaseType &type) |
| circt::firrtl::SubfieldOp | GetSubfield (mlir::Block *body, mlir::Value value, int index) |
| circt::firrtl::SubfieldOp | GetSubfield (mlir::Block *body, mlir::Value value, ::llvm::StringRef fieldName) |
| mlir::OpResult | GetInstancePort (circt::firrtl::InstanceOp &instance, std::string portName) |
| mlir::BlockArgument | GetPort (circt::firrtl::FModuleOp &module, std::string portName) |
| mlir::BlockArgument | GetInPort (circt::firrtl::FModuleOp &module, size_t portNr) |
| mlir::BlockArgument | GetOutPort (circt::firrtl::FModuleOp &module, size_t portNr) |
| void | Connect (mlir::Block *body, mlir::Value sink, mlir::Value source) |
| circt::firrtl::BitsPrimOp | AddBitsOp (mlir::Block *body, mlir::Value value, int high, int low) |
| circt::firrtl::AndPrimOp | AddAndOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::NodeOp | AddNodeOp (mlir::Block *body, mlir::Value value, std::string name) |
| circt::firrtl::XorPrimOp | AddXorOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::OrPrimOp | AddOrOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::NotPrimOp | AddNotOp (mlir::Block *body, mlir::Value first) |
| circt::firrtl::AddPrimOp | AddAddOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::SubPrimOp | AddSubOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::MulPrimOp | AddMulOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::DivPrimOp | AddDivOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::DShrPrimOp | AddDShrOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::DShlPrimOp | AddDShlOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::RemPrimOp | AddRemOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::EQPrimOp | AddEqOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::NEQPrimOp | AddNeqOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::GTPrimOp | AddGtOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::GEQPrimOp | AddGeqOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::LTPrimOp | AddLtOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::LEQPrimOp | AddLeqOp (mlir::Block *body, mlir::Value first, mlir::Value second) |
| circt::firrtl::MuxPrimOp | AddMuxOp (mlir::Block *body, mlir::Value select, mlir::Value high, mlir::Value low) |
| circt::firrtl::AsSIntPrimOp | AddAsSIntOp (mlir::Block *body, mlir::Value value) |
| circt::firrtl::AsUIntPrimOp | AddAsUIntOp (mlir::Block *body, mlir::Value value) |
| circt::firrtl::PadPrimOp | AddPadOp (mlir::Block *body, mlir::Value value, int amount) |
| circt::firrtl::CvtPrimOp | AddCvtOp (mlir::Block *body, mlir::Value value) |
| circt::firrtl::WireOp | AddWireOp (mlir::Block *body, std::string name, int size) |
| circt::firrtl::WhenOp | AddWhenOp (mlir::Block *body, mlir::Value condition, bool elseStatment) |
| circt::firrtl::InstanceOp | AddInstanceOp (mlir::Block *circuitBody, jlm::rvsdg::Node *node) |
| circt::firrtl::ConstantOp | GetConstant (mlir::Block *body, int size, int value) |
| circt::firrtl::InvalidValueOp | GetInvalid (mlir::Block *body, int size) |
| void | ConnectInvalid (mlir::Block *body, mlir::Value value) |
| circt::firrtl::BitsPrimOp | DropMSBs (mlir::Block *body, mlir::Value value, int amount) |
| jlm::rvsdg::Output * | TraceArgument (rvsdg::RegionArgument *arg) |
| rvsdg::Output * | TraceStructuralOutput (rvsdg::StructuralOutput *out) |
| void | InitializeMemReq (circt::firrtl::FModuleOp module) |
| circt::firrtl::BundleType::BundleElement | GetReadyElement () |
| circt::firrtl::BundleType::BundleElement | GetValidElement () |
| mlir::BlockArgument | GetClockSignal (circt::firrtl::FModuleOp module) |
| mlir::BlockArgument | GetResetSignal (circt::firrtl::FModuleOp module) |
| circt::firrtl::FModuleOp | nodeToModule (const jlm::rvsdg::Node *node, bool mem=false) |
| circt::firrtl::IntType | GetIntType (int size) |
| circt::firrtl::IntType | GetIntType (const jlm::rvsdg::Type *type, int extend=0) |
| circt::firrtl::FIRRTLBaseType | GetFirrtlType (const jlm::rvsdg::Type *type) |
| std::string | GetModuleName (const rvsdg::Node *node) |
| bool | IsIdentityMapping (const rvsdg::MatchOperation &op) |
| void | check_module (circt::firrtl::FModuleOp &module) |
Private Attributes | |
| std::unordered_map< std::string, circt::firrtl::FModuleLike > | modules |
| std::unique_ptr<::mlir::OpBuilder > | Builder_ |
| std::unique_ptr<::mlir::MLIRContext > | Context_ |
| const circt::firrtl::FIRVersion | DefaultFIRVersion_ |
Additional Inherited Members | |
Static Public Member Functions inherited from jlm::hls::BaseHLS | |
| static int | JlmSize (const jlm::rvsdg::Type *type) |
Protected Member Functions inherited from jlm::hls::BaseHLS | |
| std::string | get_node_name (const rvsdg::Node *node) |
| const rvsdg::LambdaNode * | get_hls_lambda (llvm::LlvmRvsdgModule &rm) |
| void | create_node_names (rvsdg::Region *r) |
| std::vector< rvsdg::RegionArgument * > | get_mem_resps (const rvsdg::LambdaNode &lambda) |
| std::vector< rvsdg::RegionResult * > | get_mem_reqs (const rvsdg::LambdaNode &lambda) |
| std::vector< rvsdg::RegionArgument * > | get_reg_args (const rvsdg::LambdaNode &lambda) |
| std::vector< rvsdg::RegionResult * > | get_reg_results (const rvsdg::LambdaNode &lambda) |
Static Protected Member Functions inherited from jlm::hls::BaseHLS | |
| static std::string | get_port_name (jlm::rvsdg::Input *port) |
| static std::string | get_port_name (jlm::rvsdg::Output *port) |
| static std::string | get_base_file_name (const llvm::LlvmRvsdgModule &rm) |
Protected Attributes inherited from jlm::hls::BaseHLS | |
| std::unordered_map< const rvsdg::Node *, std::string > | node_map |
| std::unordered_map< jlm::rvsdg::Output *, std::string > | output_map |
Definition at line 34 of file RhlsToFirrtlConverter.hpp.
|
inline |
Definition at line 49 of file RhlsToFirrtlConverter.hpp.
|
delete |
|
delete |
|
private |
Definition at line 3304 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3264 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3421 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3429 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3251 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3157 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3081 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3445 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3328 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3344 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3336 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3360 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3384 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3376 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3674 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3400 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3392 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3104 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3137 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3320 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3408 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3368 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3272 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3296 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3288 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3437 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3352 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3093 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3312 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3462 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3453 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3280 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3537 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3244 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3730 of file RhlsToFirrtlConverter.cpp.
|
inline |
Definition at line 88 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 2513 of file RhlsToFirrtlConverter.cpp.
|
inlineoverrideprivatevirtual |
Implements jlm::hls::BaseHLS.
Definition at line 37 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 3171 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3741 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3708 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3887 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3232 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3218 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3881 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3871 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3720 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3908 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3238 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3205 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3766 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3754 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3193 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3184 of file RhlsToFirrtlConverter.cpp.
|
inlineoverridevirtual |
Implements jlm::hls::BaseHLS.
Definition at line 44 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 3777 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3788 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3991 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2368 of file RhlsToFirrtlConverter.cpp.
| circt::firrtl::CircuitOp jlm::hls::RhlsToFirrtlConverter::MlirGen | ( | const rvsdg::LambdaNode * | lamdaNode | ) |
Definition at line 2732 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2477 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2564 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1968 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2321 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1828 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2136 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 4084 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 528 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1124 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 951 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1170 of file RhlsToFirrtlConverter.cpp.
|
private |
Generate a FIRRTL module for a HLS memory request node that implements the functionality for performing memory requests.
| node | The HLS memory request node. |
Definition at line 811 of file RhlsToFirrtlConverter.cpp.
|
private |
Generate a FIRRTL module for a HLS memory response node that implements the functionality for retreiving memory responses.
| node | The HLS memory response node. |
Definition at line 722 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1377 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 473 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1477 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2274 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1763 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1728 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 19 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 448 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 630 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1694 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3816 of file RhlsToFirrtlConverter.cpp.
|
delete |
|
delete |
|
private |
Definition at line 4057 of file RhlsToFirrtlConverter.cpp.
|
inline |
Definition at line 77 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 2525 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2698 of file RhlsToFirrtlConverter.cpp.
| void jlm::hls::RhlsToFirrtlConverter::WriteCircuitToFile | ( | const circt::firrtl::CircuitOp | circuit, |
| std::string | name | ||
| ) |
Definition at line 4025 of file RhlsToFirrtlConverter.cpp.
| void jlm::hls::RhlsToFirrtlConverter::WriteModuleToFile | ( | const circt::firrtl::FModuleOp | fModuleOp, |
| const rvsdg::Node * | node | ||
| ) |
Definition at line 4005 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 294 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 295 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 296 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 103 of file RhlsToFirrtlConverter.hpp.