@Override public boolean solutionChanged() { // At the beginning of the scope and rescue block entries, required loads can be discarded // since all these loads will be executed there. if (basicBlock.isEntryBB() || basicBlock.isRescueEntry()) reqdLoads.clear(); //System.out.println("\n For CFG " + getCFG() + " BB " + _bb.getID()); //System.out.println("\t--> IN reqd loads : " + java.util.Arrays.toString(_inReqdLoads.toArray())); //System.out.println("\t--> OUT reqd loads : " + java.util.Arrays.toString(_outReqdLoads.toArray())); return !outRequiredLoads.equals(reqdLoads); }
@Override public boolean solutionChanged() { // At the beginning of the scope and rescue block entries, required loads can be discarded // since all these loads will be executed there. if (basicBlock.isEntryBB() || basicBlock.isRescueEntry()) reqdLoads.clear(); //System.out.println("\n For CFG " + getCFG() + " BB " + _bb.getID()); //System.out.println("\t--> IN reqd loads : " + java.util.Arrays.toString(_inReqdLoads.toArray())); //System.out.println("\t--> OUT reqd loads : " + java.util.Arrays.toString(_outReqdLoads.toArray())); return !outRequiredLoads.equals(reqdLoads); }
@Override public void applyPreMeetHandler() { if (problem.getScope() instanceof IRClosure && basicBlock.isEntryBB()) { // If it is not null, it has already been initialized if (inState == null) { inState = new UnboxState(); } } else { inState = new UnboxState(); } }
@Override public void applyPreMeetHandler() { if (problem.getScope() instanceof IRClosure && basicBlock.isEntryBB()) { // If it is not null, it has already been initialized if (inState == null) { inState = new UnboxState(); } } else { inState = new UnboxState(); } }
if (scope instanceof IRClosure && basicBlock.isEntryBB()) {
if (scope instanceof IRClosure && basicBlock.isEntryBB()) {
private CFG cloneSelf(InlineCloneInfo ii) { CFG selfClone = new CFG(hostScope); // clone bbs for (BasicBlock b : cfg.getBasicBlocks()) { if (!b.isEntryBB() && !b.isExitBB()) selfClone.addBasicBlock(b.cloneForInlining(ii)); } // clone edges for (BasicBlock b: cfg.getBasicBlocks()) { if (b.isEntryBB() || b.isExitBB()) continue; BasicBlock rb = ii.getRenamedBB(b); for (Edge<BasicBlock> e : cfg.getOutgoingEdges(b)) { BasicBlock destination = e.getDestination().getData(); if (!destination.isExitBB()) selfClone.addEdge(rb, ii.getRenamedBB(destination), e.getType()); } } return selfClone; }
private CFG cloneSelf(InlineCloneInfo ii) { CFG selfClone = new CFG(hostScope); // clone bbs for (BasicBlock b : cfg.getBasicBlocks()) { if (!b.isEntryBB() && !b.isExitBB()) selfClone.addBasicBlock(b.cloneForInlining(ii)); } // clone edges for (BasicBlock b: cfg.getBasicBlocks()) { if (b.isEntryBB() || b.isExitBB()) continue; BasicBlock rb = ii.getRenamedBB(b); for (Edge<BasicBlock> e : cfg.getOutgoingEdges(b)) { BasicBlock destination = e.getDestination().getData(); if (!destination.isExitBB()) selfClone.addEdge(rb, ii.getRenamedBB(destination), e.getType()); } } return selfClone; }