Jlm
Namespaces | Functions | Variables
add-buffers.cpp File Reference
#include <jlm/hls/backend/rvsdg2rhls/add-buffers.hpp>
#include <jlm/hls/backend/rvsdg2rhls/hls-function-util.hpp>
#include <jlm/hls/backend/rvsdg2rhls/rvsdg2rhls.hpp>
#include <jlm/hls/ir/hls.hpp>
#include <jlm/hls/util/view.hpp>
#include <jlm/rvsdg/traverser.hpp>
Include dependency graph for add-buffers.cpp:

Go to the source code of this file.

Namespaces

 jlm
 
 jlm::hls
 

Functions

static rvsdg::Input * jlm::hls::FindUserNode (rvsdg::Output *out)
 
static void jlm::hls::PlaceBuffer (rvsdg::Output *out, size_t capacity, bool passThrough)
 
static void jlm::hls::OptimizeAddrQ (rvsdg::SimpleNode *node)
 
static void jlm::hls::OptimizeBuffer (rvsdg::SimpleNode *node)
 
static void jlm::hls::OptimizeLoop (LoopNode *loopNode)
 
static void jlm::hls::AddBuffers (rvsdg::Region *region)
 
static constexpr uint32_t jlm::hls::round_up_pow2 (uint32_t x)
 
static void jlm::hls::MaximizeBuffers (rvsdg::Region *region)
 
static std::vector< size_t > jlm::hls::NodeCycles (rvsdg::SimpleNode *node, std::vector< size_t > &input_cycles)
 
static std::vector< size_t > jlm::hls::NodeCapacity (rvsdg::SimpleNode *node, std::vector< size_t > &input_capacities)
 
static void jlm::hls::CreateLoopFrontier (const LoopNode *loop, std::unordered_map< rvsdg::Output *, size_t > &output_cycles, std::unordered_set< rvsdg::Input * > &frontier, std::unordered_set< BackEdgeResult * > &stream_backedges, std::unordered_set< rvsdg::SimpleNode * > &top_muxes)
 
static void jlm::hls::CalculateLoopCycleDepth (LoopNode *loop, std::unordered_map< rvsdg::Output *, size_t > &output_cycles, bool analyze_inner_loop=false)
 
static void jlm::hls::PushCycleFrontier (std::unordered_map< rvsdg::Output *, size_t > &output_cycles, std::unordered_set< rvsdg::Input * > &frontier, std::unordered_set< BackEdgeResult * > &stream_backedges, std::unordered_set< rvsdg::SimpleNode * > &top_muxes)
 
void jlm::hls::setMemoryLatency (size_t memoryLatency)
 
static size_t jlm::hls::PlaceBufferLoop (rvsdg::Output *out, size_t min_capacity, bool passThrough)
 
static void jlm::hls::AdjustLoopBuffers (LoopNode *loop, std::unordered_map< rvsdg::Output *, size_t > &output_cycles, std::unordered_map< rvsdg::Output *, size_t > &buffer_capacity, bool analyze_inner_loop=false)
 
static void jlm::hls::CalculateLoopDepths (rvsdg::Region *region)
 

Variables

static size_t jlm::hls::MemoryLatency = 10
 
const size_t jlm::hls::UnlimitedBufferCapacity = std::numeric_limits<uint32_t>::max()
 
const size_t jlm::hls::MaximumBufferSize = 512