Jlm
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
jlm::llvm::IOBarrierElimination Class Referencefinal

#include <IOBarrierElimination.hpp>

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

Classes

class  Context
 
class  Statistics
 

Public Member Functions

 ~IOBarrierElimination () override
 
 IOBarrierElimination ()
 
 IOBarrierElimination (const IOBarrierElimination &)=delete
 
 IOBarrierElimination (IOBarrierElimination &&)=delete
 
IOBarrierElimination & operator= (const IOBarrierElimination &)=delete
 
IOBarrierElimination & operator= (IOBarrierElimination &&)=delete
 
void Run (rvsdg::RvsdgModule &module, util::StatisticsCollector &statisticsCollector) override
 Perform RVSDG transformation.
 
- 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.
 

Static Public Member Functions

static void normalizeMemoryHoistBarriers (rvsdg::Region &region)
 

Private Member Functions

void markOutputs (rvsdg::Region &region)
 
void propagateSize (rvsdg::Graph &graph)
 
void encodeSize (rvsdg::Graph &graph)
 
void sweepRegion (rvsdg::Region &region)
 
size_t getDereferenceableSize (const rvsdg::GammaNode::EntryVar &entryVar) const
 

Private Attributes

std::unique_ptr< Context > context_ {}
 

Detailed Description

Definition at line 15 of file IOBarrierElimination.hpp.

Constructor & Destructor Documentation

◆ ~IOBarrierElimination()

jlm::llvm::IOBarrierElimination::~IOBarrierElimination ( )
overridedefault

◆ IOBarrierElimination() [1/3]

jlm::llvm::IOBarrierElimination::IOBarrierElimination ( )

Definition at line 149 of file IOBarrierElimination.cpp.

◆ IOBarrierElimination() [2/3]

jlm::llvm::IOBarrierElimination::IOBarrierElimination ( const IOBarrierElimination &  )
delete

◆ IOBarrierElimination() [3/3]

jlm::llvm::IOBarrierElimination::IOBarrierElimination ( IOBarrierElimination &&  )
delete

Member Function Documentation

◆ encodeSize()

void jlm::llvm::IOBarrierElimination::encodeSize ( rvsdg::Graph &  graph)
private

Definition at line 616 of file IOBarrierElimination.cpp.

◆ getDereferenceableSize()

size_t jlm::llvm::IOBarrierElimination::getDereferenceableSize ( const rvsdg::GammaNode::EntryVar &  entryVar) const
private

Definition at line 309 of file IOBarrierElimination.cpp.

◆ markOutputs()

void jlm::llvm::IOBarrierElimination::markOutputs ( rvsdg::Region &  region)
private

Definition at line 379 of file IOBarrierElimination.cpp.

◆ normalizeMemoryHoistBarriers()

void jlm::llvm::IOBarrierElimination::normalizeMemoryHoistBarriers ( rvsdg::Region &  region)
static

Definition at line 248 of file IOBarrierElimination.cpp.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ propagateSize()

void jlm::llvm::IOBarrierElimination::propagateSize ( rvsdg::Graph &  graph)
private

Definition at line 474 of file IOBarrierElimination.cpp.

◆ Run()

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

◆ sweepRegion()

void jlm::llvm::IOBarrierElimination::sweepRegion ( rvsdg::Region &  region)
private

Definition at line 683 of file IOBarrierElimination.cpp.

Member Data Documentation

◆ context_

std::unique_ptr<Context> jlm::llvm::IOBarrierElimination::context_ {}
private

Definition at line 57 of file IOBarrierElimination.hpp.


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