Home
last modified time | relevance | path

Searched refs:loop_info (Results 1 – 15 of 15) sorted by relevance

/art/compiler/optimizing/
Dloop_analysis.cc24 void LoopAnalysis::CalculateLoopBasicProperties(HLoopInformation* loop_info, in CalculateLoopBasicProperties() argument
29 for (HBlocksInLoopIterator block_it(*loop_info); in CalculateLoopBasicProperties()
36 if (!loop_info->Contains(*successor)) { in CalculateLoopBasicProperties()
45 if (hif != nullptr && !loop_info->Contains(*hif->InputAt(0)->GetBlock())) { in CalculateLoopBasicProperties()
66 int64_t LoopAnalysis::GetLoopTripCount(HLoopInformation* loop_info, in GetLoopTripCount() argument
69 if (!induction_range->HasKnownTripCount(loop_info, &trip_count)) { in GetLoopTripCount()
306 uint32_t GetUnrollingFactor(HLoopInformation* loop_info, HBasicBlock* header) const;
314 HLoopInformation* loop_info = block->GetLoopInformation(); in GetSIMDUnrollingFactor() local
315 DCHECK(loop_info); in GetSIMDUnrollingFactor()
316 HBasicBlock* header = loop_info->GetHeader(); in GetSIMDUnrollingFactor()
[all …]
Dlicm.cc101 HLoopInformation* loop_info = block->GetLoopInformation(); in Run() local
103 HBasicBlock* pre_header = loop_info->GetPreHeader(); in Run()
105 for (HBlocksInLoopIterator it_loop(*loop_info); !it_loop.Done(); it_loop.Advance()) { in Run()
108 if (inner->GetLoopInformation() != loop_info) { in Run()
117 if (loop_info->ContainsIrreducibleLoop()) { in Run()
122 DCHECK(!loop_info->IsIrreducible()); in Run()
155 UpdateLoopPhisIn(instruction->GetEnvironment(), loop_info); in Run()
Dcha_guard_optimization.cc182 HLoopInformation* loop_info = block->GetLoopInformation(); in HoistGuard() local
183 if (loop_info != nullptr && in HoistGuard()
184 !loop_info->IsIrreducible() && in HoistGuard()
185 loop_info->IsDefinedOutOfTheLoop(receiver)) { in HoistGuard()
197 HBasicBlock* pre_header = loop_info->GetPreHeader(); in HoistGuard()
202 HInstruction* suspend = loop_info->GetSuspendCheck(); in HoistGuard()
209 suspend->GetEnvironment(), loop_info->GetHeader()); in HoistGuard()
Dloop_analysis.h35 explicit LoopAnalysisInfo(HLoopInformation* loop_info) in LoopAnalysisInfo() argument
44 loop_info_(loop_info) {} in LoopAnalysisInfo()
101 static void CalculateLoopBasicProperties(HLoopInformation* loop_info,
106 static int64_t GetLoopTripCount(HLoopInformation* loop_info,
Dsuperblock_cloner_test.cc163 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F() local
164 orig_bb_set.Union(&loop_info->GetBlocks()); in TEST_F()
242 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F() local
243 orig_bb_set.Union(&loop_info->GetBlocks()); in TEST_F()
260 EXPECT_EQ(header->GetLoopInformation(), loop_info); in TEST_F()
261 EXPECT_EQ(loop_info->GetHeader(), header); in TEST_F()
262 EXPECT_TRUE(loop_info->Contains(*loop_body)); in TEST_F()
263 EXPECT_TRUE(loop_info->IsBackEdge(*loop_body)); in TEST_F()
306 HLoopInformation* loop_info = header->GetLoopInformation(); in TEST_F() local
307 LoopClonerHelper helper(loop_info, &bb_map, &hir_map, /* induction_range= */ nullptr); in TEST_F()
[all …]
Dloop_optimization.h56 : loop_info(lp_info), in LoopNode()
61 HLoopInformation* loop_info; member
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,
Dloop_optimization.cc73 static bool IsEarlyExit(HLoopInformation* loop_info) { in IsEarlyExit() argument
74 HBlocksInLoopReversePostOrderIterator it_loop(*loop_info); in IsEarlyExit()
77 if (!loop_info->Contains(*successor)) { in IsEarlyExit()
429 static void PeelByCount(HLoopInformation* loop_info, in PeelByCount() argument
434 LoopClonerSimpleHelper helper(loop_info, induction_range); in PeelByCount()
567 void HLoopOptimization::AddLoop(HLoopInformation* loop_info) { in AddLoop() argument
568 DCHECK(loop_info != nullptr); in AddLoop()
569 LoopNode* node = new (loop_allocator_) LoopNode(loop_info); in AddLoop()
574 } else if (loop_info->IsIn(*last_loop_->loop_info)) { in AddLoop()
581 while (last_loop_->outer != nullptr && !loop_info->IsIn(*last_loop_->outer->loop_info)) { in AddLoop()
[all …]
Dnodes.cc406 HLoopInformation* loop_info = header->GetLoopInformation(); in FixControlForNewSinglePreheader() local
409 if (!loop_info->IsBackEdge(*predecessor) && predecessor != new_preheader) { in FixControlForNewSinglePreheader()
446 HLoopInformation* loop_info = header->GetLoopInformation(); in TransformLoopToSinglePreheaderFormat() local
464 if (!loop_info->IsBackEdge(*predecessor)) { in TransformLoopToSinglePreheaderFormat()
496 if (loop_info->Contains(*pred_block)) { in TransformLoopToSinglePreheaderFormat()
497 DCHECK(loop_info->IsBackEdge(*pred_block)); in TransformLoopToSinglePreheaderFormat()
2136 HLoopInformation* loop_info = GetLoopInformation(); in DisconnectAndDelete() local
2140 DCHECK(!loop_info->IsIrreducible()); in DisconnectAndDelete()
2141 DCHECK_EQ(loop_info->GetBlocks().NumSetBits(), 1u); in DisconnectAndDelete()
2142 DCHECK_EQ(static_cast<uint32_t>(loop_info->GetBlocks().GetHighestBitSet()), GetBlockId()); in DisconnectAndDelete()
[all …]
Dload_store_elimination.cc640 HLoopInformation* loop_info = instruction->GetBlock()->GetLoopInformation(); in VisitSetLocation() local
641 if (loop_info == nullptr) { in VisitSetLocation()
645 } else if (!loop_info->IsIrreducible()) { in VisitSetLocation()
647 DCHECK(side_effects_.GetLoopEffects(loop_info->GetHeader()).DoesAnyWrite()); in VisitSetLocation()
649 … if (ref_info->IsSingleton() && !loop_info->IsDefinedOutOfTheLoop(ref_info->GetReference())) { in VisitSetLocation()
Dsuperblock_cloner.h395 static bool IsLoopClonable(HLoopInformation* loop_info);
530 HLoopInformation* loop_info,
Dsuperblock_cloner.cc1070 HLoopInformation* loop_info, in CollectRemappingInfoForPeelUnroll() argument
1074 DCHECK(loop_info != nullptr); in CollectRemappingInfoForPeelUnroll()
1075 HBasicBlock* loop_header = loop_info->GetHeader(); in CollectRemappingInfoForPeelUnroll()
1078 for (HBasicBlock* back_edge_block : loop_info->GetBackEdges()) { in CollectRemappingInfoForPeelUnroll()
1090 remap_incoming->insert(HEdge(loop_info->GetPreHeader(), loop_header)); in CollectRemappingInfoForPeelUnroll()
1136 bool LoopClonerHelper::IsLoopClonable(HLoopInformation* loop_info) { in IsLoopClonable() argument
1138 loop_info, /* bb_map= */ nullptr, /* hir_map= */ nullptr, /* induction_range= */ nullptr); in IsLoopClonable()
Dload_store_analysis.h511 HLoopInformation* loop_info = instruction->GetBlock()->GetLoopInformation(); in VisitInstanceFieldSet() local
512 if (loop_info != nullptr) { in VisitInstanceFieldSet()
515 if (loop_info->IsDefinedOutOfTheLoop(ref)) { in VisitInstanceFieldSet()
Dgraph_visualizer.cc663 HLoopInformation* loop_info = instruction->GetBlock()->GetLoopInformation(); in PrintInstruction() local
664 if (loop_info == nullptr) { in PrintInstruction()
667 StartAttributeStream("loop") << "B" << loop_info->GetHeader()->GetBlockId(); in PrintInstruction()
668 HLoopInformation* outer = loop_info->GetPreHeader()->GetLoopInformation(); in PrintInstruction()
675 << std::boolalpha << loop_info->IsIrreducible() << std::noboolalpha; in PrintInstruction()
Dregister_allocator_graph_color.cc66 HLoopInformation* loop_info = block->GetLoopInformation(); in LoopDepthAt() local
68 while (loop_info != nullptr) { in LoopDepthAt()
70 loop_info = loop_info->GetPreHeader()->GetLoopInformation(); in LoopDepthAt()
Dnodes.h1095 HLoopInformation* loop_info = GetLoopInformation(); in IsSingleJump() local
1098 && (loop_info == nullptr || !loop_info->IsBackEdge(*this)); in IsSingleJump()