@Override
 public String toString() {
   CompilerAsserts.neverPartOfCompilation();
   String superString = rootNode.toString();
   if (isValid()) {
     superString += " <opt>";
   }
   if (sourceCallTarget != null) {
     superString += " <split-" + cloneIndex + "-" + argumentStamp.toStringShort() + ">";
   }
   return superString;
 }
 public OptimizedCallTarget(
     OptimizedCallTarget sourceCallTarget,
     RootNode rootNode,
     GraalTruffleRuntime runtime,
     CompilationPolicy compilationPolicy,
     SpeculationLog speculationLog) {
   super(rootNode.toString());
   this.sourceCallTarget = sourceCallTarget;
   this.runtime = runtime;
   this.speculationLog = speculationLog;
   this.rootNode = rootNode;
   this.compilationPolicy = compilationPolicy;
   this.rootNode.adoptChildren();
   this.rootNode.applyInstrumentation();
   if (TruffleCallTargetProfiling.getValue()) {
     this.compilationProfile = new TraceCompilationProfile();
   } else {
     this.compilationProfile = new CompilationProfile();
   }
   this.nodeRewritingAssumption =
       new CyclicAssumption("nodeRewritingAssumption of " + rootNode.toString());
 }