Jlm
decouple-mem-state.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2025 David Metz <david.c.metz@ntnu.no>
3  * See COPYING for terms of redistribution.
4  */
5 
6 #ifndef JLM_HLS_BACKEND_RVSDG2RHLS_DECOUPLE_MEM_STATE_HPP
7 #define JLM_HLS_BACKEND_RVSDG2RHLS_DECOUPLE_MEM_STATE_HPP
8 
10 
11 namespace jlm::hls
12 {
13 
14 void
15 convert_loop_state_to_lcb(rvsdg::Input * loop_state_input);
16 
18 {
19 public:
20  ~MemoryStateDecoupling() noexcept override;
21 
23 
25 
27  operator=(const MemoryStateDecoupling &) = delete;
28 
29  void
30  Run(rvsdg::RvsdgModule & rvsdgModule, util::StatisticsCollector & statisticsCollector) override;
31 
32  static void
33  CreateAndRun(rvsdg::RvsdgModule & rvsdgModule, util::StatisticsCollector & statisticsCollector)
34  {
35  MemoryStateDecoupling memoryStateDecoupler;
36  memoryStateDecoupler.Run(rvsdgModule, statisticsCollector);
37  }
38 };
39 
40 }
41 
42 #endif // JLM_HLS_BACKEND_RVSDG2RHLS_DECOUPLE_MEM_STATE_HPP
void Run(rvsdg::RvsdgModule &rvsdgModule, util::StatisticsCollector &statisticsCollector) override
Perform RVSDG transformation.
static void CreateAndRun(rvsdg::RvsdgModule &rvsdgModule, util::StatisticsCollector &statisticsCollector)
~MemoryStateDecoupling() noexcept override
Represents an RVSDG transformation.
void convert_loop_state_to_lcb(rvsdg::Input *loop_state_input)