Jlm
Loading...
Searching...
No Matches
mem-conv.hpp
Go to the documentation of this file.
1/*
2 * Copyright 2021 David Metz <david.c.metz@ntnu.no>
3 * See COPYING for terms of redistribution.
4 */
5
6#ifndef JLM_BACKEND_HLS_RVSDG2RHLS_MEM_CONV_HPP
7#define JLM_BACKEND_HLS_RVSDG2RHLS_MEM_CONV_HPP
8
12
13namespace jlm::hls
14{
15
17{
18 [[nodiscard]] bool
20 {
21 return loadNodes.empty() && storeNodes.empty() && decoupleNodes.empty();
22 }
23
24 std::vector<rvsdg::Node *> loadNodes{};
25 std::vector<rvsdg::Node *> storeNodes{};
26 std::vector<rvsdg::Node *> decoupleNodes{};
27};
28
35std::vector<TracedPointerNodes>
37
40 const jlm::rvsdg::LambdaNode * lambda,
42
65
66} // namespace jlm::hls
67
68#endif // JLM_BACKEND_HLS_RVSDG2RHLS_MEM_CONV_HPP
static jlm::util::StatisticsCollector statisticsCollector
~MemoryConverter() noexcept override
void Run(rvsdg::RvsdgModule &rvsdgModule, util::StatisticsCollector &statisticsCollector) override
Perform RVSDG transformation.
Definition mem-conv.cpp:813
static void CreateAndRun(rvsdg::RvsdgModule &rvsdgModule, util::StatisticsCollector &statisticsCollector)
Definition mem-conv.hpp:59
Represents an RVSDG transformation.
rvsdg::SimpleNode * find_decouple_response(const rvsdg::LambdaNode *lambda, const llvm::IntegerConstantOperation *request_constant)
Definition mem-conv.cpp:27
std::vector< TracedPointerNodes > TracePointerArguments(const rvsdg::LambdaNode *lambda)
Definition mem-conv.cpp:339
NodeType * TryGetOwnerNode(const rvsdg::Input &input) noexcept
Checks if this is an input to a node of specified type.
Definition node.hpp:872
std::vector< rvsdg::Node * > loadNodes
Definition mem-conv.hpp:24
std::vector< rvsdg::Node * > decoupleNodes
Definition mem-conv.hpp:26
bool isEmpty() const noexcept
Definition mem-conv.hpp:19
std::vector< rvsdg::Node * > storeNodes
Definition mem-conv.hpp:25