if (lastDivider != null) { lastDivider.insertOutEdge(pnode, CONTROL);
if (lastTotalBarrier != null) { lastTotalBarrier.insertOutEdge(pnode, CONTROL);
  private void computeControlAndBarrierDependences(OPT_Instruction start, 						   OPT_Instruction end) {    // (1) In a forward pass, we add the following dependences:    //    a) No load instruction may rise above an acquire    //    b) No instruction may rise above an UNINT_BEGIN (conservative),     //       a yieldpoint (we placed the yieldpoints where we wanted them),    //       or an IR_PROLOGUE.    OPT_DepGraphNode lastDivider = null;    OPT_DepGraphNode lastAcquire = null;    for (OPT_DepGraphNode pnode = (OPT_DepGraphNode) firstNode();         pnode != null;          pnode = (OPT_DepGraphNode) pnode.getNext())  {      OPT_Instruction p = pnode.instruction();      if (lastDivider != null) {	lastDivider.insertOutEdge(pnode, CONTROL);      }       if (lastAcquire != null && p.isLoad()) {	lastAcquire.insertOutEdge(pnode, CONTROL);      }      OPT_Operator pop = p.operator();      if (p.isYieldPoint() || pop == IR_PROLOGUE || pop == UNINT_BEGIN) {	lastDivider = pnode;      }      if (p.isAcquire() || p.isDynamicLinkingPoint()) {	lastAcquire = pnode;      }    }    // (2) In a backward pass we add the following dependences:    //    a) No store instruction may sink below a release.    //    b) No instruction may sink below an UNINT_END (conservative),    //       a branch/return, or a yieldpoint (again want to pin yieldpoints).    lastDivider = null;    OPT_DepGraphNode lastRelease = null;    for (OPT_DepGraphNode pnode = (OPT_DepGraphNode) lastNode();         pnode != null; 	 pnode = (OPT_DepGraphNode) pnode.getPrev())   {      OPT_Instruction p = pnode.instruction();      if (lastDivider != null) {	pnode.insertOutEdge(lastDivider, CONTROL);      }      if (lastRelease != null  && p.isStore()) {	pnode.insertOutEdge(lastRelease, CONTROL);      }      OPT_Operator pop = p.operator();      if (p.isBranch() || p.isReturn() || p.isYieldPoint() || pop == UNINT_END){	lastDivider = pnode;      }      if (p.isRelease() || p.isDynamicLinkingPoint()) {	lastRelease = pnode;      }    }      }