OPT_AvailableExpression ae = cache.find(inst);
AvailableExpression ae = cache.find(inst);
  private void checkHelper (OPT_IR ir, OPT_AvExCache cache, 			    OPT_Instruction inst) {    // look up the check in the cache    OPT_AvailableExpression ae = cache.find(inst);    if (ae != null) {      OPT_RegisterOperand dest = GuardResultCarrier.getClearGuardResult(inst);      if (ae.tmp == null) {	// generate a new temporary, and store in the AE cache	OPT_RegisterOperand newRes = ir.regpool.makeTemp(dest.type);	ae.tmp = newRes.register;	// (2) Modify ae.inst to assign its guard result to the new temporary	// and then insert a guard move from the new temporary to the 	// old guard result of ae.inst after ae.inst.	OPT_RegisterOperand res = GuardResultCarrier.getClearGuardResult(ae.inst);	GuardResultCarrier.setGuardResult(ae.inst, newRes);	ae.inst.insertAfter(Move.create(GUARD_MOVE, res, newRes.copyD2U()));	// (3) replace inst with a move from the new temporary	Move.mutate(inst, GUARD_MOVE, dest, newRes.copyD2U());      } else {	// already have a temp. replace inst with a guard move	OPT_RegisterOperand newRes = new OPT_RegisterOperand(ae.tmp, dest.type);	Move.mutate(inst, GUARD_MOVE, dest, newRes);      }    } else {      // did not find a match: insert new entry in cache      cache.insert(inst);    }  }