Jlm
add-forks.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_RVSDG2RHLS_ADD_FORKS_HPP
7 #define JLM_HLS_BACKEND_RVSDG2RHLS_ADD_FORKS_HPP
8 
10 #include <jlm/rvsdg/region.hpp>
12 
13 namespace jlm::hls
14 {
15 
22 {
23 public:
24  ~ForkInsertion() noexcept override;
25 
28  {}
29 
30  void
31  Run(rvsdg::RvsdgModule & module, util::StatisticsCollector & statisticsCollector) override;
32 
33  static void
34  CreateAndRun(rvsdg::RvsdgModule & module, util::StatisticsCollector & statisticsCollector);
35 
36 private:
37  static void
39 
40  static void
42 
43  [[nodiscard]] static bool
44  IsConstantFork(const rvsdg::Output & output);
45 };
46 
47 }
48 #endif // JLM_HLS_BACKEND_RVSDG2RHLS_ADD_FORKS_HPP
void Run(rvsdg::RvsdgModule &module, util::StatisticsCollector &statisticsCollector) override
Perform RVSDG transformation.
Definition: add-forks.cpp:15
static bool IsConstantFork(const rvsdg::Output &output)
Definition: add-forks.cpp:89
static void CreateAndRun(rvsdg::RvsdgModule &module, util::StatisticsCollector &statisticsCollector)
Definition: add-forks.cpp:21
~ForkInsertion() noexcept override
static void AddForksToRegion(rvsdg::Region &region)
Definition: add-forks.cpp:30
static void AddForkToOutput(rvsdg::Output &output)
Definition: add-forks.cpp:63
Represent acyclic RVSDG subgraphs.
Definition: region.hpp:213
Represents an RVSDG transformation.