@Override public boolean add(int i) { boolean result = impl.add(i); if (result) { maybeChangeRepresentation(); } return result; }
@Override protected void pathCallback(int i, int j, int k) { if (next[i][j] == null) { next[i][j] = IntSetUtil.make(); } next[i][j].add(k); }
@Override public IntSet getSuccNodeNumbers(T node) { MutableIntSet x = IntSetUtil.make(); if (forwardEdges.containsKey(node)) { for(T succ : forwardEdges.get(node)) { x.add(cfg.getNumber(succ)); } } return x; }
@Override public IntSet getPredNodeNumbers(T node) { MutableIntSet x = IntSetUtil.make(); if (backwardEdges.containsKey(node)) { for(T pred : backwardEdges.get(node)) { x.add(cfg.getNumber(pred)); } } return x; }
/** * Set a particular bit * * @param b the bit to set */ public boolean add(int b) { if (V == null) { V = IntSetUtil.getDefaultIntSetFactory().make(); } return V.add(b); }
private void registerInstanceWithAllInterfaces(IClass klass, int index) { Collection<IClass> ifaces = klass.getAllImplementedInterfaces(); for (IClass I : ifaces) { MutableIntSet set = findOrCreateSparseSetForClass(I); set.add(index); if (DEBUG) { System.err.println("dense filter for interface " + I + ' ' + set); } } }
private static IntSet getDomain(IBinaryNaturalRelation r) { MutableIntSet result = MutableSparseIntSet.makeEmpty(); int maxKeyValue = r.maxKeyValue(); for (int i = 0; i <= maxKeyValue; i++) { if (r.getRelated(i) != null) { result.add(i); } } return result; }
@Override public IntSet getPredNodeNumbers(T N) { MutableIntSet bits = IntSetUtil.make(); for (T EE : Iterator2Iterable.make(getPredNodes(N))) { bits.add(EE.getNumber()); } return bits; }
@Override public IntSet getSuccNodeNumbers(CGNode node) { MutableIntSet result = IntSetUtil.make(); for(CGNode s : Iterator2Iterable.make(getSuccNodes(node))) { result.add(s.getGraphNodeId()); } return result; }
@Override public IntSet getPredNodeNumbers(CGNode node) { MutableIntSet result = IntSetUtil.make(); for(CGNode s : Iterator2Iterable.make(getPredNodes(node))) { result.add(s.getGraphNodeId()); } return result; }
@Override public IntSet getPredNodeNumbers(CGNode node) { MutableIntSet result = IntSetUtil.make(); for(CGNode s : Iterator2Iterable.make(getPredNodes(node))) { result.add(s.getGraphNodeId()); } return result; }
/** * add edges to nodes in callers of n */ private void addCallerEdges(CGNode n) { final int num = cg.getNumber(n); if (!cgNodesWithCallerEdges.contains(num)) { cgNodesWithCallerEdges.add(num); ControlFlowGraph<SSAInstruction, T> cfg = getCFG(n); addInterproceduralEdgesForEntryAndExitBlocks(n, cfg); } }
private void registerInstanceWithAllSuperclasses(int index, IClass T) { while (T != null && !T.getReference().equals(TypeReference.JavaLangObject)) { MutableIntSet set = findOrCreateSparseSetForClass(T); set.add(index); if (DEBUG) { System.err.println("dense filter for class " + T + ' ' + set); } T = T.getSuperclass(); } }
@Override public IntSet getSuccNodeNumbers(T N) { MutableIntSet bits = IntSetUtil.make(); for (T EE : Iterator2Iterable.make(getSuccNodes(N))) { bits.add(EE.getNumber()); } return bits; }
private IntSet getRelevantParameters(final CGNode caller, final CallSiteReference site) throws UnimplementedError { IntSet params = contextSelector.getRelevantParameters(caller, site); if (!site.isStatic() && !params.contains(0)) { params = IntSetUtil.makeMutableCopy(params); ((MutableIntSet)params).add(0); } return params; }
private int registerMultiDimArraysForArrayOfObjectTypes(int dim, int index, ArrayClass aClass) { for (int i = 1; i < dim; i++) { TypeReference jlo = makeArray(TypeReference.JavaLangObject, i); IClass jloClass = null; jloClass = aClass.getClassLoader().lookupClass(jlo.getName()); MutableIntSet set = findOrCreateSparseSetForClass(jloClass); set.add(index); } return dim; }
@Override public IntSet getRelevantParameters(CGNode caller, CallSiteReference site) { // 0 for function (synthetic apply), 1 for this (function being invoked), 2 // for this arg of function being invoked, // 3 for arguments array MutableIntSet params = IntSetUtil.make(); for(int i = 0; i < 4 && i < caller.getIR().getCalls(site)[0].getNumberOfUses(); i++) { params.add(i); } return params.union(base.getRelevantParameters(caller, site)); }
@Override public IntSet getPredNodeNumbers(CGNode node) { assert containsNode(node); MutableIntSet x = IntSetUtil.make(); for (CGNode pred : Iterator2Iterable.make(getPredNodes(node))) { if (containsNode(pred)) { x.add(getNumber(pred)); } } return x; }
private void addPredsOfIKeyAndStateToTrackedPointsTo(InstanceKeyAndState ikAndState) throws UnimplementedError { for (Object o : Iterator2Iterable.make(g.getPredNodes(ikAndState.getInstanceKey(), NewLabel.v()))) { PointerKey ikPred = (PointerKey) o; PointerKeyAndState ikPredAndState = new PointerKeyAndState(ikPred, ikAndState.getState()); int mappedIndex = ikAndStates.getMappedIndex(ikAndState); assert mappedIndex != -1; if (findOrCreate(pkToTrackedSet, ikPredAndState).add(mappedIndex)) { addToTrackedPToWorklist(ikPredAndState); } } }
@Override public IntSet getRelevantParameters(CGNode caller, CallSiteReference site) { MutableIntSet s = IntSetUtil.make(); for(int i = 0; i < caller.getIR().getCalls(site)[0].getNumberOfUses(); i++) { if (!caller.getMethod().getDeclaringClass().getClassLoader().getLanguage().methodsHaveDeclaredParameterTypes() || dispatchIndex(site, i)) { s.add(i); } } return s; }