Lines Matching refs:a

101                         HInstruction* a,  in IsGuardedBy()  argument
130 if (if_expr->InputAt(0) == a && if_expr->InputAt(1) == b) { in IsGuardedBy()
132 } else if (if_expr->InputAt(1) == a && if_expr->InputAt(0) == b) { in IsGuardedBy()
552 InductionInfo* a = LookupInfo(loop, inputs[input_index]); in TransferPhi() local
555 if (!InductionEqual(a, b)) { in TransferPhi()
559 return a; in TransferPhi()
562 HInductionVarAnalysis::InductionInfo* HInductionVarAnalysis::TransferAddSub(InductionInfo* a, in TransferAddSub() argument
568 if (a != nullptr && b != nullptr) { in TransferAddSub()
569 if (IsNarrowingLinear(a) || IsNarrowingLinear(b)) { in TransferAddSub()
571 } else if (a->induction_class == kInvariant && b->induction_class == kInvariant) { in TransferAddSub()
572 return CreateInvariantOp(op, a, b); // direct invariant in TransferAddSub()
573 } else if ((a->induction_class == kLinear && b->induction_class == kLinear) || in TransferAddSub()
574 (a->induction_class == kPolynomial && b->induction_class == kPolynomial)) { in TransferAddSub()
576 InductionInfo* new_a = TransferAddSub(a->op_a, b->op_a, op); in TransferAddSub()
577 InductionInfo* new_b = TransferAddSub(a->op_b, b->op_b, op); in TransferAddSub()
579 return CreateInduction(a->induction_class, a->operation, new_a, new_b, a->fetch, type_); in TransferAddSub()
581 } else if (a->induction_class == kInvariant) { in TransferAddSub()
584 InductionInfo* new_b = TransferAddSub(a, b->op_b, op); in TransferAddSub()
586 new_a = TransferAddSub(a, new_a, op); in TransferAddSub()
595 InductionInfo* new_a = a->op_a; in TransferAddSub()
596 InductionInfo* new_b = TransferAddSub(a->op_b, b, op); in TransferAddSub()
597 if (a->induction_class == kWrapAround || a->induction_class == kPeriodic) { in TransferAddSub()
601 return CreateInduction(a->induction_class, a->operation, new_a, new_b, a->fetch, type_); in TransferAddSub()
608 HInductionVarAnalysis::InductionInfo* HInductionVarAnalysis::TransferNeg(InductionInfo* a) { in TransferNeg() argument
611 if (a != nullptr) { in TransferNeg()
612 if (IsNarrowingLinear(a)) { in TransferNeg()
614 } else if (a->induction_class == kInvariant) { in TransferNeg()
615 return CreateInvariantOp(kNeg, nullptr, a); // direct invariant in TransferNeg()
616 } else if (a->induction_class != kGeometric || a->operation == kMul) { in TransferNeg()
618 InductionInfo* new_a = TransferNeg(a->op_a); in TransferNeg()
619 InductionInfo* new_b = TransferNeg(a->op_b); in TransferNeg()
621 return CreateInduction(a->induction_class, a->operation, new_a, new_b, a->fetch, type_); in TransferNeg()
628 HInductionVarAnalysis::InductionInfo* HInductionVarAnalysis::TransferMul(InductionInfo* a, in TransferMul() argument
633 if (a != nullptr && b != nullptr) { in TransferMul()
634 if (IsNarrowingLinear(a) || IsNarrowingLinear(b)) { in TransferMul()
636 } else if (a->induction_class == kInvariant && b->induction_class == kInvariant) { in TransferMul()
637 return CreateInvariantOp(kMul, a, b); // direct invariant in TransferMul()
638 } else if (a->induction_class == kInvariant && (b->induction_class != kGeometric || in TransferMul()
641 InductionInfo* new_a = TransferMul(a, b->op_a); in TransferMul()
642 InductionInfo* new_b = TransferMul(a, b->op_b); in TransferMul()
646 } else if (b->induction_class == kInvariant && (a->induction_class != kGeometric || in TransferMul()
647 a->operation == kMul)) { in TransferMul()
649 InductionInfo* new_a = TransferMul(a->op_a, b); in TransferMul()
650 InductionInfo* new_b = TransferMul(a->op_b, b); in TransferMul()
652 return CreateInduction(a->induction_class, a->operation, new_a, new_b, a->fetch, type_); in TransferMul()
660 InductionInfo* a, in TransferConversion() argument
663 if (a != nullptr) { in TransferConversion()
667 a->induction_class == kLinear && in TransferConversion()
668 (a->type == to || IsNarrowingIntegralConversion(a->type, to))) { in TransferConversion()
669 return CreateInduction(kLinear, kNop, a->op_a, a->op_b, a->fetch, to); in TransferConversion()
709 InductionInfo* a = LookupInfo(loop, phi->InputAt(0)); in SolvePhiAllInputs() local
710 if (a != nullptr && a->induction_class == kInvariant) { in SolvePhiAllInputs()
713 return CreateInduction(kPeriodic, kNop, a, initial, /*fetch*/ nullptr, type_); in SolvePhiAllInputs()
717 return CreateInduction(kPeriodic, kNop, a, b, /*fetch*/ nullptr, type_); in SolvePhiAllInputs()
742 InductionInfo* a = it->second; in SolveAddSub() local
743 if (a->induction_class == kInvariant) { in SolveAddSub()
744 return CreateInvariantOp(op, a, b); in SolveAddSub()
770 InductionInfo* a = LookupInfo(loop, x); in SolveAddSub() local
771 if (a != nullptr && a->induction_class == kInvariant) { in SolveAddSub()
775 CreateInvariantOp(kSub, a, initial), in SolveAddSub()
798 InductionInfo* a = LookupInfo(loop, x); in SolveOp() local
799 if (a != nullptr && a->induction_class == kInvariant && entry_phi == y) { in SolveOp()
800 c = a; in SolveOp()
904 InductionInfo* a = LookupInfo(loop, condition->InputAt(0)); in VisitControl() local
909 if (a == nullptr || b == nullptr) { in VisitControl()
912 VisitCondition(loop, if_false, a, b, type, condition->GetOppositeCondition()); in VisitControl()
914 VisitCondition(loop, if_true, a, b, type, condition->GetCondition()); in VisitControl()
922 InductionInfo* a, in VisitCondition() argument
926 if (a->induction_class == kInvariant && b->induction_class == kLinear) { in VisitCondition()
929 case kCondLT: VisitCondition(loop, body, b, a, type, kCondGT); break; in VisitCondition()
930 case kCondLE: VisitCondition(loop, body, b, a, type, kCondGE); break; in VisitCondition()
931 case kCondGT: VisitCondition(loop, body, b, a, type, kCondLT); break; in VisitCondition()
932 case kCondGE: VisitCondition(loop, body, b, a, type, kCondLE); break; in VisitCondition()
933 case kCondNE: VisitCondition(loop, body, b, a, type, kCondNE); break; in VisitCondition()
936 } else if (a->induction_class == kLinear && b->induction_class == kInvariant) { in VisitCondition()
938 InductionInfo* lower_expr = a->op_b; in VisitCondition()
940 InductionInfo* stride_expr = a->op_a; in VisitCondition()
963 if (type != a->type && in VisitCondition()
964 !FitsNarrowerControl(lower_expr, upper_expr, stride_value, a->type, cmp)) { in VisitCondition()
1236 InductionInfo* a, in CreateSimplifiedInvariant() argument
1243 if (IsExact(a, &value)) { in CreateSimplifiedInvariant()
1249 return a; in CreateSimplifiedInvariant()
1264 return a; in CreateSimplifiedInvariant()
1271 return a; in CreateSimplifiedInvariant()
1273 return CreateSimplifiedInvariant(kNeg, nullptr, a); in CreateSimplifiedInvariant()
1279 return CreateSimplifiedInvariant(kSub, a, b->op_b); in CreateSimplifiedInvariant()
1281 return CreateSimplifiedInvariant(kAdd, a, b->op_b); in CreateSimplifiedInvariant()
1292 kInvariant, op, a, b, nullptr, ImplicitConversion(b->type)); in CreateSimplifiedInvariant()