public CFG buildCFG() { cfg = new CFG(this); cfg.build(instrList); // Clear out instruction list after CFG has been built. this.instrList = null; return cfg; }
public void buildCFG(List<Instr> instrList) { CFG newBuild = new CFG(this); newBuild.build(instrList); cfg = newBuild; }
public void buildCFG(List<Instr> instrList) { CFG newBuild = new CFG(this); newBuild.build(instrList); cfg = newBuild; }
public CFG buildCFG() { cfg = new CFG(this); cfg.build(instrList); // Clear out instruction list after CFG has been built. this.instrList = null; return cfg; }
private CFG buildCFG(Instr[] instructions) { CFG newCFG = new CFG(getScope()); newCFG.build(instructions); return newCFG; }
private CFG buildCFG(Instr[] instructions) { CFG newCFG = new CFG(getScope()); newCFG.build(instructions); return newCFG; }
CFG newCFG = new CFG(clonedScope); Map<BasicBlock, BasicBlock> cloneBBMap = new HashMap<>();
CFG newCFG = new CFG(clonedScope); Map<BasicBlock, BasicBlock> cloneBBMap = new HashMap<>();
public CFG cloneForCloningClosure(IRScope scope, InlinerInfo ii) { Map<BasicBlock, BasicBlock> cloneBBMap = new HashMap<BasicBlock, BasicBlock>(); CFG clone = new CFG(scope);
public CFG cloneForCloningClosure(IRScope scope, InlinerInfo ii) { Map<BasicBlock, BasicBlock> cloneBBMap = new HashMap<BasicBlock, BasicBlock>(); CFG clone = new CFG(scope);
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(InlinerInfo ii) { CFG selfClone = new CFG(cfg.getScope()); // clone bbs BasicBlock entry = cfg.getEntryBB(); BasicBlock exit = cfg.getExitBB(); for (BasicBlock b : cfg.getBasicBlocks()) { if ((b != entry) && (b != exit)) { selfClone.addBasicBlock(b.cloneForInlinedMethod(ii)); } } // clone edges for (BasicBlock b: cfg.getBasicBlocks()) { if ((b != entry) && (b != exit)) { BasicBlock rb = ii.getRenamedBB(b); for (Edge<BasicBlock> e : cfg.getOutgoingEdges(b)) { BasicBlock destination = e.getDestination().getData(); if (destination != exit) selfClone.addEdge(rb, ii.getRenamedBB(destination), e.getType()); } } } return selfClone; }
private CFG cloneSelf(InlinerInfo ii) { CFG selfClone = new CFG(cfg.getScope()); // clone bbs BasicBlock entry = cfg.getEntryBB(); BasicBlock exit = cfg.getExitBB(); for (BasicBlock b : cfg.getBasicBlocks()) { if ((b != entry) && (b != exit)) { selfClone.addBasicBlock(b.cloneForInlinedMethod(ii)); } } // clone edges for (BasicBlock b: cfg.getBasicBlocks()) { if ((b != entry) && (b != exit)) { BasicBlock rb = ii.getRenamedBB(b); for (Edge<BasicBlock> e : cfg.getOutgoingEdges(b)) { BasicBlock destination = e.getDestination().getData(); if (destination != exit) 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; }