if (DEBUG) System.out.println(" ==> " + result.toString());
	public void transfer(BasicBlock basicBlock, InstructionHandle end, Fact start, Fact result) throws DataflowAnalysisException {		copy(start, result);		if (isFactValid(result)) {			Iterator<InstructionHandle> i = isForwards() ? basicBlock.instructionIterator() : basicBlock.instructionReverseIterator();			Location prevLocation = null;			while (i.hasNext()) {				InstructionHandle handle = i.next();				if (handle == end)					break;					// Record the fact at this location				Location location = new Location(handle, basicBlock);				Fact factAtLocation = getFactAtLocation(location);				copy(result, factAtLocation);				// The fact AT this location is also the fact AFTER the				// previous location.				if (end == null && prevLocation != null)					factAfterLocationMap.put(prevLocation, factAtLocation);				prevLocation = location;					// Transfer the dataflow value				transferInstruction(handle, basicBlock, result);			}			if (end == null && prevLocation != null) {				// The fact AFTER the last location is the result fact.				Location lastLocation = prevLocation;				Fact factAfterLocation = getFactAfterLocation(lastLocation);				copy(result, factAfterLocation);			}		}	}