code: void consume(List<PassFactory> factories) {
      Loop currentLoop = new Loop();
      for (PassFactory factory : factories) {
        if (factory.isOneTimePass()) {
          if (currentLoop.isPopulated()) {
            passes.add(currentLoop);
            currentLoop = new Loop();
          }
          addOneTimePass(factory);
        } else {
          currentLoop.addLoopedPass(factory);
        }
      }
  
      if (currentLoop.isPopulated()) {
        passes.add(currentLoop);
      }
    }
docs: Add the passes generated by the given factories to the compile sequence.
  <p>
  Automatically pulls multi-run passes into fixed point loops. If there
  are 1 or more multi-run passes in a row, they will run together in
  the same fixed point loop. The passes will run until they are finished
  making changes.
  <p>
  The PhaseOptimizer is free to tweak the order and frequency of multi-run
  passes in a fixed-point loop.