/** * The last instruction in the BB which will exit the BB. Note: This also * means any instructions past this point in that BB are unreachable. */ public boolean endsBasicBlock() { return transfersControl(); }
/** * The last instruction in the BB which will exit the BB. Note: This also * means any instructions past this point in that BB are unreachable. */ public boolean endsBasicBlock() { return transfersControl(); }
public boolean transfersControl() { return operation.transfersControl(); }
public boolean transfersControl() { return operation.transfersControl(); }
public boolean transfersControl() { return operation.transfersControl(); }
public boolean transfersControl() { return operation.transfersControl(); }
public boolean endsBasicBlock() { return transfersControl(); }
public boolean endsBasicBlock() { return transfersControl(); }
private static void addJumpIfNextNotDestination(CFG cfg, BasicBlock next, Instr lastInstr, BasicBlock current) { Iterator<BasicBlock> outs = cfg.getOutgoingDestinations(current).iterator(); BasicBlock target = outs.hasNext() ? outs.next() : null; if (target != null && !outs.hasNext()) { if ((target != next) && ((lastInstr == null) || !lastInstr.getOperation().transfersControl())) { current.addInstr(new JumpInstr(target.getLabel())); } } }
private static void addJumpIfNextNotDestination(CFG cfg, BasicBlock next, Instr lastInstr, BasicBlock current) { Iterator<BasicBlock> outs = cfg.getOutgoingDestinations(current).iterator(); BasicBlock target = outs.hasNext() ? outs.next() : null; if (target != null && !outs.hasNext()) { if ((target != next) && ((lastInstr == null) || !lastInstr.getOperation().transfersControl())) { current.addInstr(new JumpInstr(target.getLabel())); } } }
private static void addJumpIfNextNotDestination(CFG cfg, BasicBlock next, Instr lastInstr, BasicBlock current) { Iterator<BasicBlock> outs = cfg.getOutgoingDestinations(current).iterator(); BasicBlock target = outs.hasNext() ? outs.next() : null; if (target != null && !outs.hasNext()) { if ((target != next) && ((lastInstr == null) || !lastInstr.getOperation().transfersControl())) { current.addInstr(new JumpInstr(target.getLabel())); } } }
private static void addJumpIfNextNotDestination(CFG cfg, BasicBlock next, Instr lastInstr, BasicBlock current) { Iterator<BasicBlock> outs = cfg.getOutgoingDestinations(current).iterator(); BasicBlock target = outs.hasNext() ? outs.next() : null; if (target != null && !outs.hasNext()) { if ((target != next) && ((lastInstr == null) || !lastInstr.getOperation().transfersControl())) { current.addInstr(new JumpInstr(target.getLabel())); } } }
if ((lastInstr == null) || !lastInstr.getOperation().transfersControl()) {
if ((lastInstr == null) || !lastInstr.getOperation().transfersControl()) {
if ((lastInstr == null) || !lastInstr.getOperation().transfersControl()) {
if ((lastInstr == null) || !lastInstr.getOperation().transfersControl()) {
Instr i = instrs.previous(); assert i.getOperation().transfersControl(): "Last instruction of GEB in scope: " + getScope() + " is " + i + ", not a control-xfer instruction"; addScopeExitStoreLocalVars(instrs, dirtyVars, varRenameMap);
Instr i = instrs.previous(); assert i.getOperation().transfersControl(): "Last instruction of GEB in scope: " + getScope() + " is " + i + ", not a control-xfer instruction"; addScopeExitStoreLocalVars(instrs, dirtyVars, varRenameMap);
assert i.getOperation().transfersControl(): "Last instruction of GEB in scope: " + scope + " is " + i + ", not a control-xfer instruction"; instrs.previous();
assert i.getOperation().transfersControl(): "Last instruction of GEB in scope: " + scope + " is " + i + ", not a control-xfer instruction"; instrs.previous();