private void countExpected() {
        isChanged = true;
        firstTime = true;
        while (isChanged) {
            if(!firstTime)
                isChanged = false;
            BaseBlock last = null;
            for (BaseBlock b : cfg.dfs()) {
                markBB.put(b, false);
                for (Statement s : b.getStatements())
                    if (s.baseOperation == Statement.Operation.RETURN)
                        last = b;
            }
            this.last = last;

            recCountExpected(last, null);
            firstTime = false;
        }
    }