Home
last modified time | relevance | path

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

/aosp12/art/compiler/optimizing/
H A Dloop_analysis.cc25 void LoopAnalysis::CalculateLoopBasicProperties(HLoopInformation* loop_info, in CalculateLoopBasicProperties() argument
30 for (HBlocksInLoopIterator block_it(*loop_info); in CalculateLoopBasicProperties()
37 if (!loop_info->Contains(*successor)) { in CalculateLoopBasicProperties()
67 int64_t LoopAnalysis::GetLoopTripCount(HLoopInformation* loop_info, in GetLoopTripCount() argument
70 if (!induction_range->HasKnownTripCount(loop_info, &trip_count)) { in GetLoopTripCount()
326 HLoopInformation* loop_info = block->GetLoopInformation(); in GetSIMDUnrollingFactor() local
327 DCHECK(loop_info); in GetSIMDUnrollingFactor()
328 HBasicBlock* header = loop_info->GetHeader(); in GetSIMDUnrollingFactor()
334 unroll_factor = GetUnrollingFactor(loop_info, header); in GetSIMDUnrollingFactor()
345 uint32_t unroll_cnt = GetUnrollingFactor(loop_info, header); in GetSIMDUnrollingFactor()
[all …]
H A Dsuperblock_cloner_test.cc164 orig_bb_set.Union(&loop_info->GetBlocks()); in TEST_F()
243 orig_bb_set.Union(&loop_info->GetBlocks()); 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()
357 EXPECT_EQ(loop_info->GetHeader(), new_header); in TEST_F()
358 EXPECT_EQ(loop_info->GetBackEdges().size(), 1u); in TEST_F()
399 EXPECT_EQ(loop_info->GetHeader(), header); in TEST_F()
402 EXPECT_EQ(loop_info->GetBackEdges().size(), 1u); in TEST_F()
637 orig_bb_set.Union(&loop_info->GetBlocks()); in TEST_F()
[all …]
H A 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()
H A Dloop_optimization.cc73 static bool IsEarlyExit(HLoopInformation* loop_info) { in IsEarlyExit() argument
77 if (!loop_info->Contains(*successor)) { in IsEarlyExit()
429 static void PeelByCount(HLoopInformation* loop_info, in PeelByCount() argument
566 DCHECK(loop_info != nullptr); in AddLoop()
572 } else if (loop_info->IsIn(*last_loop_->loop_info)) { in AddLoop()
579 while (last_loop_->outer != nullptr && !loop_info->IsIn(*last_loop_->outer->loop_info)) { in AddLoop()
618 induction_range_.ReVisit(node->loop_info); in TraverseLoopsInnerToOuter()
889 HLoopInformation* loop_info = node->loop_info; in TryPeelingAndUnrolling() local
891 LoopAnalysisInfo analysis_info(loop_info); in TryPeelingAndUnrolling()
1213 node->loop_info = vloop; in Vectorize()
[all …]
H A 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()
H A Dloop_optimization.h56 : loop_info(lp_info), in LoopNode()
61 HLoopInformation* loop_info; member
127 void AddLoop(HLoopInformation* loop_info);
258 bool IsOnlyUsedAfterLoop(HLoopInformation* loop_info,
262 bool IsUsedOutsideLoop(HLoopInformation* loop_info,
264 bool TryReplaceWithLastValue(HLoopInformation* loop_info,
267 bool TryAssignLastValue(HLoopInformation* loop_info,
H A Dloop_analysis.h36 explicit LoopAnalysisInfo(HLoopInformation* loop_info) in LoopAnalysisInfo() argument
45 loop_info_(loop_info) {} in LoopAnalysisInfo()
102 static void CalculateLoopBasicProperties(HLoopInformation* loop_info,
107 static int64_t GetLoopTripCount(HLoopInformation* loop_info,
H A Dnodes.cc638 if (!loop_info->IsBackEdge(*predecessor)) { in TransformLoopToSinglePreheaderFormat()
670 if (loop_info->Contains(*pred_block)) { in TransformLoopToSinglePreheaderFormat()
2412 DCHECK(!loop_info->IsIrreducible()); in DisconnectAndDelete()
2519 HLoopInformation* loop_info = it.Current(); in DisconnectAndDelete() local
2520 loop_info->Remove(this); in DisconnectAndDelete()
2521 if (loop_info->IsBackEdge(*this)) { in DisconnectAndDelete()
2525 loop_info->RemoveBackEdge(this); in DisconnectAndDelete()
2559 loop_info->Remove(other); in MergeWith()
2560 if (loop_info->IsBackEdge(*other)) { in MergeWith()
2561 loop_info->ReplaceBackEdge(other, this); in MergeWith()
[all …]
H A 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()
H A Dsuperblock_cloner.h395 static bool IsLoopClonable(HLoopInformation* loop_info);
530 HLoopInformation* loop_info,
H A Dgraph_visualizer.cc714 HLoopInformation* loop_info = (block != nullptr) ? block->GetLoopInformation() : nullptr; in PrintInstruction() local
715 if (loop_info == nullptr) { in PrintInstruction()
718 StartAttributeStream("loop") << namer_.GetName(loop_info->GetHeader()); in PrintInstruction()
719 HLoopInformation* outer = loop_info->GetPreHeader()->GetLoopInformation(); in PrintInstruction()
726 << std::boolalpha << loop_info->IsIrreducible() << std::noboolalpha; in PrintInstruction()
H A 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()
H A Dload_store_elimination.cc1502 HLoopInformation* loop_info = block->GetLoopInformation(); in PrepareLoopValue() local
1503 uint32_t pre_header_block_id = loop_info->GetPreHeader()->GetBlockId(); in PrepareLoopValue()
1517 if (index != nullptr && loop_info->Contains(*index->GetBlock())) { in PrepareLoopValue()
1889 HLoopInformation* loop_info = loop_header->GetLoopInformation(); in MayAliasOnBackEdge() local
1890 if (loop_info->Contains(*loc1->GetIndex()->GetBlock()) || in MayAliasOnBackEdge()
1891 loop_info->Contains(*loc2->GetIndex()->GetBlock())) { in MayAliasOnBackEdge()
1956 HLoopInformation* loop_info = in TryReplacingLoopPhiPlaceholderWithDefault() local
1958 record = heap_values_for_[loop_info->GetPreHeader()->GetBlockId()][i]; in TryReplacingLoopPhiPlaceholderWithDefault()
H A Dnodes.h1135 HLoopInformation* loop_info = GetLoopInformation(); in IsSingleJump() local
1138 && (loop_info == nullptr || !loop_info->IsBackEdge(*this)); in IsSingleJump()
/aosp12/bionic/libc/kernel/uapi/linux/
H A Dloop.h34 struct loop_info { struct
/aosp12/system/core/init/
H A Dbuiltins.cpp525 loop_info info; in do_mount()
/aosp12/system/apex/apexd/
H A Dapexservice_test.cpp1342 struct loop_info li; in TEST_F()
1633 struct loop_info li; in TEST_F()