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

Optimization that attempts to unroll loops (thetas). More...

#include <unroll.hpp>

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

Classes

class  Statistics
 

Public Member Functions

 ~LoopUnrolling () noexcept override
 
 LoopUnrolling (const size_t factor)
 
void Run (rvsdg::RvsdgModule &module, util::StatisticsCollector &statisticsCollector) override
 
- 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 Attributes

size_t factor_
 

Detailed Description

Optimization that attempts to unroll loops (thetas).

Definition at line 23 of file unroll.hpp.

Constructor & Destructor Documentation

◆ ~LoopUnrolling()

jlm::llvm::LoopUnrolling::~LoopUnrolling ( )
overridedefaultnoexcept

◆ LoopUnrolling()

jlm::llvm::LoopUnrolling::LoopUnrolling ( const size_t  factor)
inlineexplicit

Definition at line 30 of file unroll.hpp.

Member Function Documentation

◆ Run()

void jlm::llvm::LoopUnrolling::Run ( rvsdg::RvsdgModule module,
util::StatisticsCollector statisticsCollector 
)
overridevirtual

Given a module all inner most loops (thetas) are found and unrolled if possible. All nodes in the module are traversed and if a theta is found and is the inner most theta then an attempt is made to unroll it.

Parameters
moduleModule where the innermost loops are unrolled
statisticsCollectorStatistics collector for collecting loop unrolling statistics.

Implements jlm::rvsdg::Transformation.

Definition at line 525 of file unroll.cpp.

Member Data Documentation

◆ factor_

size_t jlm::llvm::LoopUnrolling::factor_
private

Definition at line 47 of file unroll.hpp.


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