Operand rv = ((ReturnInstr)first).getReturnValue(); if (rv instanceof Variable) { for (Edge<BasicBlock> e : getIncomingEdges(retBB)) { BasicBlock srcBB = e.getSource().getData(); List<Instr> srcInstrs = srcBB.getInstrs();
Operand rv = ((ReturnInstr)first).getReturnValue(); if (rv instanceof Variable) { for (Edge<BasicBlock> e : getIncomingEdges(retBB)) { BasicBlock srcBB = e.getSource().getData(); List<Instr> srcInstrs = srcBB.getInstrs();
public void computeDataFlowInfoForward(List<U> workList, BitSet bbSet) { for (Edge<BasicBlock> e: getCFG().getIncomingEdges(basicBlock)) { compute_MEET(e, problem.getFlowGraphNode(e.getSource().getData())); } initSolution(); // Initialize computation // Apply transfer function (analysis-specific) based on new facts after computing MEET for (Instr i : basicBlock.getInstrs()) { // 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().getOutgoingDestinations(basicBlock)) { processDestBB(workList, bbSet, b); } } finalizeSolution(); // Any post-computation cleanup }
public void computeDataFlowInfoForward(List<U> workList, BitSet bbSet) { for (Edge<BasicBlock> e: getCFG().getIncomingEdges(basicBlock)) { compute_MEET(e, problem.getFlowGraphNode(e.getSource().getData())); } initSolution(); // Initialize computation // Apply transfer function (analysis-specific) based on new facts after computing MEET for (Instr i : basicBlock.getInstrs()) { // 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().getOutgoingDestinations(basicBlock)) { processDestBB(workList, bbSet, b); } } finalizeSolution(); // Any post-computation cleanup }
for (Edge e: problem.getScope().cfg().getIncomingEdges(basicBlock)) { BasicBlock b = (BasicBlock)e.getSource().getData(); compute_MEET(e, b, problem.getFlowGraphNode(b));
for (Edge e: problem.getScope().cfg().getIncomingEdges(basicBlock)) { BasicBlock b = (BasicBlock)e.getSource().getData(); compute_MEET(e, b, problem.getFlowGraphNode(b));
for (Edge<BasicBlock> e : methodCFG.getIncomingEdges(mExit)) { BasicBlock source = e.getSource().getData(); if (source != mEntry) {
for (Edge<BasicBlock> e : methodCFG.getIncomingEdges(mExit)) { BasicBlock source = e.getSource().getData(); if (source != mEntry) {
for (Edge<BasicBlock> e : getIncomingEdges(b)) { BasicBlock fixupBB = e.getSource().getData(); removeEdge(fixupBB, b);
for (Edge<BasicBlock> e : getIncomingEdges(b)) { BasicBlock fixupBB = e.getSource().getData(); removeEdge(fixupBB, b);
for (Edge<BasicBlock> e : methodToInline.getIncomingEdges(methodToInline.getExitBB())) { BasicBlock source = e.getSource().getData(); if (source.isEntryBB()) continue;
for (Edge<BasicBlock> e : methodToInline.getIncomingEdges(methodToInline.getExitBB())) { BasicBlock source = e.getSource().getData(); if (source.isEntryBB()) continue;
for (Edge<BasicBlock> e : closureCFG.getIncomingEdges(cExit)) { BasicBlock source = e.getSource().getData(); if (source != cEntry) {
for (Edge<BasicBlock> e : closureCFG.getIncomingEdges(cExit)) { BasicBlock source = e.getSource().getData(); if (source != cEntry) {
for (Edge<BasicBlock> e : closureCFG.getIncomingEdges(closureCFG.getExitBB())) { BasicBlock source = e.getSource().getData(); if (source.isEntryBB()) continue;
for (Edge<BasicBlock> e : closureCFG.getIncomingEdges(closureCFG.getExitBB())) { BasicBlock source = e.getSource().getData(); if (source.isEntryBB()) continue;