public void recordYieldSite(BasicBlock bb, YieldInstr i) { yieldSites.add(new Tuple<BasicBlock, YieldInstr>(bb, i)); }
public void recordYieldSite(BasicBlock bb, YieldInstr i) { yieldSites.add(new Tuple<BasicBlock, YieldInstr>(bb, i)); }
public void recordYieldSite(BasicBlock bb, YieldInstr i) { yieldSites.add(new Tuple<BasicBlock, YieldInstr>(bb, i)); }
public void recordYieldSite(BasicBlock bb, YieldInstr i) { yieldSites.add(new Tuple<BasicBlock, YieldInstr>(bb, i)); }
@Override public void instrChanged(BasicBlock basicBlock, Instr oldInstr, Instr newInstr, int index, OperationType op) { switch(op) { case REMOVE: { if (index > 0) { Instr previousInstr = basicBlock.getInstrs().get(index - 1); removedEdges.add(new Tuple<Instr, Instr>(previousInstr, oldInstr)); } removedList(basicBlock).add(oldInstr); } } }
@Override public void instrChanged(BasicBlock basicBlock, Instr oldInstr, Instr newInstr, int index, OperationType op) { switch(op) { case REMOVE: { if (index > 0) { Instr previousInstr = basicBlock.getInstrs().get(index - 1); removedEdges.add(new Tuple<Instr, Instr>(previousInstr, oldInstr)); } removedList(basicBlock).add(oldInstr); } } }
protected void visitInstrs(BasicBlock basicBlock) { List<Instr> instrs = basicBlock.getInstrs(); int size = instrs.size(); if (size > 0) { int lastIPC = Instr(instrs.get(0)); // Last BB processed needs to hook up to first in next one if not a Jump (fallthrough) if (lastInstr != null && !(lastInstr instanceof JumpInstr)) { instrEdges.add(new Tuple(System.identityHashCode(lastInstr), lastIPC)); } for (int i = 1; i < size; i++) { int ipc = Instr(instrs.get(i)); instrEdges.add(new Tuple(lastIPC, ipc)); lastIPC = ipc; } lastInstr = instrs.get(size - 1); } }
protected void visitInstrs(BasicBlock basicBlock) { List<Instr> instrs = basicBlock.getInstrs(); int size = instrs.size(); if (size > 0) { int lastIPC = Instr(instrs.get(0)); // Last BB processed needs to hook up to first in next one if not a Jump (fallthrough) if (lastInstr != null && !(lastInstr instanceof JumpInstr)) { instrEdges.add(new Tuple(System.identityHashCode(lastInstr), lastIPC)); } for (int i = 1; i < size; i++) { int ipc = Instr(instrs.get(i)); instrEdges.add(new Tuple(lastIPC, ipc)); lastIPC = ipc; } lastInstr = instrs.get(size - 1); } }
public int Instr(Instr instr) { int ipc = System.identityHashCode(instr); startTag(writer, "node", "id", ipc); startTag(writer, "properties"); property(writer, "label" , ipc); property(writer, "name", instr); // We have not processed all BBs yet so we cannot resolve ipc locations of the jumps destinations. if (instr instanceof BranchInstr) extraInstrEdges.add(new Tuple(ipc, (JumpTargetInstr) instr)); endTag(writer, "properties"); endTag(writer, "node"); return ipc; } }
public int Instr(Instr instr) { int ipc = System.identityHashCode(instr); startTag(writer, "node", "id", ipc); startTag(writer, "properties"); property(writer, "label" , ipc); property(writer, "name", instr); // We have not processed all BBs yet so we cannot resolve ipc locations of the jumps destinations. if (instr instanceof BranchInstr) extraInstrEdges.add(new Tuple(ipc, (JumpTargetInstr) instr)); endTag(writer, "properties"); endTag(writer, "node"); return ipc; } }
return new Tuple<Instr[], Map<Integer,Label[]>>(newInstrs.toArray(new Instr[newInstrs.size()]), ipcLabelMap);
return new Tuple<Instr[], Map<Integer,Label[]>>(newInstrs.toArray(new Instr[newInstrs.size()]), ipcLabelMap);
Variable rhsVal = createTemporaryVariable(); addInstr(new ReqdArgMultipleAsgnInstr(rhsVal, values, i)); assigns.add(new Tuple<>(an, rhsVal)); Variable rhsVal = createTemporaryVariable(); addInstr(new RestArgMultipleAsgnInstr(rhsVal, values, i, postArgsCount, 0)); assigns.add(new Tuple<>(restNode, rhsVal)); // rest of the argument array! Variable rhsVal = createTemporaryVariable(); addInstr(new ReqdArgMultipleAsgnInstr(rhsVal, values, i, postArgsCount, j)); // Fetch from the end assigns.add(new Tuple<>(an, rhsVal));
Variable rhsVal = createTemporaryVariable(); addInstr(new ReqdArgMultipleAsgnInstr(rhsVal, values, i)); assigns.add(new Tuple<>(an, rhsVal)); Variable rhsVal = createTemporaryVariable(); addInstr(new RestArgMultipleAsgnInstr(rhsVal, values, i, postArgsCount, 0)); assigns.add(new Tuple<>(restNode, rhsVal)); // rest of the argument array! Variable rhsVal = createTemporaryVariable(); addInstr(new ReqdArgMultipleAsgnInstr(rhsVal, values, i, postArgsCount, j)); // Fetch from the end assigns.add(new Tuple<>(an, rhsVal));