private void computeLater(final ExprInfo exprInfo) {
		Iterator blocks = cfg.nodes().iterator();

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

			final Phi phi = exprInfo.exprPhiAtBlock(block);

			if (phi != null) {
				phi.setLater(phi.canBeAvail());
			}
		}

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

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

			final Phi phi = exprInfo.exprPhiAtBlock(block);

			if ((phi != null) && phi.later()) {
				final Iterator e = phi.operands().iterator();

				while (e.hasNext()) {
					final Def def = (Def) e.next();

					if (def instanceof RealDef) {
						resetLater(exprInfo, phi);
						break;
					}
				}
			}
		}
	}