Home
last modified time | relevance | path

Searched refs:phi (Results 26 – 50 of 61) sorted by relevance

123

/art/test/431-type-propagation/smali/
DTypePropagation.smali25 # Putting a float in v1 will lead to the creation of a phi with one
30 # the phi prior to doing type propagation.
34 # This environment is the reason why a phi is created at the join block
/art/test/596-checker-dead-phi/
Dinfo.txt2 phi with its first incoming input.
/art/compiler/optimizing/
Dinduction_var_range.h149 ArenaSet<HInstruction*>* LookupCycle(HPhi* phi) const { in LookupCycle() argument
150 return induction_analysis_->LookupCycle(phi); in LookupCycle()
158 bool IsClassified(HPhi* phi) const { in IsClassified() argument
159 HLoopInformation* lp = phi->GetBlock()->GetLoopInformation(); // closest enveloping loop in IsClassified()
160 return (lp != nullptr) && (induction_analysis_->LookupInfo(lp, phi) != nullptr); in IsClassified()
Dinduction_var_analysis.h164 HInstruction* phi,
173 InductionInfo* SolvePhi(HInstruction* phi, size_t input_index, size_t adjust_input_size);
176 HInstruction* phi);
244 void AssignCycle(HPhi* phi);
245 ArenaSet<HInstruction*>* LookupCycle(HPhi* phi);
Dloop_optimization.h205 void GenerateVecReductionPhi(HPhi* phi);
206 void GenerateVecReductionPhiInputs(HPhi* phi, HInstruction* reduction);
249 bool TrySetPhiInduction(HPhi* phi, bool restrict_uses);
250 bool TrySetPhiReduction(HPhi* phi);
Dreference_type_propagation.cc78 void VisitPhi(HPhi* phi) override;
92 void UpdatePhi(HPhi* phi) REQUIRES_SHARED(Locks::mutator_lock_);
741 void ReferenceTypePropagation::RTPVisitor::VisitPhi(HPhi* phi) { in VisitPhi() argument
742 if (phi->IsDead() || phi->GetType() != DataType::Type::kReference) { in VisitPhi()
746 if (phi->GetBlock()->IsLoopHeader()) { in VisitPhi()
749 HInstruction* first_input = phi->InputAt(0); in VisitPhi()
752 phi->SetCanBeNull(first_input->CanBeNull()); in VisitPhi()
753 phi->SetReferenceTypeInfo(first_input_rti); in VisitPhi()
755 AddToWorklist(phi); in VisitPhi()
762 UpdateNullability(phi); in VisitPhi()
[all …]
Dlive_ranges_test.cc323 HPhi* phi = liveness.GetInstructionFromSsaIndex(1)->AsPhi(); in TEST_F() local
324 interval = phi->GetLiveInterval(); in TEST_F()
423 HPhi* phi = liveness.GetInstructionFromSsaIndex(4)->AsPhi(); in TEST_F() local
424 ASSERT_TRUE(phi->GetUses().HasExactlyOneElement()); in TEST_F()
425 interval = phi->GetLiveInterval(); in TEST_F()
Dsuperblock_cloner_test.cc72 HPhi* phi = new (GetAllocator()) HPhi(GetAllocator(), 0, 0, DataType::Type::kInt32); in CreateBasicLoopDataFlow() local
74 HInstruction* loop_check = new (GetAllocator()) HGreaterThanOrEqual(phi, const_128); in CreateBasicLoopDataFlow()
76 loop_header->AddPhi(phi); in CreateBasicLoopDataFlow()
84 HInstruction* bounds_check = new (GetAllocator()) HBoundsCheck(phi, array_length, dex_pc); in CreateBasicLoopDataFlow()
90 HInstruction* induction_inc = new (GetAllocator()) HAdd(DataType::Type::kInt32, phi, const_1); in CreateBasicLoopDataFlow()
101 phi->AddInput(const_0); in CreateBasicLoopDataFlow()
102 phi->AddInput(induction_inc); in CreateBasicLoopDataFlow()
107 ArenaVector<HInstruction*> current_locals({phi, const_128, parameters_[0]}, in CreateBasicLoopDataFlow()
Dnodes.cc376 HPhi* phi = it.Current()->AsPhi(); in FixPhisAfterPredecessorsReodering() local
377 HInstruction* first_instr = phi->InputAt(first); in FixPhisAfterPredecessorsReodering()
378 HInstruction* second_instr = phi->InputAt(second); in FixPhisAfterPredecessorsReodering()
379 phi->ReplaceInput(first_instr, second); in FixPhisAfterPredecessorsReodering()
380 phi->ReplaceInput(second_instr, first); in FixPhisAfterPredecessorsReodering()
1005 void HBasicBlock::AddPhi(HPhi* phi) { in AddPhi() argument
1006 Add(&phis_, this, phi); in AddPhi()
1036 void HBasicBlock::InsertPhiAfter(HPhi* phi, HPhi* cursor) { in InsertPhiAfter() argument
1037 DCHECK_EQ(phi->GetId(), -1); in InsertPhiAfter()
1040 phi->SetBlock(this); in InsertPhiAfter()
[all …]
Dregister_allocator_linear_scan.h89 void AllocateSpillSlotForCatchPhi(HPhi* phi);
Dgraph_checker.h55 void VisitPhi(HPhi* phi) override;
Dssa_liveness_analysis.cc191 HInstruction* phi = phi_it.Current(); in ComputeLiveRanges() local
192 HInstruction* input = phi->InputAt(phi_input_index); in ComputeLiveRanges()
193 input->GetLiveInterval()->AddPhiUse(phi, phi_input_index, block); in ComputeLiveRanges()
Dregister_allocation_resolver.cc187 HInstruction* phi = inst_it.Current(); in Resolve() local
191 HInstruction* input = phi->InputAt(i); in Resolve()
194 Location destination = phi->GetLiveInterval()->ToLocation(); in Resolve()
195 InsertParallelMoveAtExitOf(predecessor, phi, source, destination); in Resolve()
/art/test/429-ssa-builder/
Dinfo.txt2 compiler, that used to crash when dealing with phi floating-point
/art/test/481-regression-phi-cond/
DAndroid.bp3 name: "art-run-test-481-regression-phi-cond",
/art/test/499-bce-phi-array-length/
DAndroid.bp3 name: "art-run-test-499-bce-phi-array-length",
/art/test/472-type-propagation/
Dinfo.txt2 If a phi requests its inputs to be of a certain type, the inputs need
/art/test/510-checker-try-catch/smali/
DSsaBuilder.smali128 # Tests that phi elimination does not remove catch phis where the value does
129 # not dominate the phi.
151 # The constant in entry block will dominate the vreg 0 catch phi.
154 # Insert addition so that the value of vreg 1 does not dominate the phi.
170 # Tests that phi elimination loops until no more phis can be removed.
/art/test/563-checker-fakestring/smali/
DTestCase.smali239 # Test deoptimization after String initialization of a phi.
375 # Regression test for a new string flowing into a catch phi.
397 # Initially, we create a catch phi with the potential uninitalized string, which used to
398 # trip the compiler. However, using that catch phi is an error caught by the verifier, so
399 # having the phi is benign.
407 # Same test as above, but with a catch phi being used by the string constructor.
426 # Same test as above, but with a catch phi being used by the string constructor and
/art/test/594-checker-irreducible-linorder/smali/
DIrreducibleLoop.smali99 # This constant has a use in a phi in :back_edge2 and a back edge use in
101 # a lower liveness than the phi use.
/art/test/520-equivalent-phi/smali/
DEquivalent.smali30 # we would consider the phi equivalent reference of v0, as dead,
/art/test/537-checker-debuggable/smali/
DTestCase.smali19 # The phi in this method has no actual uses but one environment use. It will
/art/test/557-checker-ref-equivalent/smali/
DTestCase.smali37 # We used to have a reference and an integer phi equivalents here, which
/art/test/552-checker-primitive-typeprop/smali/
DTypePropagation.smali57 # p2 = void (loop phi) => p2 = merge(int,int) = int
129 # requests float equivalent of p4 phi in loop1 => conflict
/art/test/530-checker-regression-reftyp-final/smali/
DTestCase.smali18 # Inliner used to assign exact type to the artificial multiple-return phi if the

123