lib/SILOptimizer/Mandatory/LowerHopToActor.cpp
bool LowerHopToActor::processHop(HopToExecutorInst *hop) {
  auto actor = hop->getTargetExecutor();

  // Ignore hops that are already to Builtin.Executor.
  if (actor->getType().is<BuiltinExecutorType>())
    return false;

  B.setInsertionPoint(hop);

  // Get the dominating executor value for this actor, if available,
  // or else emit code to derive it.
  SILValue executor = emitGetExecutor(hop->getLoc(), actor);

  B.createHopToExecutor(hop->getLoc(), executor);

  hop->eraseFromParent();

  return true;
}
/// Search for hop_to_executor instructions with actor-typed operands.
Search for hop_to_executor instructions with actor-typed operands.
Search for hop_to_executor instructions with actor - typed operands .
bool LowerHopToActor::processHop(HopToExecutorInst *hop) {
  auto actor = hop->getTargetExecutor();
  if (actor->getType().is<BuiltinExecutorType>())
    return false;
  B.setInsertionPoint(hop);
  SILValue executor = emitGetExecutor(hop->getLoc(), actor);
  B.createHopToExecutor(hop->getLoc(), executor);
  hop->eraseFromParent();
  return true;
}
bool LowerHopToActor :: processHop ( HopToExecutorInst * hop ) { auto actor = hop -> getTargetExecutor ( ) ; if ( actor -> getType ( ) . is < BuiltinExecutorType > ( ) ) return false ; B . setInsertionPoint ( hop ) ; SILValue executor = emitGetExecutor ( hop -> getLoc ( ) , actor ) ; B . createHopToExecutor ( hop -> getLoc ( ) , executor ) ; hop -> eraseFromParent ( ) ; return true ; }
Search for hop_to_executor instructions with actor-typed operands.
Search for hop_to_executor instructions with actor - typed operands .
// Ignore hops that are already to Builtin.Executor. // Get the dominating executor value for this actor, if available, // or else emit code to derive it.