Lines Matching refs:phi
33 HInstruction* phi = nullptr; in RotateEntryPhiFirst() local
38 if (other->IsLoopHeaderPhi() && (phi == nullptr || phis.FoundBefore(other, phi))) { in RotateEntryPhiFirst()
39 phi = other; in RotateEntryPhiFirst()
45 if (phi != nullptr) { in RotateEntryPhiFirst()
405 HInstruction* phi = scc_[0]; in ClassifyNonTrivial() local
406 if (!phi->IsLoopHeaderPhi()) { in ClassifyNonTrivial()
411 InductionInfo* initial = LookupInfo(loop, phi->InputAt(0)); in ClassifyNonTrivial()
425 InductionInfo* update = TransferPhi(loop, phi, /*input_index*/ 1, /*adjust_input_size*/ 0); in ClassifyNonTrivial()
427 AssignInfo(loop, phi, CreateInduction(kWrapAround, in ClassifyNonTrivial()
443 update = SolvePhiAllInputs(loop, phi, instruction); in ClassifyNonTrivial()
446 loop, phi, instruction, instruction->InputAt(0), instruction->InputAt(1), kAdd, true); in ClassifyNonTrivial()
449 loop, phi, instruction, instruction->InputAt(0), instruction->InputAt(1), kSub, true); in ClassifyNonTrivial()
452 loop, phi, instruction, instruction->InputAt(0), instruction->InputAt(1), kMul); in ClassifyNonTrivial()
455 loop, phi, instruction, instruction->InputAt(0), instruction->InputAt(1), kDiv); in ClassifyNonTrivial()
458 loop, phi, instruction, instruction->InputAt(0), instruction->InputAt(1), kRem); in ClassifyNonTrivial()
462 update = SolveOp(loop, phi, instruction, instruction->InputAt(0), mulc, kMul); in ClassifyNonTrivial()
467 update = SolveOp(loop, phi, instruction, instruction->InputAt(0), divc, kDiv); in ClassifyNonTrivial()
471 loop, phi, instruction, instruction->InputAt(0), instruction->InputAt(1), kXor); in ClassifyNonTrivial()
473 update = SolveTest(loop, phi, instruction, 0); in ClassifyNonTrivial()
475 update = SolveTest(loop, phi, instruction, 1); in ClassifyNonTrivial()
479 update = SolveConversion(loop, phi, instruction->AsTypeConversion()); in ClassifyNonTrivial()
488 InductionInfo* induction = SolvePhi(phi, /*input_index*/ 1, /*adjust_input_size*/ 0); in ClassifyNonTrivial()
500 AssignInfo(loop, phi, induction); in ClassifyNonTrivial()
513 AssignInfo(loop, phi, induction); in ClassifyNonTrivial()
546 HInstruction* phi, in TransferPhi() argument
550 HInputsRef inputs = phi->GetInputs(); in TransferPhi()
675 HInductionVarAnalysis::InductionInfo* HInductionVarAnalysis::SolvePhi(HInstruction* phi, in SolvePhi() argument
679 HInputsRef inputs = phi->GetInputs(); in SolvePhi()
698 HInstruction* phi) { in SolvePhiAllInputs() argument
700 InductionInfo* match = SolvePhi(phi, /*input_index*/ 0, /*adjust_input_size*/ 0); in SolvePhiAllInputs()
708 if (phi->IsLoopHeaderPhi() && phi->InputCount() == 2) { in SolvePhiAllInputs()
709 InductionInfo* a = LookupInfo(loop, phi->InputAt(0)); in SolvePhiAllInputs()
711 if (phi->InputAt(1) == entry_phi) { in SolvePhiAllInputs()
715 InductionInfo* b = SolvePhi(phi, /*input_index*/ 1, /*adjust_input_size*/ 0); in SolvePhiAllInputs()
1326 void HInductionVarAnalysis::AssignCycle(HPhi* phi) { in AssignCycle() argument
1327 ArenaSet<HInstruction*>* set = &cycles_.Put(phi, ArenaSet<HInstruction*>( in AssignCycle()
1334 ArenaSet<HInstruction*>* HInductionVarAnalysis::LookupCycle(HPhi* phi) { in LookupCycle() argument
1335 auto it = cycles_.find(phi); in LookupCycle()