Home | History | Annotate | Download | only in optimizing

Lines Matching full:equivalent

78             << "More then one phi equivalent with type " << phi->GetType()
94 // If the phi equivalent is dead, check if there is another one.
101 // We found a live phi equivalent. Update the environment uses of `phi` with it.
190 // generate a suitably typed equivalent.
191 HInstruction* equivalent = (common_type == DataType::Type::kReference)
194 if (equivalent == nullptr) {
200 DCHECK_NE(input, equivalent);
202 phi->ReplaceInput(equivalent, i);
203 if (equivalent->IsPhi()) {
204 worklist->push_back(equivalent->AsPhi());
209 // them with a suitable equivalent. Report success.
296 HArrayGet* equivalent = new (aget->GetBlock()->GetGraph()->GetAllocator()) HArrayGet(
301 aget->GetBlock()->InsertInstructionAfter(equivalent, aget);
302 return equivalent;
318 // The wrong ArrayGet equivalent may still have Phi uses coming from ArraySet
342 // There is a float/double equivalent. We must replace it and re-run
352 // would create the typed equivalent. Create it now.
365 // equivalent of the wrong type with GetFloatOrDoubleEquivalentOfArrayGet
387 // with its floating-point equivalent. The replacement must always
389 equivalent = GetFloatOrDoubleEquivalent(value, array_type);
390 DCHECK(equivalent != nullptr);
391 aset->ReplaceInput(equivalent, /* input_index */ 2);
392 if (equivalent->IsPhi()) {
393 // Returned equivalent is a phi which may not have had its inputs
395 worklist.push_back(equivalent->AsPhi());
492 // case, or float/double/reference if we created an equivalent phi. So we need
533 // 7) Make sure environments use the right phi equivalent: a phi marked dead
534 // can have a phi equivalent that is not dead. In that case we have to replace
535 // it with the live equivalent because deoptimization and try/catch rely on
565 * is used for floating point operations. We create a floating-point equivalent
578 // the floating point equivalent of this constant.
587 * is used for floating point operations. We create a floating-point equivalent
600 // the floating point equivalent of this constant.
614 DCHECK(phi->IsLive()) << "Cannot get equivalent of a dead phi since it would create a live one.";
641 // An existing equivalent was found. If it is dead, conflict was previously
660 // int/long. Requesting a float/double equivalent should lead to a conflict.
668 // equivalent float/double instruction to use until it is resolved.
669 HArrayGet* equivalent = FindFloatOrDoubleEquivalentOfArrayGet(aget);
670 return (equivalent == nullptr) ? CreateFloatOrDoubleEquivalentOfArrayGet(aget) : equivalent;