@Override public void transfer(BasicBlock basicBlock, @CheckForNull InstructionHandle end, IsNullValueFrame start, IsNullValueFrame result) throws DataflowAnalysisException { startTransfer(); super.transfer(basicBlock, end, start, result); endTransfer(basicBlock, end, result); if (end == null) { ValueNumberFrame vnaFrameAfter = vnaDataflow.getFactAfterLocation(Location.getLastLocation(basicBlock)); // purge stale information if (!vnaFrameAfter.isTop()) { result.cleanStaleKnowledge(vnaFrameAfter); } } }
location = Location.getLastLocation(source);
aliveTarget = trueTarget; redundantConditions.add(new RedundantCondition(Location.getLastLocation(edge.getSource()), condition, !data.reachableBlocks.get(deadTarget.getLabel()), getLocation(deadTarget), getLocation(aliveTarget), branch.trueSet.getSignature(), branch.trueSet.isEmpty() || branch.trueSet.isFull(),
@Override public void transfer(BasicBlock basicBlock, @CheckForNull InstructionHandle end, IsNullValueFrame start, IsNullValueFrame result) throws DataflowAnalysisException { startTransfer(); super.transfer(basicBlock, end, start, result); endTransfer(basicBlock, end, result); if (end == null) { ValueNumberFrame vnaFrameAfter = vnaDataflow.getFactAfterLocation(Location.getLastLocation(basicBlock)); // purge stale information if (!vnaFrameAfter.isTop()) { result.cleanStaleKnowledge(vnaFrameAfter); } } }
location = Location.getLastLocation(source);
aliveTarget = trueTarget; redundantConditions.add(new RedundantCondition(Location.getLastLocation(edge.getSource()), condition, !data.reachableBlocks.get(deadTarget.getLabel()), getLocation(deadTarget), getLocation(aliveTarget), branch.trueSet.getSignature(), branch.trueSet.isEmpty() || branch.trueSet.isFull(),