anchor.diff:    }
   
     void visitGraph(HGraph graph) {
  +    _graph = graph;
       analyzer = new SsaLiveBlockAnalyzer(graph, closedWorld, optimizer);
       analyzer.analyze();
       visitPostDominatorTree(graph);
  -    cleanPhis(graph);
  +    cleanPhis();
     }
   
     void visitBasicBlock(HBasicBlock block) {
       bool isDeadBlock = analyzer.isDeadBlock(block);
       block.isLive = !isDeadBlock;
  +    simplifyControlFlow(block);
       // Start from the last non-control flow instruction in the block.
       HInstruction instruction = block.last.previous;
       while (instruction != null) {
  
positive.code:       }
        instruction = previous;
      }
    }
  
    void cleanPhis(HGraph graph) {
      L:
      for (HBasicBlock block in graph.blocks) {
        List<HBasicBlock> predecessors = block.predecessors;
        // Zap all inputs to phis that correspond to dead blocks.
        block.forEachPhi((HPhi phi) {
  
negative.code: 
    final ClosedWorld closedWorld;
    final SsaOptimizerTask optimizer;
    HGraph _graph;
    SsaLiveBlockAnalyzer analyzer;
    Map<HInstruction, bool> trivialDeadStoreReceivers =
        new Maplet<HInstruction, bool>();
  