34 precedenceGraph = translationUnit.getAnalysis<PrecedenceGraphAnalysis>();
36 std::set<const Relation*> work;
37 std::set<const Relation*> notRedundant;
38 auto* ioType = translationUnit.getAnalysis<IOTypeAnalysis>();
39 Program& program = translationUnit.getProgram();
41 const std::vector<Relation*>&
relations = program.getRelations();
44 if (ioType->isOutput(r)) {
51 while (!work.empty()) {
54 work.erase(work.begin());
55 notRedundant.insert(u);
60 if (notRedundant.count(predecessor) == 0u) {
61 work.insert(predecessor);
69 if (notRedundant.count(r) == 0u) {