Jlm
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
jlm::rvsdg::TransformationSequence Class Referencefinal

#include <Transformation.hpp>

Inheritance diagram for jlm::rvsdg::TransformationSequence:
Inheritance graph
[legend]
Collaboration diagram for jlm::rvsdg::TransformationSequence:
Collaboration graph
[legend]

Classes

class  Statistics
 

Public Member Functions

 ~TransformationSequence () noexcept override
 
 TransformationSequence (std::vector< std::shared_ptr< Transformation >> transformations, DotWriter &dotWriter, const bool dumpRvsdgDotGraphs)
 
void Run (RvsdgModule &rvsdgModule, util::StatisticsCollector &statisticsCollector) override
 Perform RVSDG transformations. 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 Public Member Functions

static void CreateAndRun (RvsdgModule &rvsdgModule, util::StatisticsCollector &statisticsCollector, std::vector< std::shared_ptr< Transformation >> transformations, DotWriter &dotWriter, const bool dumpRvsdgDotGraphs)
 Creates a transformation sequence and invokes its Run() method. More...
 

Private Member Functions

void DumpDotGraphs (RvsdgModule &rvsdgModule, const util::FilePath &filePath, const std::string &passName, size_t numPass) const
 

Private Attributes

DotWriterDotWriter_
 
bool DumpRvsdgDotGraphs_
 
std::vector< std::shared_ptr< Transformation > > Transformations_
 

Detailed Description

Sequentially applies a list of RVSDG transformations.

Definition at line 71 of file Transformation.hpp.

Constructor & Destructor Documentation

◆ ~TransformationSequence()

jlm::rvsdg::TransformationSequence::~TransformationSequence ( )
overridedefaultnoexcept

◆ TransformationSequence()

jlm::rvsdg::TransformationSequence::TransformationSequence ( std::vector< std::shared_ptr< Transformation >>  transformations,
DotWriter dotWriter,
const bool  dumpRvsdgDotGraphs 
)
inlineexplicit

Definition at line 78 of file Transformation.hpp.

Member Function Documentation

◆ CreateAndRun()

static void jlm::rvsdg::TransformationSequence::CreateAndRun ( RvsdgModule rvsdgModule,
util::StatisticsCollector statisticsCollector,
std::vector< std::shared_ptr< Transformation >>  transformations,
DotWriter dotWriter,
const bool  dumpRvsdgDotGraphs 
)
inlinestatic

Creates a transformation sequence and invokes its Run() method.

Parameters
rvsdgModuleRVSDG module the transformation is performed on.
statisticsCollectorStatistics collector for collecting transformation statistics.
transformationsThe transformations that are sequentially applied to rvsdgModule.
dotWriterThe DOT writer for dumping the RVSDG graphs.
dumpRvsdgDotGraphsDetermines whether to dump the RVSDG graphs.

Definition at line 107 of file Transformation.hpp.

◆ DumpDotGraphs()

void jlm::rvsdg::TransformationSequence::DumpDotGraphs ( RvsdgModule rvsdgModule,
const util::FilePath filePath,
const std::string &  passName,
size_t  numPass 
) const
private

Definition at line 134 of file Transformation.cpp.

◆ Run()

void jlm::rvsdg::TransformationSequence::Run ( RvsdgModule rvsdgModule,
util::StatisticsCollector statisticsCollector 
)
overridevirtual

Perform RVSDG transformations.

Parameters
rvsdgModuleRVSDG module the transformation is performed on.
statisticsCollectorStatistics collector for collecting transformation statistics.

Implements jlm::rvsdg::Transformation.

Definition at line 79 of file Transformation.cpp.

Member Data Documentation

◆ DotWriter_

DotWriter& jlm::rvsdg::TransformationSequence::DotWriter_
private

Definition at line 129 of file Transformation.hpp.

◆ DumpRvsdgDotGraphs_

bool jlm::rvsdg::TransformationSequence::DumpRvsdgDotGraphs_
private

Definition at line 130 of file Transformation.hpp.

◆ Transformations_

std::vector<std::shared_ptr<Transformation> > jlm::rvsdg::TransformationSequence::Transformations_
private

Definition at line 131 of file Transformation.hpp.


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