Jlm
IOStateElimination.hpp
Go to the documentation of this file.
1 /*
2  * Copyright 2025 Nico Reißmann <nico.reissmann@gmail.com>
3  * See COPYING for terms of redistribution.
4  */
5 
6 #ifndef JLM_HLS_OPT_IOSTATEELIMINATION_HPP
7 #define JLM_HLS_OPT_IOSTATEELIMINATION_HPP
8 
10 
11 namespace jlm::rvsdg
12 {
13 class Output;
14 class Region;
15 }
16 
17 namespace jlm::hls
18 {
19 
29 {
30 public:
31  ~IOStateElimination() noexcept override;
32 
35  {}
36 
38 
40  operator=(const IOStateElimination &) = delete;
41 
42  void
43  Run(rvsdg::RvsdgModule & module, util::StatisticsCollector & statisticsCollector) override;
44 
45 private:
46  static void
47  eliminateIOStates(rvsdg::Region & region, rvsdg::Output & ioStateArgument);
48 };
49 
50 }
51 
52 #endif
IOStateElimination & operator=(const IOStateElimination &)=delete
~IOStateElimination() noexcept override
static void eliminateIOStates(rvsdg::Region &region, rvsdg::Output &ioStateArgument)
IOStateElimination(const IOStateElimination &)=delete
void Run(rvsdg::RvsdgModule &module, util::StatisticsCollector &statisticsCollector) override
Perform RVSDG transformation.
Represent acyclic RVSDG subgraphs.
Definition: region.hpp:213
Represents an RVSDG transformation.