anchor.diff:        // `block.predecessors[0]` again, we can just re-use its
         // [memorySet].
         memorySet = memories[block.predecessors[0].id];
  -    } else if (block.isLoopHeader()) {
  -      // We currently do not handle loops.
  -      memorySet = new MemorySet(compiler);
       } else if (block.predecessors.length == 1) {
         // Clone the memorySet of the predecessor, because it is also used
         // by other successors of it.
  
positive.code: 
    SsaLoadElimination(this.compiler);
  
    visitGraph(HGraph graph) {
      memories = new List<MemorySet>(graph.blocks.length);
      visitDominatorTree(graph);
    }
  
    visitBasicBlock(HBasicBlock block) {
      if (block.predecessors.length == 0) {
        // Entry block.
        memorySet = new MemorySet(compiler);
  
negative.code:           memories[block.predecessors[i].id], block, i);
        }
      }
  
      memories[block.id] = memorySet;
      HInstruction instruction = block.first;
      while (instruction != null) {
  