Jlm
Public Member Functions | Static Private Member Functions | List of all members
jlm::hls::IOBarrierRemoval Class Referencefinal

Removes all IOBarrier nodes from the RVSDG. More...

#include <IOBarrierRemoval.hpp>

Inheritance diagram for jlm::hls::IOBarrierRemoval:
Inheritance graph
[legend]
Collaboration diagram for jlm::hls::IOBarrierRemoval:
Collaboration graph
[legend]

Public Member Functions

 ~IOBarrierRemoval () noexcept override
 
 IOBarrierRemoval ()
 
void Run (rvsdg::RvsdgModule &module, util::StatisticsCollector &statisticsCollector) override
 Perform RVSDG transformation. More...
 
- Public Member Functions inherited from jlm::rvsdg::Transformation
virtual ~Transformation () noexcept
 
 Transformation (std::string_view Name)
 
const std::string_view & GetName () const noexcept
 
void Run (RvsdgModule &module)
 Perform RVSDG transformation. More...
 

Static Private Member Functions

static void RemoveIOBarrierFromRegion (rvsdg::Region &region)
 

Detailed Description

Removes all IOBarrier nodes from the RVSDG.

In HLS, we can safely assume that we will not encounter any undefined behavior. However, this means also that we can relax the sequentialization restrictions on certain operations, such as division or modulo operations, with respect to each other. Ultimately, it means that we can remove IOBarrier nodes from the RVSDG when performing HLS.

See also
IOBarrierOperation

Definition at line 29 of file IOBarrierRemoval.hpp.

Constructor & Destructor Documentation

◆ ~IOBarrierRemoval()

jlm::hls::IOBarrierRemoval::~IOBarrierRemoval ( )
overridedefaultnoexcept

◆ IOBarrierRemoval()

jlm::hls::IOBarrierRemoval::IOBarrierRemoval ( )
inline

Definition at line 34 of file IOBarrierRemoval.hpp.

Member Function Documentation

◆ RemoveIOBarrierFromRegion()

void jlm::hls::IOBarrierRemoval::RemoveIOBarrierFromRegion ( rvsdg::Region region)
staticprivate

Definition at line 24 of file IOBarrierRemoval.cpp.

◆ Run()

void jlm::hls::IOBarrierRemoval::Run ( rvsdg::RvsdgModule module,
util::StatisticsCollector statisticsCollector 
)
overridevirtual

Perform RVSDG transformation.

Note
This method is expected to be called multiple times. An implementation is required to reset the objects' internal state to ensure correct behavior after every invocation.
Parameters
moduleRVSDG module the transformation is performed on.
statisticsCollectorStatistics collector for collecting transformation statistics.

Implements jlm::rvsdg::Transformation.

Definition at line 18 of file IOBarrierRemoval.cpp.


The documentation for this class was generated from the following files: