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

If-Conversion Transformation. More...

#include <IfConversion.hpp>

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

Public Member Functions

 ~IfConversion () noexcept override
 
 IfConversion ()
 
 IfConversion (const IfConversion &)=delete
 
 IfConversion (IfConversion &&)=delete
 
IfConversionoperator= (const IfConversion &)=delete
 
IfConversionoperator= (IfConversion &&)=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 HandleRegion (rvsdg::Region &region)
 
static void HandleGammaNode (const rvsdg::GammaNode &gammaNode)
 

Detailed Description

If-Conversion Transformation.

The If-Conversion transformation converts gamma outputs to select operations iff:

  1. A gamma node has only two subregions
  2. The value in every subregion that leads to the gamma output are only routed through the subregion.

Definition at line 28 of file IfConversion.hpp.

Constructor & Destructor Documentation

◆ ~IfConversion()

jlm::llvm::IfConversion::~IfConversion ( )
overridedefaultnoexcept

◆ IfConversion() [1/3]

jlm::llvm::IfConversion::IfConversion ( )

Definition at line 49 of file IfConversion.cpp.

◆ IfConversion() [2/3]

jlm::llvm::IfConversion::IfConversion ( const IfConversion )
delete

◆ IfConversion() [3/3]

jlm::llvm::IfConversion::IfConversion ( IfConversion &&  )
delete

Member Function Documentation

◆ HandleGammaNode()

void jlm::llvm::IfConversion::HandleGammaNode ( const rvsdg::GammaNode gammaNode)
staticprivate

Definition at line 94 of file IfConversion.cpp.

◆ HandleRegion()

void jlm::llvm::IfConversion::HandleRegion ( rvsdg::Region region)
staticprivate

Definition at line 66 of file IfConversion.cpp.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ Run()

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


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