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

RVSDG tree printer debug pass. More...

#include <RvsdgTreePrinter.hpp>

Inheritance diagram for jlm::llvm::RvsdgTreePrinter:
Inheritance graph
[legend]
Collaboration diagram for jlm::llvm::RvsdgTreePrinter:
Collaboration graph
[legend]

Classes

class  Configuration
 
class  Statistics
 

Public Member Functions

 ~RvsdgTreePrinter () noexcept override
 
 RvsdgTreePrinter (Configuration configuration)
 
 RvsdgTreePrinter (const RvsdgTreePrinter &)=delete
 
 RvsdgTreePrinter (RvsdgTreePrinter &&)=delete
 
RvsdgTreePrinteroperator= (const RvsdgTreePrinter &)=delete
 
RvsdgTreePrinteroperator= (RvsdgTreePrinter &&)=delete
 
void Run (rvsdg::RvsdgModule &rvsdgModule, 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...
 

Private Member Functions

util::AnnotationMap ComputeAnnotationMap (const rvsdg::Graph &rvsdg) const
 

Static Private Member Functions

static void AnnotateNumNodes (const rvsdg::Graph &rvsdg, const std::function< bool(const rvsdg::Node &)> &match, const std::string_view &label, util::AnnotationMap &annotationMap)
 
static void AnnotateNumMemoryStateInputsOutputs (const rvsdg::Graph &rvsdg, util::AnnotationMap &annotationMap)
 
static bool IsMemoryStateInput (const rvsdg::Input *input) noexcept
 
static bool IsMemoryStateOutput (const rvsdg::Output *output) noexcept
 

Private Attributes

Configuration Configuration_
 

Detailed Description

RVSDG tree printer debug pass.

Prints an RVSDG tree to a file.

Definition at line 33 of file RvsdgTreePrinter.hpp.

Constructor & Destructor Documentation

◆ ~RvsdgTreePrinter()

jlm::llvm::RvsdgTreePrinter::~RvsdgTreePrinter ( )
overridedefaultnoexcept

◆ RvsdgTreePrinter() [1/3]

jlm::llvm::RvsdgTreePrinter::RvsdgTreePrinter ( Configuration  configuration)
inlineexplicit

Definition at line 102 of file RvsdgTreePrinter.hpp.

◆ RvsdgTreePrinter() [2/3]

jlm::llvm::RvsdgTreePrinter::RvsdgTreePrinter ( const RvsdgTreePrinter )
delete

◆ RvsdgTreePrinter() [3/3]

jlm::llvm::RvsdgTreePrinter::RvsdgTreePrinter ( RvsdgTreePrinter &&  )
delete

Member Function Documentation

◆ AnnotateNumMemoryStateInputsOutputs()

void jlm::llvm::RvsdgTreePrinter::AnnotateNumMemoryStateInputsOutputs ( const rvsdg::Graph rvsdg,
util::AnnotationMap annotationMap 
)
staticprivate

Adds an annotation to annotationMap that indicates the number of inputs/outputs of type MemoryStateType.

Parameters
rvsdgThe RVSDG for which to compute the annotation.
annotationMapThe annotation map in which the annotation is inserted.
See also
NumMemoryStateInputsOutputs

Definition at line 168 of file RvsdgTreePrinter.cpp.

◆ AnnotateNumNodes()

void jlm::llvm::RvsdgTreePrinter::AnnotateNumNodes ( const rvsdg::Graph rvsdg,
const std::function< bool(const rvsdg::Node &)> &  match,
const std::string_view &  label,
util::AnnotationMap annotationMap 
)
staticprivate

Adds an annotation to annotationMap that indicates the number of RVSDG nodes for regions and structural nodes.

Parameters
rvsdgThe RVSDG for which to compute the annotation.
matchReturns true if a node should be counted, otherwise false.
labelThe label used for annotating the region tree.
annotationMapThe annotation map in which the annotation is inserted.
See also
NumRvsdgNodes

Definition at line 128 of file RvsdgTreePrinter.cpp.

◆ ComputeAnnotationMap()

util::AnnotationMap jlm::llvm::RvsdgTreePrinter::ComputeAnnotationMap ( const rvsdg::Graph rvsdg) const
private

Computes a map with annotations based on the required jlm::util::Annotations in the Configuration for the individual regions and structural nodes of the region tree.

Parameters
rvsdgThe RVSDG for which to compute the annotations.
Returns
An instance of AnnotationMap.

Definition at line 71 of file RvsdgTreePrinter.cpp.

◆ IsMemoryStateInput()

bool jlm::llvm::RvsdgTreePrinter::IsMemoryStateInput ( const rvsdg::Input input)
staticprivatenoexcept

Definition at line 236 of file RvsdgTreePrinter.cpp.

◆ IsMemoryStateOutput()

bool jlm::llvm::RvsdgTreePrinter::IsMemoryStateOutput ( const rvsdg::Output output)
staticprivatenoexcept

Definition at line 242 of file RvsdgTreePrinter.cpp.

◆ operator=() [1/2]

RvsdgTreePrinter& jlm::llvm::RvsdgTreePrinter::operator= ( const RvsdgTreePrinter )
delete

◆ operator=() [2/2]

RvsdgTreePrinter& jlm::llvm::RvsdgTreePrinter::operator= ( RvsdgTreePrinter &&  )
delete

◆ Run()

void jlm::llvm::RvsdgTreePrinter::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 51 of file RvsdgTreePrinter.cpp.

Member Data Documentation

◆ Configuration_

Configuration jlm::llvm::RvsdgTreePrinter::Configuration_
private

Definition at line 169 of file RvsdgTreePrinter.hpp.


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