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

#include <IOStateElimination.hpp>

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

Public Member Functions

 ~IOStateElimination () noexcept override
 
 IOStateElimination ()
 
 IOStateElimination (const IOStateElimination &)=delete
 
IOStateEliminationoperator= (const IOStateElimination &)=delete
 
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 eliminateIOStates (rvsdg::Region &region, rvsdg::Output &ioStateArgument)
 

Detailed Description

This pass ensures that all IO state outputs in the graph become dead by making the IO state inputs of all nodes directly dependent on the IO state argument of the lambda nodes. This effectively renders all nodes independent with respect to IO states.

FIXME: This pass is misnamed. FIXME: We might want to merge this pass with the jlm::hls::IOBarrierRemoval transformation

Definition at line 28 of file IOStateElimination.hpp.

Constructor & Destructor Documentation

◆ ~IOStateElimination()

jlm::hls::IOStateElimination::~IOStateElimination ( )
overridedefaultnoexcept

◆ IOStateElimination() [1/2]

jlm::hls::IOStateElimination::IOStateElimination ( )
inline

Definition at line 33 of file IOStateElimination.hpp.

◆ IOStateElimination() [2/2]

jlm::hls::IOStateElimination::IOStateElimination ( const IOStateElimination )
delete

Member Function Documentation

◆ eliminateIOStates()

void jlm::hls::IOStateElimination::eliminateIOStates ( rvsdg::Region region,
rvsdg::Output ioStateArgument 
)
staticprivate

Definition at line 14 of file IOStateElimination.cpp.

◆ operator=()

IOStateElimination& jlm::hls::IOStateElimination::operator= ( const IOStateElimination )
delete

◆ Run()

void jlm::hls::IOStateElimination::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 43 of file IOStateElimination.cpp.


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