private void funcPostponableIn(Statement s, List<Statement> prev) {
        if(prev == null)
            return;
        //availibleIn.put(s, new LinkedList<Statement>());
        List<Statement> first = postponableOut.get(prev.get(0));
        if (first == null)
            return;
        if (first.isEmpty())
            return;
        prev.remove(0);
        if(prev.isEmpty()) {
            for(Statement l: first)
                postponableIn.get(s).add(l);
        } else {
            List <Statement> result = new LinkedList<Statement>();
            for(Statement l: first)
                result.add(l);      //now result contains all statements from availibleOut for f
            for(Statement l: prev) {        //want to compare all in availibleOut for prev
                List<Statement> inNext = postponableOut.get(l);
                if(inNext == null)
                    return;
                for(Statement r: first) {
                    boolean ok = false;
                    for (Statement in : inNext)
                        if (compareExpressions(in, r))
                            ok = true;
                    if (!ok)
                        result.remove(r);
                }
            }
            postponableIn.put(s, result);
        }
    }