splitBB = callBB.splitAtInstruction(call, splitBBLabel, false); cfg.addBasicBlock(splitBB); for (Edge<BasicBlock> e : cfg.getOutgoingEdges(callBB)) {
splitBB = callBB.splitAtInstruction(call, splitBBLabel, false); cfg.addBasicBlock(splitBB); for (Edge<BasicBlock> e : cfg.getOutgoingEdges(callBB)) {
BasicBlock afterInlineBB = callBB.splitAtInstruction(call, splitBBLabel, false); BasicBlock beforeInlineBB = callBB; connectOuterEdges(beforeInlineBB, afterInlineBB);
BasicBlock afterInlineBB = callBB.splitAtInstruction(call, splitBBLabel, false); BasicBlock beforeInlineBB = callBB; connectOuterEdges(beforeInlineBB, afterInlineBB);
private void inlineClosureAtYieldSite(InlinerInfo ii, IRClosure cl, BasicBlock yieldBB, YieldInstr yield) { BasicBlock splitBB = yieldBB.splitAtInstruction(yield, cfg.getScope().getNewLabel(), false); cfg.addBasicBlock(splitBB); for (Edge<BasicBlock> e : cfg.getOutgoingEdges(yieldBB)) {
private void inlineClosureAtYieldSite(InlinerInfo ii, IRClosure cl, BasicBlock yieldBB, YieldInstr yield) { BasicBlock splitBB = yieldBB.splitAtInstruction(yield, cfg.getScope().getNewLabel(), false); cfg.addBasicBlock(splitBB); for (Edge<BasicBlock> e : cfg.getOutgoingEdges(yieldBB)) {
private void inlineClosureAtYieldSite(InlineCloneInfo ii, IRClosure cl, BasicBlock yieldBB, YieldInstr yield) { BasicBlock afterInlineBB = yieldBB.splitAtInstruction(yield, hostScope.getNewLabel(), false); BasicBlock beforeInlineBB = yieldBB; connectOuterEdges(beforeInlineBB, afterInlineBB);
private void inlineClosureAtYieldSite(InlineCloneInfo ii, IRClosure cl, BasicBlock yieldBB, YieldInstr yield) { BasicBlock afterInlineBB = yieldBB.splitAtInstruction(yield, hostScope.getNewLabel(), false); BasicBlock beforeInlineBB = yieldBB; connectOuterEdges(beforeInlineBB, afterInlineBB);