boolean (VarVersionPair usedvar, Map<Integer, Set<VarVersionPair>> mapVars, SSAUConstructorSparseEx ssau, VarVersionPair leftpaar) { VarVersionsGraph ssuversions = ssau.getSsuversions(); SFormsFastMapDirect mapLiveVars = ssau.getLiveVarVersionsMap(usedvar); if (mapLiveVars == null) { // dummy version, predecessor of a phi node return false; } // compare protected ranges if (!Objects.equals(ssau.getMapVersionFirstRange().get(leftpaar), ssau.getMapVersionFirstRange().get(usedvar))) { return false; } for (Entry<Integer, Set<VarVersionPair>> ent : mapVars.entrySet()) { FastSparseSet<Integer> liveverset = mapLiveVars.get(ent.getKey()); if (liveverset == null) { return false; } Set<VarVersionNode> domset = new HashSet<>(); for (VarVersionPair verpaar : ent.getValue()) { domset.add(ssuversions.nodes.getWithKey(verpaar)); } boolean isdom = false; for (Integer livever : liveverset) { VarVersionNode node = ssuversions.nodes.getWithKey(new VarVersionPair(ent.getKey().intValue(), livever.intValue())); if (ssuversions.isDominatorSet(node, domset)) { isdom = true; break; } } if (!isdom) { return false; } } return true; }