private void resetLater(final ExprInfo exprInfo, final Phi phi) {
		phi.setLater(false);

		final Iterator blocks = cfg.nodes().iterator();

		while (blocks.hasNext()) {
			final Block block = (Block) blocks.next();

			final Phi other = exprInfo.exprPhiAtBlock(block);

			if (other == null) {
				continue;
			}

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

			// For PHI-statement that has the "h" defined by phi as an
			// operand...

			while (e.hasNext()) {
				final Block pred = (Block) e.next();
				final Def operand = other.operandAt(pred);

				if (operand == phi) {
					if (!other.later()) {
						continue;
					}

					// Propagate later = false up the CFG.
					resetLater(exprInfo, other);
					break;
				}
			}
		}
	}