/** * record that basic block i is a catch block */ protected void setCatchBlock(int i) { catchBlocks.set(i); }
/** * Add an object to this bit set. */ public void add(T o) { int n = map.getMappedIndex(o); vector.set(n); }
/** * Add an object to this bit set. */ public void add(T o) { int n = map.getMappedIndex(o); vector.set(n); }
@Override public boolean add(int i) { if (bitVector.get(i)) { return false; } else { bitVector.set(i); populationCount++; populationCount = (populationCount == (UNDEFINED + 1)) ? UNDEFINED : populationCount; return true; } }
/** * Add an object to this bit set. */ public void add(T o) { int n = map.getMappedIndex(o); vector.set(n); }
/** * record points-to-sets that are "roots" of the transitive closure. These points-to-sets can't be thrown away for a * pre-transitive solver. A "root" is a points-to-set whose contents do not result from flow from other points-to-sets; there * points-to-sets are the primordial assignments from which the transitive closure flows. */ public void recordTransitiveRoot(PointerKey key) { if (key == null) { throw new IllegalArgumentException("null key"); } int i = findOrCreateIndex(key); transitiveRoots.set(i); }
/** * record points-to-sets that are "roots" of the transitive closure. These points-to-sets can't be thrown away for a * pre-transitive solver. A "root" is a points-to-set whose contents do not result from flow from other points-to-sets; there * points-to-sets are the primordial assignments from which the transitive closure flows. */ public void recordTransitiveRoot(PointerKey key) { if (key == null) { throw new IllegalArgumentException("null key"); } int i = findOrCreateIndex(key); transitiveRoots.set(i); }
@Override public boolean add(int i) { if (bitVector.get(i)) { return false; } else { bitVector.set(i); populationCount++; populationCount = (populationCount == (UNDEFINED + 1)) ? UNDEFINED : populationCount; return true; } }
@Override public boolean add(int i) { if (bitVector.get(i)) { return false; } else { bitVector.set(i); populationCount++; populationCount = (populationCount == (UNDEFINED + 1)) ? UNDEFINED : populationCount; return true; } }
private BitVector getGen(T node) { Collection<L> g = gen.get(node); if (g == null) { return new BitVector(); } else { BitVector result = new BitVector(); for (L p : g) { result.set(domain.getMappedIndex(p)); } return result; } }
private BitVector getGen(T node) { Collection<L> g = gen.get(node); if (g == null) { return new BitVector(); } else { BitVector result = new BitVector(); for (L p : g) { result.set(domain.getMappedIndex(p)); } return result; } }
private static BitVector zero() { BitVector b = new BitVector(); b.set(0); return b; }
private static BitVector one() { BitVector b = new BitVector(); b.set(1); return b; }
public Exception2BitvectorTransformer(Set<TypeReference> exceptions) { createValues(exceptions); for (TypeReference exception : exceptions) { BitVector bv = new BitVector(values.getSize()); bv.set(values.getMappedIndex(exception)); } }
@Override public BitVector getCatchBlocks() { final BitVector bvOrig = orig.getCatchBlocks(); final BitVector bvThis = new BitVector(); for (final T block : this) { bvThis.set(block.getNumber()); } bvThis.and(bvOrig); return bvThis; }
public Exception2BitvectorTransformer(Set<TypeReference> exceptions) { createValues(exceptions); for (TypeReference exception : exceptions) { BitVector bv = new BitVector(values.getSize()); bv.set(values.getMappedIndex(exception)); } }
@Override public BitVector getCatchBlocks() { final BitVector bvOrig = orig.getCatchBlocks(); final BitVector bvThis = new BitVector(); for (final T block : this) { bvThis.set(block.getNumber()); } bvThis.and(bvOrig); return bvThis; }
@Override public BitVector getCatchBlocks() { BitVector result = new BitVector(); BitVector blocks = cfg.getCatchBlocks(); int i = 0; while ((i = blocks.nextSetBit(i)) != -1) { if (nodes.containsNode(getNode(i))) { result.set(i); } } return result; }
@Override public BitVector getCatchBlocks() { BitVector original = ir.getControlFlowGraph().getCatchBlocks(); BitVector result = new BitVector(); for (int i = 0; i <= original.max(); i++) { if (original.get(i)) { result.set(i + 1); } } return result; }
private void addNodeForBasicBlockIfNeeded(BasicBlockInContext<T> b) { if (!g.containsNode(b)) { g.addNode(b); ControlFlowGraph<SSAInstruction, T> cfg = getCFG(b); if (hasCall(b, cfg)) { hasCallVector.set(g.getNumber(b)); } } }