Home
last modified time | relevance | path

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

12

/art/compiler/optimizing/
Dinduction_var_range.h139 void ReVisit(const HLoopInformation* loop) { in ReVisit()
160 HLoopInformation* lp = phi->GetBlock()->GetLoopInformation(); // closest enveloping loop in IsClassified()
168 bool IsFinite(const HLoopInformation* loop, /*out*/ int64_t* trip_count) const;
173 bool HasKnownTripCount(const HLoopInformation* loop, /*out*/ int64_t* trip_count) const;
191 HInstruction* GenerateTripCount(const HLoopInformation* loop, HGraph* graph, HBasicBlock* block);
207 bool CheckForFiniteAndConstantProps(const HLoopInformation* loop,
216 const HLoopInformation* loop,
224 /*out*/ const HLoopInformation** loop,
230 const HLoopInformation* loop,
236 const HLoopInformation* loop,
[all …]
Dinduction_var_analysis.h126 const HLoopInformation* loop, in CreateInvariantOp()
159 void VisitLoop(const HLoopInformation* loop);
160 size_t TryVisitNodes(const HLoopInformation* loop,
165 void ClassifyTrivial(const HLoopInformation* loop, HInstruction* instruction);
166 void ClassifyNonTrivial(const HLoopInformation* loop, ArrayRef<const StackEntry> stack_tail);
172 InductionInfo* TransferPhi(const HLoopInformation* loop,
177 const HLoopInformation* loop,
183 const HLoopInformation* loop,
187 const HLoopInformation* loop,
198 InductionInfo* SolvePhiAllInputs(const 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()
Dsuperblock_cloner.h221 HLoopInformation* GetRegionToBeAdjusted() const { in GetRegionToBeAdjusted()
368 HLoopInformation* outer_loop_;
385 LoopClonerHelper(HLoopInformation* info, in LoopClonerHelper()
396 static bool IsLoopClonable(HLoopInformation* loop_info);
486 HLoopInformation* GetRegionToBeAdjusted() const { return cloner_.GetRegionToBeAdjusted(); } in GetRegionToBeAdjusted()
499 HLoopInformation* loop_info_;
511 LoopClonerSimpleHelper(HLoopInformation* info, InductionVarRange* induction_range);
516 HLoopInformation* GetRegionToBeAdjusted() const { return helper_.GetRegionToBeAdjusted(); } in GetRegionToBeAdjusted()
531 HLoopInformation* loop_info,
548 HLoopInformation* FindCommonLoop(HLoopInformation* loop1, HLoopInformation* loop2);
Dloop_analysis.h37 explicit LoopAnalysisInfo(HLoopInformation* loop_info) in LoopAnalysisInfo()
70 HLoopInformation* GetLoopInfo() const { return loop_info_; } in GetLoopInfo()
92 HLoopInformation* loop_info_;
103 static void CalculateLoopBasicProperties(HLoopInformation* loop_info,
108 static int64_t GetLoopTripCount(HLoopInformation* loop_info,
Dsuperblock_cloner_test.cc164 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F()
243 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F()
307 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F()
311 HLoopInformation* new_loop_info = new_header->GetLoopInformation(); in TEST_F()
344 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F()
381 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F()
392 HLoopInformation* second_loop_info = second_header->GetLoopInformation(); in TEST_F()
446 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F()
491 HLoopInformation* loop2_info_before = loop2_header->GetLoopInformation(); in TEST_F()
492 HLoopInformation* loop3_info_before = loop3_header->GetLoopInformation(); in TEST_F()
[all …]
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()
Dloop_optimization.h61 explicit LoopNode(HLoopInformation* lp_info) in LoopNode()
77 HLoopInformation* loop_info;
235 void AddLoop(HLoopInformation* loop_info);
466 bool IsOnlyUsedAfterLoop(HLoopInformation* loop_info,
470 bool IsUsedOutsideLoop(HLoopInformation* loop_info,
472 bool TryReplaceWithLastValue(HLoopInformation* loop_info,
475 bool TryAssignLastValue(HLoopInformation* loop_info,
Dinduction_var_range.cc154 static HInstruction* GetLoopControl(const HLoopInformation* loop) { in GetLoopControl()
160 static bool IsContextInBody(const HBasicBlock* context, const HLoopInformation* loop) { in IsContextInBody()
168 bool UseFullTripCount(const HBasicBlock* context, const HLoopInformation* loop, bool is_min) { in UseFullTripCount()
208 const HLoopInformation* loop = nullptr; in GetInductionRange()
368 …for (HLoopInformation* lp = instruction->GetBlock()->GetLoopInformation(); // closest enveloping … in Replace()
378 bool InductionVarRange::IsFinite(const HLoopInformation* loop, /*out*/ int64_t* trip_count) const { in IsFinite()
383 bool InductionVarRange::HasKnownTripCount(const HLoopInformation* loop, in HasKnownTripCount()
394 const HLoopInformation* loop = nullptr; in IsUnitStride()
417 HInstruction* InductionVarRange::GenerateTripCount(const HLoopInformation* loop, in GenerateTripCount()
461 bool InductionVarRange::CheckForFiniteAndConstantProps(const HLoopInformation* loop, in CheckForFiniteAndConstantProps()
[all …]
Dinduction_var_analysis.cc67 static bool IsGuardedBy(const HLoopInformation* loop, in IsGuardedBy()
114 HInstruction* FindFirstLoopHeaderPhiUse(const HLoopInformation* loop, HInstruction* instruction) { in FindFirstLoopHeaderPhiUse()
128 static bool FixOutsideUse(const HLoopInformation* loop, in FixOutsideUse()
166 static bool RewriteBreakLoopBody(const HLoopInformation* loop, in RewriteBreakLoopBody()
222 induction_(std::less<const HLoopInformation*>(), in HInductionVarAnalysis()
246 void HInductionVarAnalysis::VisitLoop(const HLoopInformation* loop) { in VisitLoop()
274 const HLoopInformation* loop, in TryVisitNodes()
397 void HInductionVarAnalysis::ClassifyTrivial(const HLoopInformation* loop, in ClassifyTrivial()
451 void HInductionVarAnalysis::ClassifyNonTrivial(const HLoopInformation* loop, in ClassifyNonTrivial()
619 const HLoopInformation* loop, in TransferPhi()
[all …]
Dloop_analysis.cc25 void LoopAnalysis::CalculateLoopBasicProperties(HLoopInformation* loop_info, in CalculateLoopBasicProperties()
67 int64_t LoopAnalysis::GetLoopTripCount(HLoopInformation* loop_info, in GetLoopTripCount()
313 uint32_t GetUnrollingFactor(HLoopInformation* loop_info, HBasicBlock* header) const;
323 HLoopInformation* loop_info = block->GetLoopInformation(); in GetSIMDUnrollingFactor()
359 uint32_t X86_64LoopHelper::GetUnrollingFactor(HLoopInformation* loop_info, in GetUnrollingFactor()
Dsuperblock_cloner.cc323 HLoopInformation* info = block->GetLoopInformation(); in RecalculateBackEdgesInfo()
342 HLoopInformation* info = block->GetLoopInformation(); in RecalculateBackEdgesInfo()
353 HLoopInformation* info = block->GetLoopInformation(); in RecalculateBackEdgesInfo()
386 HLoopInformation* cur_loop = block->GetLoopInformation(); in AnalyzeLoopsLocally()
387 HLoopInformation* outer_loop = cur_loop->GetPreHeader()->GetLoopInformation(); in AnalyzeLoopsLocally()
467 HLoopInformation* loop_exit_loop_info = exit->GetLoopInformation(); in FindAndSetLocalAreaForAdjustments()
892 HLoopInformation* common_loop_info = nullptr; in IsFastCase()
895 HLoopInformation* block_loop_info = block->GetLoopInformation(); in IsFastCase()
1077 HLoopInformation* loop_info, in CollectRemappingInfoForPeelUnroll()
1126 HLoopInformation* FindCommonLoop(HLoopInformation* loop1, HLoopInformation* loop2) { in FindCommonLoop()
[all …]
Dside_effects_analysis.h46 void UpdateLoopEffects(HLoopInformation* info, SideEffects effects);
Dnodes.cc409 HLoopInformation* info = successor->GetLoopInformation(); in SplitCriticalEdge()
440 HLoopInformation* info = header->GetLoopInformation(); in OrderLoopHeaderPredecessors()
459 HLoopInformation* loop_info = header->GetLoopInformation(); in FixControlForNewSinglePreheader()
499 HLoopInformation* loop_info = header->GetLoopInformation(); in TransformLoopToSinglePreheaderFormat()
567 HLoopInformation* info = header->GetLoopInformation(); in SimplifyLoop()
680 void HLoopInformation::Dump(std::ostream& os) { in Dump()
794 void HLoopInformation::Add(HBasicBlock* block) { in Add()
798 void HLoopInformation::Remove(HBasicBlock* block) { in Remove()
802 void HLoopInformation::PopulateRecursive(HBasicBlock* block) { in PopulateRecursive()
822 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_test.cc150 HLoopInformation loop(exit_block_, graph_); in CreateInvariant()
246 HLoopInformation loop(exit_block_, graph_); in NeedsTripCount()
263 HLoopInformation loop(exit_block_, graph_); in GetMin()
269 HLoopInformation* loop, in GetMin()
278 HLoopInformation loop(exit_block_, graph_); in GetMax()
284 HLoopInformation* loop, in GetMax()
294 HLoopInformation loop(exit_block_, graph_); in GetMul()
303 HLoopInformation loop(exit_block_, graph_); in GetDiv()
311 HLoopInformation loop(exit_block_, graph_); in GetRem()
319 HLoopInformation loop(exit_block_, graph_); in GetXor()
[all …]
Dloop_optimization.cc73 static bool IsEarlyExit(HLoopInformation* loop_info) { in IsEarlyExit()
429 static void PeelByCount(HLoopInformation* loop_info, in PeelByCount()
467 static bool HasLoopDiamondStructure(HLoopInformation* loop_info) { in HasLoopDiamondStructure()
499 static bool IsPredicatedLoopControlFlowSupported(HLoopInformation* loop_info) { in IsPredicatedLoopControlFlowSupported()
619 void HLoopOptimization::AddLoop(HLoopInformation* loop_info) { in AddLoop()
767 HLoopInformation* loop_info = analysis_info->GetLoopInfo(); in TryToRemoveSuspendCheckFromLoopHeader()
852 static HBasicBlock* GetInnerLoopFiniteSingleExit(HLoopInformation* loop_info) { in GetInnerLoopFiniteSingleExit()
1013 HLoopInformation* loop_info = analysis_info->GetLoopInfo(); in TryUnrollingForBranchPenaltyReduction()
1028 HLoopInformation* loop_info = analysis_info->GetLoopInfo(); in TryPeelingForLoopInvariantExitsElimination()
1084 HLoopInformation* loop_info = analysis_info->GetLoopInfo(); in TryFullUnrolling()
[all …]
Dbounds_check_elimination.cc922 HLoopInformation* loop = bounds_check->GetBlock()->GetLoopInformation(); in VisitBoundsCheck()
1361 HLoopInformation* loop = array_get->GetBlock()->GetLoopInformation(); in VisitArrayGet()
1537 void TransformLoopForDynamicBCE(HLoopInformation* loop, HBoundsCheck* bounds_check) { in TransformLoopForDynamicBCE()
1676 bool DynamicBCESeemsProfitable(HLoopInformation* loop, HBasicBlock* block) { in DynamicBCESeemsProfitable()
1709 bool IsEarlyExitLoop(HLoopInformation* loop) { in IsEarlyExitLoop()
1735 bool CanHandleLength(HLoopInformation* loop, HInstruction* length, bool needs_taken_test) { in CanHandleLength()
1751 bool CanHandleNullCheck(HLoopInformation* loop, HInstruction* check, bool needs_taken_test) { in CanHandleNullCheck()
1778 …bool CanHandleInfiniteLoop(HLoopInformation* loop, HInstruction* index, bool needs_infinite_test) { in CanHandleInfiniteLoop()
1809 HBasicBlock* GetPreHeader(HLoopInformation* loop, HInstruction* instruction) { in GetPreHeader()
1828 void InsertDeoptInLoop(HLoopInformation* loop, in InsertDeoptInLoop()
[all …]
Dfind_loops_test.cc113 HLoopInformation* info = block->GetLoopInformation(); in TestBlock()
315 HLoopInformation* info = graph->GetBlocks()[3]->GetLoopInformation(); in TEST_F()
Dcha_guard_optimization.cc182 HLoopInformation* loop_info = block->GetLoopInformation(); in HoistGuard()
Dnodes.h920 class HLoopInformation : public ArenaObject<kArenaAllocLoopInfo> {
922 HLoopInformation(HBasicBlock* header, HGraph* graph) in HLoopInformation() function
988 void PopulateInnerLoopUpwards(HLoopInformation* inner_loop);
996 bool IsIn(const HLoopInformation& other) const;
1038 DISALLOW_COPY_AND_ASSIGN(HLoopInformation);
1162 HLoopInformation* loop_info = GetLoopInformation(); in IsSingleJump()
1170 loop_information_ = new (graph_->GetAllocator()) HLoopInformation(this, graph_); in AddBackEdge()
1183 loop_information_ = new (graph_->GetAllocator()) HLoopInformation(this, graph_); in AddBackEdgeWhileUpdating()
1403 HLoopInformation* GetLoopInformation() const { in GetLoopInformation()
1410 void SetInLoop(HLoopInformation* info) { in SetInLoop()
[all …]
Dgraph_visualizer.cc730 HLoopInformation* loop_info = (block != nullptr) ? block->GetLoopInformation() : nullptr; in PrintInstruction()
735 HLoopInformation* outer = loop_info->GetPreHeader()->GetLoopInformation(); in PrintInstruction()
Dssa_liveness_analysis.h134 HLoopInformation* GetLoopInformation() const { in GetLoopInformation()
1065 HLoopInformation* current = it.Current(); in AddBackEdgeUses()
Dcode_sinking.cc241 const HLoopInformation* loop_info = instruction->GetBlock()->GetLoopInformation(); in FindIdealPosition()
/art/test/478-checker-inline-noreturn/
Dinfo.txt2 computation fails because of incorrect HLoopInformation if we inline

12