Jlm
dot-hls.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_HLS_BACKEND_RHLS2FIRRTL_DOT_HLS_HPP
7 #define JLM_HLS_BACKEND_RHLS2FIRRTL_DOT_HLS_HPP
8 
10 #include <jlm/hls/ir/hls.hpp>
11 
12 namespace jlm::hls
13 {
14 
15 class DotHLS : public BaseHLS
16 {
17  std::string
18  extension() override;
19 
20  std::string
21  GetText(llvm::LlvmRvsdgModule & rm) override;
22 
23 private:
24  std::string
26 
27  std::string
29 
30  std::string
31  node_to_dot(const rvsdg::Node * node);
32 
33  std::string
34  edge(std::string src, std::string snk, const jlm::rvsdg::Type & type, bool back = false);
35 
36  std::string
37  loop_to_dot(LoopNode * ln);
38 
39  void
41 
42  std::string
44 
45  int loop_ctr = 0;
46 };
47 
48 }
49 
50 #endif // JLM_HLS_BACKEND_RHLS2FIRRTL_DOT_HLS_HPP
std::string edge(std::string src, std::string snk, const jlm::rvsdg::Type &type, bool back=false)
Definition: dot-hls.cpp:166
std::string loop_to_dot(LoopNode *ln)
Definition: dot-hls.cpp:194
void prepare_loop_out_port(LoopNode *ln)
Definition: dot-hls.cpp:297
std::string result_to_dot(rvsdg::RegionResult *port)
Definition: dot-hls.cpp:48
std::string node_to_dot(const rvsdg::Node *node)
Definition: dot-hls.cpp:67
std::string argument_to_dot(rvsdg::RegionArgument *port)
Definition: dot-hls.cpp:29
std::string subregion_to_dot(rvsdg::Region *sr)
Definition: dot-hls.cpp:349
std::string GetText(llvm::LlvmRvsdgModule &rm) override
Definition: dot-hls.cpp:23
std::string extension() override
Definition: dot-hls.cpp:17
Represents the argument of a region.
Definition: region.hpp:41
Represents the result of a region.
Definition: region.hpp:120
Represent acyclic RVSDG subgraphs.
Definition: region.hpp:213
static std::string type(const Node *n)
Definition: view.cpp:255