Jlm
Public Member Functions | Static Public Member Functions | Static Private Member Functions | List of all members
jlm::hls::RedundantBufferElimination Class Referencefinal

#include <remove-redundant-buf.hpp>

Inheritance diagram for jlm::hls::RedundantBufferElimination:
Inheritance graph
[legend]
Collaboration diagram for jlm::hls::RedundantBufferElimination:
Collaboration graph
[legend]

Public Member Functions

 ~RedundantBufferElimination () noexcept override
 
 RedundantBufferElimination ()
 
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 Public Member Functions

static void CreateAndRun (rvsdg::RvsdgModule &module, util::StatisticsCollector &statisticsCollector)
 

Static Private Member Functions

static void HandleRegion (rvsdg::Region &region)
 
static bool CanTraceToLoadOrStore (const rvsdg::Output &output)
 

Detailed Description

Replace BufferOperation nodes with jlm::llvm::MemoryStateType operands that can be traced to a LoadOperation, LocalLoadOperation, StoreOperation, or LocalStoreOperation with a passthrough BufferOperation node.

FIXME: This pass should be renamed as it technically does not eliminate BufferOperations, but just converts them to passthrough BufferOperations

Definition at line 28 of file remove-redundant-buf.hpp.

Constructor & Destructor Documentation

◆ ~RedundantBufferElimination()

jlm::hls::RedundantBufferElimination::~RedundantBufferElimination ( )
overridedefaultnoexcept

◆ RedundantBufferElimination()

jlm::hls::RedundantBufferElimination::RedundantBufferElimination ( )
inline

Definition at line 33 of file remove-redundant-buf.hpp.

Member Function Documentation

◆ CanTraceToLoadOrStore()

bool jlm::hls::RedundantBufferElimination::CanTraceToLoadOrStore ( const rvsdg::Output output)
staticprivate

Definition at line 69 of file remove-redundant-buf.cpp.

◆ CreateAndRun()

void jlm::hls::RedundantBufferElimination::CreateAndRun ( rvsdg::RvsdgModule module,
util::StatisticsCollector statisticsCollector 
)
static

Definition at line 22 of file remove-redundant-buf.cpp.

◆ HandleRegion()

void jlm::hls::RedundantBufferElimination::HandleRegion ( rvsdg::Region region)
staticprivate

Definition at line 31 of file remove-redundant-buf.cpp.

◆ Run()

void jlm::hls::RedundantBufferElimination::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 16 of file remove-redundant-buf.cpp.


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