private IsNullValueFrame replaceValues(IsNullValueFrame frame, int stackSlot, BasicBlock block, IsNullValue replacementValue) throws DataflowAnalysisException {
private IsNullValueFrame replaceValues(IsNullValueFrame frame, ValueNumber replaceMe, ValueNumberFrame vnaFrame, IsNullValue replacementValue) {
	private IsNullValueFrame replaceValues(IsNullValueFrame frame, int stackSlot, BasicBlock block,		IsNullValue replacementValue) throws DataflowAnalysisException {		ValueNumberFrame vnaFrame = getVnaFrameAtEntry(block);		final int numSlots = frame.getNumSlots();		// Create a new frame for the result,		// since we don't want to modify the original.		IsNullValueFrame result = new IsNullValueFrame(numSlots);		result.copyFrom(frame);		if (vnaFrame != null) {			if (numSlots != vnaFrame.getNumSlots()) {				System.out.println("Slots mismatch: " + numSlots + " vs. " + vnaFrame.getNumSlots());			}			assert numSlots == vnaFrame.getNumSlots();			// Replace all values which are the same as the one in the slot.			ValueNumber origValue = vnaFrame.getValue(stackSlot);			for (int i = 0; i < numSlots; ++i) {				ValueNumber valueNum = vnaFrame.getValue(i);				if (valueNum.equals(origValue))					result.setValue(i, replacementValue);			}		} else {			// Just replace the value in the specified slot, since we don't			// know the value numbers.			result.setValue(stackSlot, replacementValue);		}		return result;	}