Jlm
Public Member Functions | Private Member Functions | Private Attributes | List of all members
jlm::hls::RhlsToFirrtlConverter Class Reference

#include <RhlsToFirrtlConverter.hpp>

Inheritance diagram for jlm::hls::RhlsToFirrtlConverter:
Inheritance graph
[legend]
Collaboration diagram for jlm::hls::RhlsToFirrtlConverter:
Collaboration graph
[legend]

Public Member Functions

std::string GetText (llvm::LlvmRvsdgModule &) override
 
 RhlsToFirrtlConverter ()
 
 RhlsToFirrtlConverter (const RhlsToFirrtlConverter &)=delete
 
 RhlsToFirrtlConverter (RhlsToFirrtlConverter &&)=delete
 
RhlsToFirrtlConverteroperator= (const RhlsToFirrtlConverter &)=delete
 
RhlsToFirrtlConverteroperator= (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::OutputTraceArgument (rvsdg::RegionArgument *arg)
 
rvsdg::OutputTraceStructuralOutput (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::LambdaNodeget_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
 

Detailed Description

Definition at line 34 of file RhlsToFirrtlConverter.hpp.

Constructor & Destructor Documentation

◆ RhlsToFirrtlConverter() [1/3]

jlm::hls::RhlsToFirrtlConverter::RhlsToFirrtlConverter ( )
inline

Definition at line 49 of file RhlsToFirrtlConverter.hpp.

◆ RhlsToFirrtlConverter() [2/3]

jlm::hls::RhlsToFirrtlConverter::RhlsToFirrtlConverter ( const RhlsToFirrtlConverter )
delete

◆ RhlsToFirrtlConverter() [3/3]

jlm::hls::RhlsToFirrtlConverter::RhlsToFirrtlConverter ( RhlsToFirrtlConverter &&  )
delete

Member Function Documentation

◆ AddAddOp()

circt::firrtl::AddPrimOp jlm::hls::RhlsToFirrtlConverter::AddAddOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3304 of file RhlsToFirrtlConverter.cpp.

◆ AddAndOp()

circt::firrtl::AndPrimOp jlm::hls::RhlsToFirrtlConverter::AddAndOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3264 of file RhlsToFirrtlConverter.cpp.

◆ AddAsSIntOp()

circt::firrtl::AsSIntPrimOp jlm::hls::RhlsToFirrtlConverter::AddAsSIntOp ( mlir::Block *  body,
mlir::Value  value 
)
private

Definition at line 3421 of file RhlsToFirrtlConverter.cpp.

◆ AddAsUIntOp()

circt::firrtl::AsUIntPrimOp jlm::hls::RhlsToFirrtlConverter::AddAsUIntOp ( mlir::Block *  body,
mlir::Value  value 
)
private

Definition at line 3429 of file RhlsToFirrtlConverter.cpp.

◆ AddBitsOp()

circt::firrtl::BitsPrimOp jlm::hls::RhlsToFirrtlConverter::AddBitsOp ( mlir::Block *  body,
mlir::Value  value,
int  high,
int  low 
)
private

Definition at line 3251 of file RhlsToFirrtlConverter.cpp.

◆ AddBundlePort()

void jlm::hls::RhlsToFirrtlConverter::AddBundlePort ( ::llvm::SmallVector< circt::firrtl::PortInfo > *  ports,
circt::firrtl::Direction  direction,
std::string  name,
circt::firrtl::FIRRTLBaseType  type 
)
private

Definition at line 3157 of file RhlsToFirrtlConverter.cpp.

◆ AddClockPort()

void jlm::hls::RhlsToFirrtlConverter::AddClockPort ( ::llvm::SmallVector< circt::firrtl::PortInfo > *  ports)
private

Definition at line 3081 of file RhlsToFirrtlConverter.cpp.

◆ AddCvtOp()

circt::firrtl::CvtPrimOp jlm::hls::RhlsToFirrtlConverter::AddCvtOp ( mlir::Block *  body,
mlir::Value  value 
)
private

Definition at line 3445 of file RhlsToFirrtlConverter.cpp.

◆ AddDivOp()

circt::firrtl::DivPrimOp jlm::hls::RhlsToFirrtlConverter::AddDivOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3328 of file RhlsToFirrtlConverter.cpp.

◆ AddDShlOp()

circt::firrtl::DShlPrimOp jlm::hls::RhlsToFirrtlConverter::AddDShlOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3344 of file RhlsToFirrtlConverter.cpp.

◆ AddDShrOp()

circt::firrtl::DShrPrimOp jlm::hls::RhlsToFirrtlConverter::AddDShrOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3336 of file RhlsToFirrtlConverter.cpp.

◆ AddEqOp()

circt::firrtl::EQPrimOp jlm::hls::RhlsToFirrtlConverter::AddEqOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3360 of file RhlsToFirrtlConverter.cpp.

◆ AddGeqOp()

circt::firrtl::GEQPrimOp jlm::hls::RhlsToFirrtlConverter::AddGeqOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3384 of file RhlsToFirrtlConverter.cpp.

◆ AddGtOp()

circt::firrtl::GTPrimOp jlm::hls::RhlsToFirrtlConverter::AddGtOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3376 of file RhlsToFirrtlConverter.cpp.

◆ AddInstanceOp()

circt::firrtl::InstanceOp jlm::hls::RhlsToFirrtlConverter::AddInstanceOp ( mlir::Block *  circuitBody,
jlm::rvsdg::Node node 
)
private

Definition at line 3674 of file RhlsToFirrtlConverter.cpp.

◆ AddLeqOp()

circt::firrtl::LEQPrimOp jlm::hls::RhlsToFirrtlConverter::AddLeqOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3400 of file RhlsToFirrtlConverter.cpp.

◆ AddLtOp()

circt::firrtl::LTPrimOp jlm::hls::RhlsToFirrtlConverter::AddLtOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3392 of file RhlsToFirrtlConverter.cpp.

◆ AddMemReqPort()

void jlm::hls::RhlsToFirrtlConverter::AddMemReqPort ( ::llvm::SmallVector< circt::firrtl::PortInfo > *  ports)
private

Definition at line 3104 of file RhlsToFirrtlConverter.cpp.

◆ AddMemResPort()

void jlm::hls::RhlsToFirrtlConverter::AddMemResPort ( ::llvm::SmallVector< circt::firrtl::PortInfo > *  ports)
private

Definition at line 3137 of file RhlsToFirrtlConverter.cpp.

◆ AddMulOp()

circt::firrtl::MulPrimOp jlm::hls::RhlsToFirrtlConverter::AddMulOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3320 of file RhlsToFirrtlConverter.cpp.

◆ AddMuxOp()

circt::firrtl::MuxPrimOp jlm::hls::RhlsToFirrtlConverter::AddMuxOp ( mlir::Block *  body,
mlir::Value  select,
mlir::Value  high,
mlir::Value  low 
)
private

Definition at line 3408 of file RhlsToFirrtlConverter.cpp.

◆ AddNeqOp()

circt::firrtl::NEQPrimOp jlm::hls::RhlsToFirrtlConverter::AddNeqOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3368 of file RhlsToFirrtlConverter.cpp.

◆ AddNodeOp()

circt::firrtl::NodeOp jlm::hls::RhlsToFirrtlConverter::AddNodeOp ( mlir::Block *  body,
mlir::Value  value,
std::string  name 
)
private

Definition at line 3272 of file RhlsToFirrtlConverter.cpp.

◆ AddNotOp()

circt::firrtl::NotPrimOp jlm::hls::RhlsToFirrtlConverter::AddNotOp ( mlir::Block *  body,
mlir::Value  first 
)
private

Definition at line 3296 of file RhlsToFirrtlConverter.cpp.

◆ AddOrOp()

circt::firrtl::OrPrimOp jlm::hls::RhlsToFirrtlConverter::AddOrOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3288 of file RhlsToFirrtlConverter.cpp.

◆ AddPadOp()

circt::firrtl::PadPrimOp jlm::hls::RhlsToFirrtlConverter::AddPadOp ( mlir::Block *  body,
mlir::Value  value,
int  amount 
)
private

Definition at line 3437 of file RhlsToFirrtlConverter.cpp.

◆ AddRemOp()

circt::firrtl::RemPrimOp jlm::hls::RhlsToFirrtlConverter::AddRemOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3352 of file RhlsToFirrtlConverter.cpp.

◆ AddResetPort()

void jlm::hls::RhlsToFirrtlConverter::AddResetPort ( ::llvm::SmallVector< circt::firrtl::PortInfo > *  ports)
private

Definition at line 3093 of file RhlsToFirrtlConverter.cpp.

◆ AddSubOp()

circt::firrtl::SubPrimOp jlm::hls::RhlsToFirrtlConverter::AddSubOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3312 of file RhlsToFirrtlConverter.cpp.

◆ AddWhenOp()

circt::firrtl::WhenOp jlm::hls::RhlsToFirrtlConverter::AddWhenOp ( mlir::Block *  body,
mlir::Value  condition,
bool  elseStatment 
)
private

Definition at line 3462 of file RhlsToFirrtlConverter.cpp.

◆ AddWireOp()

circt::firrtl::WireOp jlm::hls::RhlsToFirrtlConverter::AddWireOp ( mlir::Block *  body,
std::string  name,
int  size 
)
private

Definition at line 3453 of file RhlsToFirrtlConverter.cpp.

◆ AddXorOp()

circt::firrtl::XorPrimOp jlm::hls::RhlsToFirrtlConverter::AddXorOp ( mlir::Block *  body,
mlir::Value  first,
mlir::Value  second 
)
private

Definition at line 3280 of file RhlsToFirrtlConverter.cpp.

◆ check_module()

void jlm::hls::RhlsToFirrtlConverter::check_module ( circt::firrtl::FModuleOp &  module)
private

Definition at line 3537 of file RhlsToFirrtlConverter.cpp.

◆ Connect()

void jlm::hls::RhlsToFirrtlConverter::Connect ( mlir::Block *  body,
mlir::Value  sink,
mlir::Value  source 
)
private

Definition at line 3244 of file RhlsToFirrtlConverter.cpp.

◆ ConnectInvalid()

void jlm::hls::RhlsToFirrtlConverter::ConnectInvalid ( mlir::Block *  body,
mlir::Value  value 
)
private

Definition at line 3730 of file RhlsToFirrtlConverter.cpp.

◆ ConvertToMduleOp()

std::unique_ptr<mlir::ModuleOp> jlm::hls::RhlsToFirrtlConverter::ConvertToMduleOp ( llvm::LlvmRvsdgModule rvsdgModule)
inline

Definition at line 88 of file RhlsToFirrtlConverter.hpp.

◆ DropMSBs()

circt::firrtl::BitsPrimOp jlm::hls::RhlsToFirrtlConverter::DropMSBs ( mlir::Block *  body,
mlir::Value  value,
int  amount 
)
private

Definition at line 2513 of file RhlsToFirrtlConverter.cpp.

◆ extension()

std::string jlm::hls::RhlsToFirrtlConverter::extension ( )
inlineoverrideprivatevirtual

Implements jlm::hls::BaseHLS.

Definition at line 37 of file RhlsToFirrtlConverter.hpp.

◆ GetBundleType()

circt::firrtl::BundleType jlm::hls::RhlsToFirrtlConverter::GetBundleType ( const circt::firrtl::FIRRTLBaseType &  type)
private

Definition at line 3171 of file RhlsToFirrtlConverter.cpp.

◆ GetClockSignal()

mlir::BlockArgument jlm::hls::RhlsToFirrtlConverter::GetClockSignal ( circt::firrtl::FModuleOp  module)
private

Definition at line 3741 of file RhlsToFirrtlConverter.cpp.

◆ GetConstant()

circt::firrtl::ConstantOp jlm::hls::RhlsToFirrtlConverter::GetConstant ( mlir::Block *  body,
int  size,
int  value 
)
private

Definition at line 3708 of file RhlsToFirrtlConverter.cpp.

◆ GetFirrtlType()

circt::firrtl::FIRRTLBaseType jlm::hls::RhlsToFirrtlConverter::GetFirrtlType ( const jlm::rvsdg::Type type)
private

Definition at line 3887 of file RhlsToFirrtlConverter.cpp.

◆ GetInPort()

mlir::BlockArgument jlm::hls::RhlsToFirrtlConverter::GetInPort ( circt::firrtl::FModuleOp &  module,
size_t  portNr 
)
private

Definition at line 3232 of file RhlsToFirrtlConverter.cpp.

◆ GetInstancePort()

mlir::OpResult jlm::hls::RhlsToFirrtlConverter::GetInstancePort ( circt::firrtl::InstanceOp &  instance,
std::string  portName 
)
private

Definition at line 3218 of file RhlsToFirrtlConverter.cpp.

◆ GetIntType() [1/2]

circt::firrtl::IntType jlm::hls::RhlsToFirrtlConverter::GetIntType ( const jlm::rvsdg::Type type,
int  extend = 0 
)
private

Definition at line 3881 of file RhlsToFirrtlConverter.cpp.

◆ GetIntType() [2/2]

circt::firrtl::IntType jlm::hls::RhlsToFirrtlConverter::GetIntType ( int  size)
private

Definition at line 3871 of file RhlsToFirrtlConverter.cpp.

◆ GetInvalid()

circt::firrtl::InvalidValueOp jlm::hls::RhlsToFirrtlConverter::GetInvalid ( mlir::Block *  body,
int  size 
)
private

Definition at line 3720 of file RhlsToFirrtlConverter.cpp.

◆ GetModuleName()

std::string jlm::hls::RhlsToFirrtlConverter::GetModuleName ( const rvsdg::Node node)
private

Definition at line 3908 of file RhlsToFirrtlConverter.cpp.

◆ GetOutPort()

mlir::BlockArgument jlm::hls::RhlsToFirrtlConverter::GetOutPort ( circt::firrtl::FModuleOp &  module,
size_t  portNr 
)
private

Definition at line 3238 of file RhlsToFirrtlConverter.cpp.

◆ GetPort()

mlir::BlockArgument jlm::hls::RhlsToFirrtlConverter::GetPort ( circt::firrtl::FModuleOp &  module,
std::string  portName 
)
private

Definition at line 3205 of file RhlsToFirrtlConverter.cpp.

◆ GetReadyElement()

circt::firrtl::BundleType::BundleElement jlm::hls::RhlsToFirrtlConverter::GetReadyElement ( )
private

Definition at line 3766 of file RhlsToFirrtlConverter.cpp.

◆ GetResetSignal()

mlir::BlockArgument jlm::hls::RhlsToFirrtlConverter::GetResetSignal ( circt::firrtl::FModuleOp  module)
private

Definition at line 3754 of file RhlsToFirrtlConverter.cpp.

◆ GetSubfield() [1/2]

circt::firrtl::SubfieldOp jlm::hls::RhlsToFirrtlConverter::GetSubfield ( mlir::Block *  body,
mlir::Value  value,
::llvm::StringRef  fieldName 
)
private

Definition at line 3193 of file RhlsToFirrtlConverter.cpp.

◆ GetSubfield() [2/2]

circt::firrtl::SubfieldOp jlm::hls::RhlsToFirrtlConverter::GetSubfield ( mlir::Block *  body,
mlir::Value  value,
int  index 
)
private

Definition at line 3184 of file RhlsToFirrtlConverter.cpp.

◆ GetText()

std::string jlm::hls::RhlsToFirrtlConverter::GetText ( llvm::LlvmRvsdgModule )
inlineoverridevirtual

Implements jlm::hls::BaseHLS.

Definition at line 44 of file RhlsToFirrtlConverter.hpp.

◆ GetValidElement()

circt::firrtl::BundleType::BundleElement jlm::hls::RhlsToFirrtlConverter::GetValidElement ( )
private

Definition at line 3777 of file RhlsToFirrtlConverter.cpp.

◆ InitializeMemReq()

void jlm::hls::RhlsToFirrtlConverter::InitializeMemReq ( circt::firrtl::FModuleOp  module)
private

Definition at line 3788 of file RhlsToFirrtlConverter.cpp.

◆ IsIdentityMapping()

bool jlm::hls::RhlsToFirrtlConverter::IsIdentityMapping ( const rvsdg::MatchOperation op)
private

Definition at line 3991 of file RhlsToFirrtlConverter.cpp.

◆ MlirGen() [1/4]

circt::firrtl::FModuleLike jlm::hls::RhlsToFirrtlConverter::MlirGen ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 2368 of file RhlsToFirrtlConverter.cpp.

◆ MlirGen() [2/4]

circt::firrtl::CircuitOp jlm::hls::RhlsToFirrtlConverter::MlirGen ( const rvsdg::LambdaNode lamdaNode)

Definition at line 2732 of file RhlsToFirrtlConverter.cpp.

◆ MlirGen() [3/4]

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGen ( hls::LoopNode loopNode,
mlir::Block *  circuitBody 
)
private

Definition at line 2477 of file RhlsToFirrtlConverter.cpp.

◆ MlirGen() [4/4]

circt::firrtl::FModuleLike jlm::hls::RhlsToFirrtlConverter::MlirGen ( rvsdg::Region subRegion,
mlir::Block *  circuitBody 
)
private

Definition at line 2564 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenAddrQueue()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenAddrQueue ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 1968 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenBranch()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenBranch ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 2321 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenBuffer()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenBuffer ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 1828 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenDMux()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenDMux ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 2136 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenExtModule()

circt::firrtl::FExtModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenExtModule ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 4084 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenFork()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenFork ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 528 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenHlsDLoad()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenHlsDLoad ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 1124 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenHlsLoad()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenHlsLoad ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 951 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenHlsLocalMem()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenHlsLocalMem ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 1170 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenHlsMemReq()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenHlsMemReq ( const jlm::rvsdg::SimpleNode node)
private

Generate a FIRRTL module for a HLS memory request node that implements the functionality for performing memory requests.

Parameters
nodeThe HLS memory request node.
Returns
The generated FIRRTL module.

Definition at line 811 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenHlsMemResp()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenHlsMemResp ( const jlm::rvsdg::SimpleNode node)
private

Generate a FIRRTL module for a HLS memory response node that implements the functionality for retreiving memory responses.

Parameters
nodeThe HLS memory response node.
Returns
The generated FIRRTL module.

Definition at line 722 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenHlsStore()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenHlsStore ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 1377 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenLoopConstBuffer()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenLoopConstBuffer ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 473 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenMem()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenMem ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 1477 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenNDMux()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenNDMux ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 2274 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenPredicationBuffer()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenPredicationBuffer ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 1763 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenPrint()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenPrint ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 1728 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenSimpleNode()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenSimpleNode ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 19 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenSink()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenSink ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 448 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenStateGate()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenStateGate ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 630 of file RhlsToFirrtlConverter.cpp.

◆ MlirGenTrigger()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::MlirGenTrigger ( const jlm::rvsdg::SimpleNode node)
private

Definition at line 1694 of file RhlsToFirrtlConverter.cpp.

◆ nodeToModule()

circt::firrtl::FModuleOp jlm::hls::RhlsToFirrtlConverter::nodeToModule ( const jlm::rvsdg::Node node,
bool  mem = false 
)
private

Definition at line 3816 of file RhlsToFirrtlConverter.cpp.

◆ operator=() [1/2]

RhlsToFirrtlConverter& jlm::hls::RhlsToFirrtlConverter::operator= ( const RhlsToFirrtlConverter )
delete

◆ operator=() [2/2]

RhlsToFirrtlConverter& jlm::hls::RhlsToFirrtlConverter::operator= ( RhlsToFirrtlConverter &&  )
delete

◆ toString()

std::string jlm::hls::RhlsToFirrtlConverter::toString ( const circt::firrtl::CircuitOp  circuit)
private

Definition at line 4057 of file RhlsToFirrtlConverter.cpp.

◆ ToString()

std::string jlm::hls::RhlsToFirrtlConverter::ToString ( llvm::LlvmRvsdgModule rvsdgModule)
inline

Definition at line 77 of file RhlsToFirrtlConverter.hpp.

◆ TraceArgument()

jlm::rvsdg::Output * jlm::hls::RhlsToFirrtlConverter::TraceArgument ( rvsdg::RegionArgument arg)
private

Definition at line 2525 of file RhlsToFirrtlConverter.cpp.

◆ TraceStructuralOutput()

rvsdg::Output * jlm::hls::RhlsToFirrtlConverter::TraceStructuralOutput ( rvsdg::StructuralOutput out)
private

Definition at line 2698 of file RhlsToFirrtlConverter.cpp.

◆ WriteCircuitToFile()

void jlm::hls::RhlsToFirrtlConverter::WriteCircuitToFile ( const circt::firrtl::CircuitOp  circuit,
std::string  name 
)

Definition at line 4025 of file RhlsToFirrtlConverter.cpp.

◆ WriteModuleToFile()

void jlm::hls::RhlsToFirrtlConverter::WriteModuleToFile ( const circt::firrtl::FModuleOp  fModuleOp,
const rvsdg::Node node 
)

Definition at line 4005 of file RhlsToFirrtlConverter.cpp.

Member Data Documentation

◆ Builder_

std::unique_ptr<::mlir::OpBuilder> jlm::hls::RhlsToFirrtlConverter::Builder_
private

Definition at line 294 of file RhlsToFirrtlConverter.hpp.

◆ Context_

std::unique_ptr<::mlir::MLIRContext> jlm::hls::RhlsToFirrtlConverter::Context_
private

Definition at line 295 of file RhlsToFirrtlConverter.hpp.

◆ DefaultFIRVersion_

const circt::firrtl::FIRVersion jlm::hls::RhlsToFirrtlConverter::DefaultFIRVersion_
private

Definition at line 296 of file RhlsToFirrtlConverter.hpp.

◆ modules

std::unordered_map<std::string, circt::firrtl::FModuleLike> jlm::hls::RhlsToFirrtlConverter::modules
private

Definition at line 103 of file RhlsToFirrtlConverter.hpp.


The documentation for this class was generated from the following files: