Skip to content

specpose/stackable-functor-allocation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stackable Functor Allocation

Is a refactoring pattern. It aims to keep the Functor operator() allocation free and the Functor body free of references. The strict memory is adressed entirely as a stack, as heap (size known at compile time), but not as free-store.

The refactoring pattern.

A related GPU refactoring pattern for invertible functions. Here, the memory requirements are relaxed. Not in the original sense of stack.

Defunct.

Installation

CPU Mode

cmake -B build . -DSFA_BACKEND=CPU
cmake --build build

Goopax Mode: Download and extract Goopax to the directory above the project directory.

cmake -B build . -DSFA_BACKEND=GOOPAX
cmake --build build

SyCL Mode: Set a SyCL compatible clang compiler in your path.

cmake -B build . -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DSFA_BACKEND=INTELSYCL -GNinja
cmake --build build

About

A refactoring pattern for converting C++ STL algorithms to Functors with allocation free call operators.

Resources

License

Stars

Watchers

Forks

Packages

No packages published