Jlm
Namespaces | Functions
mem-conv.cpp File Reference
#include <jlm/hls/backend/rvsdg2rhls/hls-function-util.hpp>
#include <jlm/hls/backend/rvsdg2rhls/mem-conv.hpp>
#include <jlm/hls/backend/rvsdg2rhls/rhls-dne.hpp>
#include <jlm/hls/backend/rvsdg2rhls/rvsdg2rhls.hpp>
#include <jlm/hls/backend/rvsdg2rhls/UnusedStateRemoval.hpp>
#include <jlm/hls/ir/hls.hpp>
#include <jlm/llvm/ir/CallSummary.hpp>
#include <jlm/llvm/ir/operators/call.hpp>
#include <jlm/llvm/ir/operators/IntegerOperations.hpp>
#include <jlm/llvm/ir/operators/lambda.hpp>
#include <jlm/llvm/ir/operators/Load.hpp>
#include <jlm/llvm/ir/operators/Store.hpp>
#include <jlm/rvsdg/substitution.hpp>
#include <jlm/rvsdg/theta.hpp>
#include <jlm/rvsdg/traverser.hpp>
#include <jlm/rvsdg/view.hpp>
Include dependency graph for mem-conv.cpp:

Go to the source code of this file.

Namespaces

 jlm
 
 jlm::hls
 

Functions

rvsdg::SimpleNode * jlm::hls::find_decouple_response (const rvsdg::LambdaNode *lambda, const llvm::IntegerConstantOperation *request_constant)
 
static std::pair< rvsdg::Input *, std::vector< rvsdg::Input * > > jlm::hls::TraceEdgeToMerge (rvsdg::Input *state_edge)
 
void jlm::hls::OptimizeResMemState (rvsdg::Output *res_mem_state)
 
void jlm::hls::OptimizeReqMemState (rvsdg::Output *req_mem_state)
 
rvsdg::SimpleNode * jlm::hls::ReplaceDecouple (const rvsdg::LambdaNode *lambda, rvsdg::SimpleNode *decouple_request, rvsdg::Output *resp)
 
void jlm::hls::gather_mem_nodes (rvsdg::Region *region, std::vector< rvsdg::Node * > &loadNodes, std::vector< rvsdg::Node * > &storeNodes, std::vector< rvsdg::Node * > &decoupleNodes, std::unordered_set< rvsdg::Node * > exclude)
 
static void jlm::hls::TracePointer (rvsdg::Output *output, std::unordered_set< rvsdg::Output * > &visited, TracedPointerNodes &tracedPointerNodes)
 
std::vector< TracedPointerNodes > jlm::hls::TracePointerArguments (const rvsdg::LambdaNode *lambda)
 
rvsdg::LambdaNode * jlm::hls::find_containing_lambda (rvsdg::Region *region)
 
static size_t jlm::hls::CalculatePortWidth (const TracedPointerNodes &tracedPointerNodes)
 
static rvsdg::SimpleNode * jlm::hls::ReplaceLoad (rvsdg::SubstitutionMap &smap, const rvsdg::Node *originalLoad, rvsdg::Output *response)
 
static rvsdg::SimpleNode * jlm::hls::ReplaceStore (rvsdg::SubstitutionMap &smap, const rvsdg::Node *originalStore, rvsdg::Output *response)
 
static rvsdg::Output * jlm::hls::ConnectRequestResponseMemPorts (const rvsdg::LambdaNode *lambda, size_t argumentIndex, rvsdg::SubstitutionMap &smap, const std::vector< rvsdg::Node * > &originalLoadNodes, const std::vector< rvsdg::Node * > &originalStoreNodes, const std::vector< rvsdg::Node * > &originalDecoupledNodes)
 
static void jlm::hls::ConvertMemory (rvsdg::RvsdgModule &rvsdgModule)