|
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_ |
Friends | |
| class | TestableRhlsToFirrtlConverter |
Definition at line 34 of file RhlsToFirrtlConverter.hpp.
|
inline |
Definition at line 51 of file RhlsToFirrtlConverter.hpp.
|
delete |
|
delete |
|
private |
Definition at line 3312 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3272 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3429 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3437 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3259 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3165 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3089 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3453 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3336 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3352 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3344 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3368 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3392 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3384 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3682 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3408 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3400 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3112 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3145 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3328 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3416 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3376 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3280 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3304 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3296 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3445 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3360 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3101 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3320 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3470 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3461 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3288 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3545 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3252 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3738 of file RhlsToFirrtlConverter.cpp.
|
inline |
Definition at line 90 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 2516 of file RhlsToFirrtlConverter.cpp.
|
inlineoverrideprivatevirtual |
Implements jlm::hls::BaseHLS.
Definition at line 39 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 3179 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3749 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3716 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3895 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3240 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3226 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3889 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3879 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3728 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3916 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3246 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3213 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3774 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3762 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3201 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3192 of file RhlsToFirrtlConverter.cpp.
|
inlineoverridevirtual |
Implements jlm::hls::BaseHLS.
Definition at line 46 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 3785 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3796 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3999 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2371 of file RhlsToFirrtlConverter.cpp.
| circt::firrtl::CircuitOp jlm::hls::RhlsToFirrtlConverter::MlirGen | ( | const rvsdg::LambdaNode * | lamdaNode | ) |
Definition at line 2737 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2480 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2567 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1971 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2324 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1831 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2139 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 4092 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 531 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1127 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 954 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1173 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 814 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 725 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1380 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 476 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1480 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2277 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1766 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1731 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 21 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 451 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 633 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 1697 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 3824 of file RhlsToFirrtlConverter.cpp.
|
delete |
|
delete |
|
private |
Definition at line 4065 of file RhlsToFirrtlConverter.cpp.
|
inline |
Definition at line 79 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 2528 of file RhlsToFirrtlConverter.cpp.
|
private |
Definition at line 2703 of file RhlsToFirrtlConverter.cpp.
| void jlm::hls::RhlsToFirrtlConverter::WriteCircuitToFile | ( | const circt::firrtl::CircuitOp | circuit, |
| std::string | name | ||
| ) |
Definition at line 4033 of file RhlsToFirrtlConverter.cpp.
| void jlm::hls::RhlsToFirrtlConverter::WriteModuleToFile | ( | const circt::firrtl::FModuleOp | fModuleOp, |
| const rvsdg::Node * | node | ||
| ) |
Definition at line 4013 of file RhlsToFirrtlConverter.cpp.
Definition at line 36 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 296 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 297 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 298 of file RhlsToFirrtlConverter.hpp.
|
private |
Definition at line 105 of file RhlsToFirrtlConverter.hpp.