57 const auto & graph =
rm.Rvsdg();
58 const auto rootRegion = &graph.GetRootRegion();
61 throw std::logic_error(
"Root should have only one node now");
67 throw std::logic_error(
"Node needs to be a lambda");
78 std::unordered_set<rvsdg::Output *> visited;
119 lambda->PruneLambdaInputs();
static jlm::util::StatisticsCollector statisticsCollector
static std::vector< jlm::rvsdg::Output * > create(jlm::rvsdg::Output &value, size_t capacity, bool pass_through=false)
~StreamConversion() noexcept override
void Run(rvsdg::RvsdgModule &rvsdgModule, util::StatisticsCollector &statisticsCollector) override
Perform RVSDG transformation.
void trace_function_calls(rvsdg::Output *output, std::vector< rvsdg::SimpleNode * > &calls, std::unordered_set< rvsdg::Output * > &visited)
void ConnectStreamBuffer(rvsdg::SimpleNode *enq_call, rvsdg::SimpleNode *deq_call)
rvsdg::Output * route_to_region_rhls(rvsdg::Region *target, rvsdg::Output *out)
const llvm::IntegerConstantOperation * trace_constant(const rvsdg::Output *dst)
static void stream_conv(rvsdg::RvsdgModule &rm)
const int DefaultBufferCapacity
std::vector< rvsdg::LambdaNode::ContextVar > find_function_arguments(const rvsdg::LambdaNode *lambda, std::string name_contains)
static void remove(Node *node)
@ State
Designate a state type.
NodeType * TryGetOwnerNode(const rvsdg::Input &input) noexcept
Checks if this is an input to a node of specified type.