private void resetDownSafe(final Phi phi, final Block block) {
		if (phi.hasRealUse(block)) {
			return;
		}

		final Def def = phi.operandAt(block);

		if (def instanceof Phi) {
			final Phi phidef = (Phi) def;

			if (phidef.downSafe()) {
				phidef.setDownSafe(false);

				if (SSAPRE.DEBUG) {
					System.out.println("            def = Phi in "
							+ phidef.block());
					System.out.println("            def made not down safe");
				}

				final Iterator e = cfg.preds(block).iterator();

				while (e.hasNext()) {
					final Block pred = (Block) e.next();
					resetDownSafe(phidef, pred);
				}
			}
		}
	}