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) {