if (!result.isValid()) return;  final int numSlots = result.getNumSlots();         BasicBlock dest = edge.getDest(); if (dest.getNumIncomingEdges() == 1) { BasicBlock source = edge.getSource();  int edgeType = edge.getType(); if (edgeType == IFCMP_EDGE || edgeType == FALL_THROUGH_EDGE) {    InstructionHandle lastInSourceHandle = source.getLastInstruction(); if (lastInSourceHandle == null) return;  Instruction lastInSource = lastInSourceHandle.getInstruction(); short opcode = lastInSource.getOpcode();     IsNullValue newTOS = null; if (opcode == Constants.IFNULL) { newTOS = (edgeType == IFCMP_EDGE) ? IsNullValue.definitelyNull() : IsNullValue.notDefinitelyNull(); } else if (opcode == Constants.IFNONNULL) { newTOS = (edgeType == IFCMP_EDGE) ? IsNullValue.notDefinitelyNull() : IsNullValue.definitelyNull(); }  if (newTOS != null) {  ValueNumberFrame vnaFrame = getVnaFrameAtEntry(dest); if (vnaFrame == null) return; assert vnaFrame.getNumSlots() == numSlots;      ValueNumber oldTOS = vnaFrame.getTopValue();  for (int i = 0; i < numSlots; ++i) { if (vnaFrame.getValue(i).equals(oldTOS)) result.setValue(i, newTOS); } } } else {       InstructionHandle firstInDestHandle = dest.getFirstInstruction(); if (firstInDestHandle == null) return; Instruction firstInDest = firstInDestHandle.getInstruction(); short opcode = firstInDest.getOpcode(); if (!nullCheckInstructionSet.get(opcode)) return;  ValueNumberFrame vnaFrame = getVnaFrameAtEntry(dest); if (vnaFrame == null) return; assert vnaFrame.getNumSlots() == numSlots;        int numSlotsConsumed = firstInDest.consumeStack(methodGen.getConstantPool()); if (numSlotsConsumed == Constants.UNPREDICTABLE) throw new DataflowAnalysisException("Unpredictable stack consumption for " + firstInDest); ValueNumber checkedValue = vnaFrame.getValue(numSlots - numSlotsConsumed);    for (int i = 0; i < numSlots; ++i) { if (vnaFrame.getValue(i).equals(checkedValue)) result.setValue(i, IsNullValue.notDefinitelyNull()); } } }
	public void meetInto(IsNullValueFrame fact, Edge edge, IsNullValueFrame result) throws DataflowAnalysisException {		result.mergeWith(fact);	}