souffle
2.0.2-371-g6315b36
|
#include <HoistAggregate.h>
Public Member Functions | |
std::string | getName () const override |
@Brief get name of the transformer More... | |
bool | hoistAggregate (Program &program) |
Apply hoistAggregate to the whole program. More... | |
Public Member Functions inherited from souffle::ram::transform::Transformer | |
bool | apply (TranslationUnit &translationUnit) |
@Brief apply the transformer to a translation unit @Param translationUnit that will be transformed. More... | |
virtual | ~Transformer ()=default |
Protected Member Functions | |
bool | transform (TranslationUnit &translationUnit) override |
@Brief transform the translation unit / used by apply @Param translationUnit that will be transformed. More... | |
Protected Attributes | |
analysis::LevelAnalysis * | rla {nullptr} |
Definition at line 38 of file HoistAggregate.h.
|
inlineoverridevirtual |
@Brief get name of the transformer
Implements souffle::ram::transform::Transformer.
Definition at line 40 of file HoistAggregate.h.
bool souffle::ram::transform::HoistAggregateTransformer::hoistAggregate | ( | Program & | program | ) |
Apply hoistAggregate to the whole program.
RAM | program |
Pushes an Aggregate up the loop nest if possible
Definition at line 34 of file HoistAggregate.cpp.
References souffle::ram::transform::Transformer::apply(), souffle::clone(), souffle::ram::analysis::LevelAnalysis::getLevel(), souffle::ram::Query::getOperation(), souffle::ram::makeLambdaRamMapper(), and rla.
|
inlineoverrideprotectedvirtual |
@Brief transform the translation unit / used by apply @Param translationUnit that will be transformed.
@Return flag reporting whether the RAM program has changed
Implements souffle::ram::transform::Transformer.
Definition at line 55 of file HoistAggregate.h.
|
protected |
Definition at line 54 of file HoistAggregate.h.
Referenced by hoistAggregate().