public Iterable<BasicBlock> getIncomingSourcesOf(BasicBlock bb) { return scope.cfg().getIncomingSources(bb); }
public Iterable<BasicBlock> getIncomingSourcesOf(BasicBlock bb) { return scope.cfg().getIncomingSources(bb); }
for (BasicBlock src : cfg.getIncomingSources(b)) { int srcPoNumber = bbToPoNumbers[src.getID()]; for (BasicBlock src: cfg.getIncomingSources(b)) {
for (BasicBlock src : cfg.getIncomingSources(b)) { Integer srcPoNumber = bbToPoNumbers[src.getID()]; for (BasicBlock src: cfg.getIncomingSources(b)) {
for (BasicBlock src : cfg.getIncomingSources(b)) { Integer srcPoNumber = bbToPoNumbers[src.getID()]; for (BasicBlock src: cfg.getIncomingSources(b)) {
for (BasicBlock src : cfg.getIncomingSources(b)) { int srcPoNumber = bbToPoNumbers[src.getID()]; for (BasicBlock src: cfg.getIncomingSources(b)) {
public void computeDataFlowInfoBackward(List<U> workList, BitSet bbSet) { for (Edge<BasicBlock> e: getCFG().getOutgoingEdges(basicBlock)) { compute_MEET(e, problem.getFlowGraphNode(e.getDestination().getData())); } initSolution(); // Initialize computation // Apply transfer function (analysis-specific) based on new facts after computing MEET List<Instr> instrs = basicBlock.getInstrs(); ListIterator<Instr> it = instrs.listIterator(instrs.size()); while (it.hasPrevious()) { Instr i = it.previous(); // System.out.println("TF: Processing: " + i); applyTransferFunction(i); } // If the solution has changed, add "dsts" to the work list. // No duplicates please which is why we have bbset. if (solutionChanged()) { for (BasicBlock b: getCFG().getIncomingSources(basicBlock)) { processDestBB(workList, bbSet, b); } } finalizeSolution(); // Any post-computation cleanup }
public void computeDataFlowInfoBackward(List<U> workList, BitSet bbSet) { for (Edge<BasicBlock> e: getCFG().getOutgoingEdges(basicBlock)) { compute_MEET(e, problem.getFlowGraphNode(e.getDestination().getData())); } initSolution(); // Initialize computation // Apply transfer function (analysis-specific) based on new facts after computing MEET List<Instr> instrs = basicBlock.getInstrs(); ListIterator<Instr> it = instrs.listIterator(instrs.size()); while (it.hasPrevious()) { Instr i = it.previous(); // System.out.println("TF: Processing: " + i); applyTransferFunction(i); } // If the solution has changed, add "dsts" to the work list. // No duplicates please which is why we have bbset. if (solutionChanged()) { for (BasicBlock b: getCFG().getIncomingSources(basicBlock)) { processDestBB(workList, bbSet, b); } } finalizeSolution(); // Any post-computation cleanup }
for (BasicBlock b: problem.getScope().cfg().getIncomingSources(basicBlock)) { processDestBB(workList, bbSet, b);
for (BasicBlock b: problem.getScope().cfg().getIncomingSources(basicBlock)) { processDestBB(workList, bbSet, b);