Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
proteus::ForLoopBuilder< T, BodyLambda > Class Template Reference

#include <LoopNest.h>

Collaboration diagram for proteus::ForLoopBuilder< T, BodyLambda >:
Collaboration graph
[legend]

Public Types

using LoopIndexType = T
 

Public Member Functions

 ForLoopBuilder (const LoopBoundInfo< T > &Bounds, FuncBase &Fn, BodyLambda &&Body)
 
ForLoopBuildertile (int Tile)
 
ForLoopBuilderunroll ()
 
ForLoopBuilderunroll (int Count)
 
void emit ()
 

Public Attributes

LoopBoundInfo< T > Bounds
 
std::optional< int > TileSize
 
bool UnrollEnabled = false
 
std::optional< int > UnrollCount
 
BodyLambda Body
 
FuncBaseFn
 

Member Typedef Documentation

◆ LoopIndexType

template<typename T , typename BodyLambda >
using proteus::ForLoopBuilder< T, BodyLambda >::LoopIndexType = T

Constructor & Destructor Documentation

◆ ForLoopBuilder()

template<typename T , typename BodyLambda >
proteus::ForLoopBuilder< T, BodyLambda >::ForLoopBuilder ( const LoopBoundInfo< T > &  Bounds,
FuncBase Fn,
BodyLambda &&  Body 
)
inline

Member Function Documentation

◆ emit()

template<typename T , typename BodyLambda >
void proteus::ForLoopBuilder< T, BodyLambda >::emit ( )
inline

◆ tile()

template<typename T , typename BodyLambda >
ForLoopBuilder & proteus::ForLoopBuilder< T, BodyLambda >::tile ( int  Tile)
inline

◆ unroll() [1/2]

template<typename T , typename BodyLambda >
ForLoopBuilder & proteus::ForLoopBuilder< T, BodyLambda >::unroll ( )
inline

◆ unroll() [2/2]

template<typename T , typename BodyLambda >
ForLoopBuilder & proteus::ForLoopBuilder< T, BodyLambda >::unroll ( int  Count)
inline

Member Data Documentation

◆ Body

template<typename T , typename BodyLambda >
BodyLambda proteus::ForLoopBuilder< T, BodyLambda >::Body

◆ Bounds

template<typename T , typename BodyLambda >
LoopBoundInfo<T> proteus::ForLoopBuilder< T, BodyLambda >::Bounds

◆ Fn

template<typename T , typename BodyLambda >
FuncBase& proteus::ForLoopBuilder< T, BodyLambda >::Fn

◆ TileSize

template<typename T , typename BodyLambda >
std::optional<int> proteus::ForLoopBuilder< T, BodyLambda >::TileSize

◆ UnrollCount

template<typename T , typename BodyLambda >
std::optional<int> proteus::ForLoopBuilder< T, BodyLambda >::UnrollCount

◆ UnrollEnabled

template<typename T , typename BodyLambda >
bool proteus::ForLoopBuilder< T, BodyLambda >::UnrollEnabled = false

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