Home
last modified time | relevance | path

Searched refs:HLoopInformation (Results 1 – 25 of 32) sorted by relevance

12

/art/compiler/optimizing/
Dinduction_var_analysis.h155 void VisitLoop(HLoopInformation* loop);
156 void VisitNode(HLoopInformation* loop, HInstruction* instruction);
157 uint32_t VisitDescendant(HLoopInformation* loop, HInstruction* instruction);
158 void ClassifyTrivial(HLoopInformation* loop, HInstruction* instruction);
159 void ClassifyNonTrivial(HLoopInformation* loop);
163 InductionInfo* TransferPhi(HLoopInformation* loop,
174 InductionInfo* SolvePhiAllInputs(HLoopInformation* loop,
177 InductionInfo* SolveAddSub(HLoopInformation* loop,
184 InductionInfo* SolveOp(HLoopInformation* loop,
190 InductionInfo* SolveTest(HLoopInformation* loop,
[all …]
Dlinear_order.cc24 static bool InSameLoop(HLoopInformation* first_loop, HLoopInformation* second_loop) { in InSameLoop()
28 static bool IsLoop(HLoopInformation* info) { in IsLoop()
32 static bool IsInnerLoop(HLoopInformation* outer, HLoopInformation* inner) { in IsInnerLoop()
42 HLoopInformation* block_loop = block->GetLoopInformation(); in AddToListForLinearization()
46 HLoopInformation* current_loop = current->GetLoopInformation(); in AddToListForLinearization()
63 HLoopInformation* loop = header->GetLoopInformation(); in IsLinearOrderWellFormed()
Dloop_analysis.h35 explicit LoopAnalysisInfo(HLoopInformation* loop_info) in LoopAnalysisInfo()
68 HLoopInformation* GetLoopInfo() const { return loop_info_; } in GetLoopInfo()
90 HLoopInformation* loop_info_;
101 static void CalculateLoopBasicProperties(HLoopInformation* loop_info,
106 static int64_t GetLoopTripCount(HLoopInformation* loop_info,
Dsuperblock_cloner.h220 HLoopInformation* GetRegionToBeAdjusted() const { in GetRegionToBeAdjusted()
367 HLoopInformation* outer_loop_;
384 LoopClonerHelper(HLoopInformation* info, in LoopClonerHelper()
395 static bool IsLoopClonable(HLoopInformation* loop_info);
485 HLoopInformation* GetRegionToBeAdjusted() const { return cloner_.GetRegionToBeAdjusted(); } in GetRegionToBeAdjusted()
498 HLoopInformation* loop_info_;
510 LoopClonerSimpleHelper(HLoopInformation* info, InductionVarRange* induction_range);
515 HLoopInformation* GetRegionToBeAdjusted() const { return helper_.GetRegionToBeAdjusted(); } in GetRegionToBeAdjusted()
530 HLoopInformation* loop_info,
547 HLoopInformation* FindCommonLoop(HLoopInformation* loop1, HLoopInformation* loop2);
Dlicm.cc33 HLoopInformation* info = instruction->GetBlock()->GetLoopInformation(); in InputsAreDefinedBeforeLoop()
35 HLoopInformation* input_loop = input->GetBlock()->GetLoopInformation(); in InputsAreDefinedBeforeLoop()
49 HLoopInformation* input_loop = input->GetBlock()->GetLoopInformation(); in InputsAreDefinedBeforeLoop()
67 static void UpdateLoopPhisIn(HEnvironment* environment, HLoopInformation* info) { in UpdateLoopPhisIn()
101 HLoopInformation* loop_info = block->GetLoopInformation(); in Run()
Dsuperblock_cloner_test.cc163 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F()
242 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F()
306 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F()
310 HLoopInformation* new_loop_info = new_header->GetLoopInformation(); in TEST_F()
343 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F()
380 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F()
391 HLoopInformation* second_loop_info = second_header->GetLoopInformation(); in TEST_F()
445 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F()
490 HLoopInformation* loop2_info_before = loop2_header->GetLoopInformation(); in TEST_F()
491 HLoopInformation* loop3_info_before = loop3_header->GetLoopInformation(); in TEST_F()
[all …]
Dloop_optimization.h55 explicit LoopNode(HLoopInformation* lp_info) in LoopNode()
61 HLoopInformation* loop_info;
126 void AddLoop(HLoopInformation* loop_info);
257 bool IsOnlyUsedAfterLoop(HLoopInformation* loop_info,
261 bool IsUsedOutsideLoop(HLoopInformation* loop_info,
263 bool TryReplaceWithLastValue(HLoopInformation* loop_info,
266 bool TryAssignLastValue(HLoopInformation* loop_info,
Dinduction_var_range.h138 void ReVisit(HLoopInformation* loop) { in ReVisit()
159 HLoopInformation* lp = phi->GetBlock()->GetLoopInformation(); // closest enveloping loop in IsClassified()
167 bool IsFinite(HLoopInformation* loop, /*out*/ int64_t* trip_count) const;
172 bool HasKnownTripCount(HLoopInformation* loop, /*out*/ int64_t* trip_count) const;
190 HInstruction* GenerateTripCount(HLoopInformation* loop, HGraph* graph, HBasicBlock* block);
206 bool CheckForFiniteAndConstantProps(HLoopInformation* loop,
221 /*out*/ HLoopInformation** loop,
Dloop_analysis.cc24 void LoopAnalysis::CalculateLoopBasicProperties(HLoopInformation* loop_info, in CalculateLoopBasicProperties()
66 int64_t LoopAnalysis::GetLoopTripCount(HLoopInformation* loop_info, in GetLoopTripCount()
306 uint32_t GetUnrollingFactor(HLoopInformation* loop_info, HBasicBlock* header) const;
314 HLoopInformation* loop_info = block->GetLoopInformation(); in GetSIMDUnrollingFactor()
350 uint32_t X86_64LoopHelper::GetUnrollingFactor(HLoopInformation* loop_info, in GetUnrollingFactor()
Dinduction_var_analysis.cc28 static void RotateEntryPhiFirst(HLoopInformation* loop, in RotateEntryPhiFirst()
99 static bool IsGuardedBy(HLoopInformation* loop, in IsGuardedBy()
146 HInstruction* FindFirstLoopHeaderPhiUse(HLoopInformation* loop, HInstruction* instruction) { in FindFirstLoopHeaderPhiUse()
160 bool FixOutsideUse(HLoopInformation* loop, in FixOutsideUse()
200 bool RewriteBreakLoopBody(HLoopInformation* loop, in RewriteBreakLoopBody()
240 induction_(std::less<HLoopInformation*>(), in HInductionVarAnalysis()
259 void HInductionVarAnalysis::VisitLoop(HLoopInformation* loop) { in VisitLoop()
294 void HInductionVarAnalysis::VisitNode(HLoopInformation* loop, HInstruction* instruction) { in VisitNode()
338 uint32_t HInductionVarAnalysis::VisitDescendant(HLoopInformation* loop, HInstruction* instruction) { in VisitDescendant()
341 HLoopInformation* otherLoop = instruction->GetBlock()->GetLoopInformation(); in VisitDescendant()
[all …]
Dsuperblock_cloner.cc325 HLoopInformation* info = block->GetLoopInformation(); in RecalculateBackEdgesInfo()
344 HLoopInformation* info = block->GetLoopInformation(); in RecalculateBackEdgesInfo()
355 HLoopInformation* info = block->GetLoopInformation(); in RecalculateBackEdgesInfo()
388 HLoopInformation* cur_loop = block->GetLoopInformation(); in AnalyzeLoopsLocally()
389 HLoopInformation* outer_loop = cur_loop->GetPreHeader()->GetLoopInformation(); in AnalyzeLoopsLocally()
469 HLoopInformation* loop_exit_loop_info = exit->GetLoopInformation(); in FindAndSetLocalAreaForAdjustments()
885 HLoopInformation* common_loop_info = nullptr; in IsFastCase()
888 HLoopInformation* block_loop_info = block->GetLoopInformation(); in IsFastCase()
1070 HLoopInformation* loop_info, in CollectRemappingInfoForPeelUnroll()
1119 HLoopInformation* FindCommonLoop(HLoopInformation* loop1, HLoopInformation* loop2) { in FindCommonLoop()
[all …]
Dside_effects_analysis.h47 void UpdateLoopEffects(HLoopInformation* info, SideEffects effects);
Dnodes.cc365 HLoopInformation* info = successor->GetLoopInformation(); in SplitCriticalEdge()
387 HLoopInformation* info = header->GetLoopInformation(); in OrderLoopHeaderPredecessors()
406 HLoopInformation* loop_info = header->GetLoopInformation(); in FixControlForNewSinglePreheader()
446 HLoopInformation* loop_info = header->GetLoopInformation(); in TransformLoopToSinglePreheaderFormat()
514 HLoopInformation* info = header->GetLoopInformation(); in SimplifyLoop()
621 void HLoopInformation::Dump(std::ostream& os) { in Dump()
735 void HLoopInformation::Add(HBasicBlock* block) { in Add()
739 void HLoopInformation::Remove(HBasicBlock* block) { in Remove()
743 void HLoopInformation::PopulateRecursive(HBasicBlock* block) { in PopulateRecursive()
763 void HLoopInformation::PopulateIrreducibleRecursive(HBasicBlock* block, ArenaBitVector* finalized) { in PopulateIrreducibleRecursive()
[all …]
Dside_effects_analysis.cc84 void SideEffectsAnalysis::UpdateLoopEffects(HLoopInformation* info, SideEffects effects) { in UpdateLoopEffects()
Dinduction_var_range.cc153 static HInstruction* GetLoopControl(HLoopInformation* loop) { in GetLoopControl()
174 HLoopInformation* loop = nullptr; in GetInductionRange()
322 …for (HLoopInformation* lp = instruction->GetBlock()->GetLoopInformation(); // closest enveloping … in Replace()
332 bool InductionVarRange::IsFinite(HLoopInformation* loop, /*out*/ int64_t* trip_count) const { in IsFinite()
337 bool InductionVarRange::HasKnownTripCount(HLoopInformation* loop, in HasKnownTripCount()
348 HLoopInformation* loop = nullptr; in IsUnitStride()
371 HInstruction* InductionVarRange::GenerateTripCount(HLoopInformation* loop, in GenerateTripCount()
400 bool InductionVarRange::CheckForFiniteAndConstantProps(HLoopInformation* loop, in CheckForFiniteAndConstantProps()
445 /*out*/ HLoopInformation** loop, in HasInductionInfo()
450 HLoopInformation* lp = context->GetBlock()->GetLoopInformation(); // closest enveloping loop in HasInductionInfo()
[all …]
Dbounds_check_elimination.cc909 HLoopInformation* loop = bounds_check->GetBlock()->GetLoopInformation(); in VisitBoundsCheck()
1348 HLoopInformation* loop = array_get->GetBlock()->GetLoopInformation(); in VisitArrayGet()
1524 void TransformLoopForDynamicBCE(HLoopInformation* loop, HBoundsCheck* bounds_check) { in TransformLoopForDynamicBCE()
1654 bool DynamicBCESeemsProfitable(HLoopInformation* loop, HBasicBlock* block) { in DynamicBCESeemsProfitable()
1687 bool IsEarlyExitLoop(HLoopInformation* loop) { in IsEarlyExitLoop()
1713 bool CanHandleLength(HLoopInformation* loop, HInstruction* length, bool needs_taken_test) { in CanHandleLength()
1729 bool CanHandleNullCheck(HLoopInformation* loop, HInstruction* check, bool needs_taken_test) { in CanHandleNullCheck()
1756 …bool CanHandleInfiniteLoop(HLoopInformation* loop, HInstruction* index, bool needs_infinite_test) { in CanHandleInfiniteLoop()
1787 HBasicBlock* GetPreHeader(HLoopInformation* loop, HInstruction* instruction) { in GetPreHeader()
1806 void InsertDeoptInLoop(HLoopInformation* loop, in InsertDeoptInLoop()
[all …]
Dloop_optimization.cc73 static bool IsEarlyExit(HLoopInformation* loop_info) { in IsEarlyExit()
429 static void PeelByCount(HLoopInformation* loop_info, in PeelByCount()
567 void HLoopOptimization::AddLoop(HLoopInformation* loop_info) { in AddLoop()
809 HLoopInformation* loop_info = analysis_info->GetLoopInfo(); in TryUnrollingForBranchPenaltyReduction()
824 HLoopInformation* loop_info = analysis_info->GetLoopInfo(); in TryPeelingForLoopInvariantExitsElimination()
880 HLoopInformation* loop_info = analysis_info->GetLoopInfo(); in TryFullUnrolling()
891 HLoopInformation* loop_info = node->loop_info; in TryPeelingAndUnrolling()
1167 HLoopInformation* vloop = vector_header_->GetLoopInformation(); in Vectorize()
2297 HLoopInformation* loop_info = phi->GetBlock()->GetLoopInformation(); in TrySetPhiReduction()
2377 bool HLoopOptimization::IsUsedOutsideLoop(HLoopInformation* loop_info, in IsUsedOutsideLoop()
[all …]
Dfind_loops_test.cc112 HLoopInformation* info = block->GetLoopInformation(); in TestBlock()
314 HLoopInformation* info = graph->GetBlocks()[3]->GetLoopInformation(); in TEST_F()
Dcha_guard_optimization.cc182 HLoopInformation* loop_info = block->GetLoopInformation(); in HoistGuard()
Dgraph_visualizer.cc663 HLoopInformation* loop_info = instruction->GetBlock()->GetLoopInformation(); in PrintInstruction()
668 HLoopInformation* outer = loop_info->GetPreHeader()->GetLoopInformation(); in PrintInstruction()
Dnodes.h857 class HLoopInformation : public ArenaObject<kArenaAllocLoopInfo> {
859 HLoopInformation(HBasicBlock* header, HGraph* graph) in HLoopInformation() function
925 void PopulateInnerLoopUpwards(HLoopInformation* inner_loop);
933 bool IsIn(const HLoopInformation& other) const;
975 DISALLOW_COPY_AND_ASSIGN(HLoopInformation);
1095 HLoopInformation* loop_info = GetLoopInformation(); in IsSingleJump()
1103 loop_information_ = new (graph_->GetAllocator()) HLoopInformation(this, graph_); in AddBackEdge()
1116 loop_information_ = new (graph_->GetAllocator()) HLoopInformation(this, graph_); in AddBackEdgeWhileUpdating()
1322 HLoopInformation* GetLoopInformation() const { in GetLoopInformation()
1329 void SetInLoop(HLoopInformation* info) { in SetInLoop()
[all …]
Dload_store_analysis.h511 HLoopInformation* loop_info = instruction->GetBlock()->GetLoopInformation(); in VisitInstanceFieldSet()
Dgraph_checker.cc662 HLoopInformation* loop_information = loop_header->GetLoopInformation(); in HandleLoop()
738 HLoopInformation* outer_info = it.Current(); in HandleLoop()
Dssa_liveness_analysis.h136 HLoopInformation* GetLoopInformation() const { in GetLoopInformation()
1067 HLoopInformation* current = it.Current(); in AddBackEdgeUses()
/art/test/478-checker-inline-noreturn/
Dinfo.txt2 computation fails because of incorrect HLoopInformation if we inline

12