37 auto* relationSchedule = translationUnit.getAnalysis<analysis::RelationScheduleAnalysis>();
38 auto* recursiveClauses = translationUnit.getAnalysis<analysis::RecursiveClausesAnalysis>();
39 auto&& report = translationUnit.getErrorReport();
41 Program& program = translationUnit.getProgram();
43 const std::set<const Relation*>& scc = step.computed();
46 if (!recursiveClauses->recursive(clause)) {
49 if (clause->getExecutionPlan() ==
nullptr) {
53 for (
const auto* atom : getBodyLiterals<Atom>(*clause)) {
59 for (
auto const& cur : clause->getExecutionPlan()->getOrders()) {
60 maxVersion = std::max(cur.first, maxVersion);
63 if (version <= maxVersion) {
64 for (
const auto& cur : clause->getExecutionPlan()->getOrders()) {
65 if (cur.first >= version) {
68 "execution plan for version " + std::to_string(cur.first),
69 cur.second->getSrcLoc()),
70 {DiagnosticMessage(
"only versions 0.." + std::to_string(version - 1) +