souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
38 class RelationScheduleAnalysisStep {
45 const std::set<const Relation*>&
computed()
const {
49 const std::set<const Relation*>&
expired()
const {
57 void print(std::ostream& os)
const;
76 static constexpr
const char*
name =
"relation-schedule";
82 const std::vector<RelationScheduleAnalysisStep>&
schedule()
const {
87 void print(std::ostream& os)
const override;
std::set< const Relation * > expiredRelations
RelationScheduleAnalysis()
void print(std::ostream &os) const
void print(std::ostream &os) const override
Dump this relation schedule to standard error.
std::vector< std::set< const Relation * > > computeRelationExpirySchedule(const TranslationUnit &translationUnit)
Analysis pass computing a schedule for computing relations.
const std::vector< RelationScheduleAnalysisStep > & schedule() const
std::vector< RelationScheduleAnalysisStep > relationSchedule
Relations computed and expired relations at each step.
Analysis pass computing a topologically sorted strongly connected component (SCC) graph.
static constexpr const char * name
TopologicallySortedSCCGraphAnalysis * topsortSCCGraphAnalysis
PrecedenceGraphAnalysis * precedenceGraph
Translation unit class for the translation pipeline.
friend std::ostream & operator<<(std::ostream &out, const RelationScheduleAnalysisStep &other)
Add support for printing nodes.
std::set< const Relation * > computedRelations
const std::set< const Relation * > & computed() const
Abstract class for a AST Analysis.
void run(const TranslationUnit &translationUnit) override
run analysis for a Ast translation unit
const std::set< const Relation * > & expired() const
Analysis pass computing the precedence graph of the relations of the datalog progam.
A single step in a relation schedule, consisting of the relations computed in the step and the relati...
RelationScheduleAnalysisStep(std::set< const Relation * > computedRelations, std::set< const Relation * > expiredRelations, const bool isRecursive)