Jlm
Public Member Functions | Private Attributes | List of all members
jlm::rvsdg::Transformation Class Referenceabstract

Represents an RVSDG transformation. More...

#include <Transformation.hpp>

Inheritance diagram for jlm::rvsdg::Transformation:
Inheritance graph
[legend]

Public Member Functions

virtual ~Transformation () noexcept
 
 Transformation (std::string_view Name)
 
const std::string_view & GetName () const noexcept
 
virtual void Run (RvsdgModule &module, util::StatisticsCollector &statisticsCollector)=0
 Perform RVSDG transformation. More...
 
void Run (RvsdgModule &module)
 Perform RVSDG transformation. More...
 

Private Attributes

std::string_view Name_
 

Detailed Description

Represents an RVSDG transformation.

Definition at line 20 of file Transformation.hpp.

Constructor & Destructor Documentation

◆ ~Transformation()

jlm::rvsdg::Transformation::~Transformation ( )
virtualdefaultnoexcept

◆ Transformation()

jlm::rvsdg::Transformation::Transformation ( std::string_view  Name)
inlineexplicit

Definition at line 25 of file Transformation.hpp.

Member Function Documentation

◆ GetName()

const std::string_view& jlm::rvsdg::Transformation::GetName ( ) const
inlinenoexcept

Definition at line 30 of file Transformation.hpp.

◆ Run() [1/2]

void jlm::rvsdg::Transformation::Run ( RvsdgModule module)
inline

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.

Definition at line 58 of file Transformation.hpp.

◆ Run() [2/2]

virtual void jlm::rvsdg::Transformation::Run ( RvsdgModule module,
util::StatisticsCollector statisticsCollector 
)
pure virtual

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.

Implemented in jlm::rvsdg::TransformationSequence, jlm::llvm::ScalarEvolution, jlm::llvm::RvsdgTreePrinter, jlm::llvm::NodeReduction, jlm::llvm::NodeHoisting, jlm::llvm::PredicateCorrelation, jlm::llvm::LoopUnswitching, jlm::llvm::aa::PointsToAnalysisStateEncoder< TPointsToAnalysis, TModRefSummarizer >, jlm::hls::DumpDotTransformation, jlm::hls::UnusedStateRemoval, jlm::hls::ThetaNodeConversion, jlm::hls::StreamConversion, jlm::hls::RhlsDeadNodeElimination, jlm::hls::GammaMerge, jlm::hls::MemoryStateSeparation, jlm::hls::AddressQueueInsertion, jlm::hls::MemoryConverter, jlm::hls::GammaNodeConversion, jlm::hls::ConstantDistribution, jlm::hls::MemoryStateDecoupling, jlm::hls::RhlsVerification, jlm::hls::AllocaNodeConversion, jlm::hls::BufferInsertion, jlm::llvm::LoopUnrolling, jlm::llvm::NodeSinking, jlm::llvm::LoadChainSeparation, jlm::llvm::InvariantValueRedirection, jlm::llvm::FunctionInlining, jlm::llvm::IfConversion, jlm::llvm::DeadNodeElimination, jlm::llvm::CommonNodeElimination, jlm::hls::IOStateElimination, jlm::hls::IOBarrierRemoval, jlm::hls::CommonNodeElimination, jlm::hls::RedundantBufferElimination, jlm::hls::MemoryStateSplitConversion, jlm::hls::SinkInsertion, and jlm::hls::ForkInsertion.

Member Data Documentation

◆ Name_

std::string_view jlm::rvsdg::Transformation::Name_
private

Definition at line 65 of file Transformation.hpp.


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