anchor.diff:        HBasicBlock userLoopHeader = user.block.enclosingLoopHeader;
         if (isNested(userLoopHeader, currentLoopHeader)) return true;
       }
  +
  +    // Insert type guards for small methods with no loops and multiple
  +    // uses. These are expected to be helper methods that could
  +    // benefit from type guards. If there is a loop, we expect the
  +    // loop to take most of the time and that inserting a type guard
  +    // for something not used in the loop will not be valuable.
  +    if (smallMethodNoLoops && instruction.usedBy.length > 2) return true;
  +
       return false;
     }
   
  
positive.code: 
    bool typeGuardWouldBeValuable(HInstruction instruction,
                                  HType speculativeType) {
  
      Element source = instruction.sourceElement;
      // Do not insert a type guard if the instruction has a type
      // annotation that disagrees with the speculated type.
      if (source !== null) {
        Type sourceType = source.computeType(compiler);
        Type speculatedType = speculativeType.computeType(compiler);
  
negative.code:       }
      }
  
      // Insert type guards if there are uses in loops.
      bool isNested(HBasicBlock inner, HBasicBlock outer) {
        if (inner === outer) return false;
        if (outer === null) return true;
  