if (false && DEBUG) {
if (DEBUG) {
	private UnconditionalValueDerefSet propagateDerefSetsToMergeInputValues(			UnconditionalValueDerefSet fact, Edge edge) {				ValueNumberFrame blockValueNumberFrame =			vnaDataflow.getResultFact(edge.getSource());		ValueNumberFrame targetValueNumberFrame =			vnaDataflow.getStartFact(edge.getTarget());		fact = duplicateFact(fact);		if (blockValueNumberFrame.isValid() && targetValueNumberFrame.isValid() &&				blockValueNumberFrame.getNumSlots() == targetValueNumberFrame.getNumSlots()) {			if (false && DEBUG) {				System.out.println("** Valid VNA frames");				System.out.println("** Block : " + blockValueNumberFrame);				System.out.println("** Target: " + targetValueNumberFrame);			}			for (int i = 0; i < blockValueNumberFrame.getNumSlots(); i++) {				ValueNumber blockVN = blockValueNumberFrame.getValue(i);				ValueNumber targetVN = targetValueNumberFrame.getValue(i);				if (!blockVN.equals(targetVN)) {					if (DEBUG) {						System.out.println("Merge: " + targetVN + " -> " + blockVN);					}					if (fact.isUnconditionallyDereferenced(targetVN)							&& !fact.isUnconditionallyDereferenced(blockVN)) {						// Block VN is also dereferenced unconditionally.						if (DEBUG) {							System.out.println("** Copy vn derefs " + targetVN.getNumber() + 									" --> " + blockVN.getNumber());						}						fact.setDerefSet(blockVN, fact.getUnconditionalDerefLocationSet(targetVN));					}				}			}		}		return fact;	}