int varindex = ((VarExprent)expr).getIndex(); if (leftvar.var != varindex) { if (mapLiveVars.containsKey(varindex)) { Set<VarVersionPair> verset = new HashSet<>(); for (Integer vers : mapLiveVars.get(varindex)) { if (ssau.getMapFieldVars().containsKey(expr.id)) { int varindex = ssau.getMapFieldVars().get(expr.id); if (mapLiveVars.containsKey(varindex)) { Set<VarVersionPair> verset = new HashSet<>(); for (Integer vers : mapLiveVars.get(varindex)) {
private static void replaceSingleVar(Exprent parent, VarExprent var, Exprent dest, SSAUConstructorSparseEx ssau) { parent.replaceExprent(var, dest); // live sets SFormsFastMapDirect livemap = ssau.getLiveVarVersionsMap(new VarVersionPair(var)); Set<VarVersionPair> setVars = getAllVersions(dest); for (VarVersionPair varpaar : setVars) { VarVersionNode node = ssau.getSsuversions().nodes.getWithKey(varpaar); for (Iterator<Entry<Integer, FastSparseSet<Integer>>> itent = node.live.entryList().iterator(); itent.hasNext(); ) { Entry<Integer, FastSparseSet<Integer>> ent = itent.next(); Integer key = ent.getKey(); if (!livemap.containsKey(key)) { itent.remove(); } else { FastSparseSet<Integer> set = ent.getValue(); set.complement(livemap.get(key)); if (set.isEmpty()) { itent.remove(); } } } } }
int varindex = ((VarExprent)expr).getIndex(); if (leftvar.var != varindex) { if (mapLiveVars.containsKey(varindex)) { HashSet<VarVersionPair> verset = new HashSet<>(); for (Integer vers : mapLiveVars.get(varindex)) { if (ssau.getMapFieldVars().containsKey(expr.id)) { int varindex = ssau.getMapFieldVars().get(expr.id); if (mapLiveVars.containsKey(varindex)) { HashSet<VarVersionPair> verset = new HashSet<>(); for (Integer vers : mapLiveVars.get(varindex)) {
private static void replaceSingleVar(Exprent parent, VarExprent var, Exprent dest, SSAUConstructorSparseEx ssau) { parent.replaceExprent(var, dest); // live sets SFormsFastMapDirect livemap = ssau.getLiveVarVersionsMap(new VarVersionPair(var)); HashSet<VarVersionPair> setVars = getAllVersions(dest); for (VarVersionPair varpaar : setVars) { VarVersionNode node = ssau.getSsuversions().nodes.getWithKey(varpaar); for (Iterator<Entry<Integer, FastSparseSet<Integer>>> itent = node.live.entryList().iterator(); itent.hasNext(); ) { Entry<Integer, FastSparseSet<Integer>> ent = itent.next(); Integer key = ent.getKey(); if (!livemap.containsKey(key)) { itent.remove(); } else { FastSparseSet<Integer> set = ent.getValue(); set.complement(livemap.get(key)); if (set.isEmpty()) { itent.remove(); } } } } }