Analysis pass computing a schedule for computing relations.
More...
#include <RelationSchedule.h>
Analysis pass computing a schedule for computing relations.
Definition at line 82 of file RelationSchedule.h.
◆ RelationScheduleAnalysis()
souffle::ast::analysis::RelationScheduleAnalysis::RelationScheduleAnalysis |
( |
| ) |
|
|
inline |
◆ computeRelationExpirySchedule()
std::vector< std::set< const Relation * > > souffle::ast::analysis::RelationScheduleAnalysis::computeRelationExpirySchedule |
( |
const TranslationUnit & |
translationUnit | ) |
|
|
private |
Definition at line 79 of file RelationSchedule.cpp.
88 alive[orderedSCC].insert(alive[orderedSCC - 1].begin(), alive[orderedSCC - 1].end());
92 for (
const Relation* r : sccGraph->getInternalRelations(scc)) {
94 alive[orderedSCC].insert(predecessor);
100 std::set_difference(alive[orderedSCC].begin(), alive[orderedSCC].end(), alive[orderedSCC - 1].begin(),
101 alive[orderedSCC - 1].end(),
102 std::inserter(relationExpirySchedule[numSCCs - orderedSCC],
103 relationExpirySchedule[numSCCs - orderedSCC].end()));
106 return relationExpirySchedule;
110 os <<
"begin schedule\n";
114 for (
const Relation* compRel : step.computed()) {
115 os << compRel->getQualifiedName() <<
", ";
◆ print()
void souffle::ast::analysis::RelationScheduleAnalysis::print |
( |
std::ostream & |
os | ) |
const |
|
overridevirtual |
Dump this relation schedule to standard error.
Reimplemented from souffle::ast::analysis::Analysis.
Definition at line 117 of file RelationSchedule.cpp.
118 for (const Relation* compRel : step.expired()) {
119 os << compRel->getQualifiedName() << ",
";
122 if (step.recursive()) {
125 os << "not recursive
";
132 } // namespace souffle::ast::analysis
◆ run()
void souffle::ast::analysis::RelationScheduleAnalysis::run |
( |
const TranslationUnit & |
| ) |
|
|
overridevirtual |
◆ schedule()
◆ name
constexpr const char* souffle::ast::analysis::RelationScheduleAnalysis::name = "relation-schedule" |
|
staticconstexpr |
◆ precedenceGraph
◆ relationSchedule
◆ topsortSCCGraphAnalysis
The documentation for this class was generated from the following files: