souffle
2.0.2-371-g6315b36
|
Goal: reorder based on the given profiling information Metric: cost(atom_R) = log(|atom_R|) * #free/#args. More...
#include <SipsMetric.h>
Public Member Functions | |
ProfileUseSips (const analysis::ProfileUseAnalysis &profileUse) | |
Public Member Functions inherited from souffle::ast::SipsMetric | |
std::vector< unsigned int > | getReordering (const Clause *clause) const |
Determines the new ordering of a clause after the SIPS is applied. More... | |
virtual | ~SipsMetric ()=default |
Protected Member Functions | |
std::vector< double > | evaluateCosts (const std::vector< Atom * > atoms, const BindingStore &bindingStore) const override |
Evaluates the cost of choosing each atom next in the current schedule. More... | |
Private Attributes | |
const analysis::ProfileUseAnalysis & | profileUse |
Additional Inherited Members | |
Static Public Member Functions inherited from souffle::ast::SipsMetric | |
static std::unique_ptr< SipsMetric > | create (const std::string &heuristic, const TranslationUnit &tu) |
Create a SIPS metric based on a given heuristic. More... | |
Goal: reorder based on the given profiling information Metric: cost(atom_R) = log(|atom_R|) * #free/#args.
Definition at line 138 of file SipsMetric.h.
|
inline |
Definition at line 140 of file SipsMetric.h.
|
overrideprotectedvirtual |
Evaluates the cost of choosing each atom next in the current schedule.
atoms | atoms to choose from; may be nullptr |
bindingStore | the variables already bound to a value |
Implements souffle::ast::SipsMetric.
Definition at line 242 of file SipsMetric.cpp.
References souffle::ast::analysis::ProfileUseAnalysis::getRelationSize(), and profileUse.
|
private |
Definition at line 147 of file SipsMetric.h.
Referenced by evaluateCosts().