Home
last modified time | relevance | path

Searched refs:node (Results 1 – 10 of 10) sorted by relevance

/art/compiler/optimizing/
Dscheduler.cc36 void SchedulingGraph::AddDependency(SchedulingNode* node, in AddDependency() argument
39 if (node == nullptr || dependency == nullptr) { in AddDependency()
46 if (!HasImmediateDataDependency(node, dependency)) { in AddDependency()
47 node->AddDataPredecessor(dependency); in AddDependency()
49 } else if (!HasImmediateOtherDependency(node, dependency)) { in AddDependency()
50 node->AddOtherPredecessor(dependency); in AddDependency()
54 static bool MayHaveReorderingDependency(SideEffects node, SideEffects other) { in MayHaveReorderingDependency() argument
56 if (node.MayDependOn(other)) { in MayHaveReorderingDependency()
61 if (other.MayDependOn(node)) { in MayHaveReorderingDependency()
66 if (node.DoesAnyWrite() && other.DoesAnyWrite()) { in MayHaveReorderingDependency()
[all …]
Dgvn.cc105 for (Node* node = buckets_[index]; node != nullptr; node = node->GetNext()) { in Lookup() local
106 if (node->GetHashCode() == hash_code) { in Lookup()
107 HInstruction* existing = node->GetInstruction(); in Lookup()
121 for (Node* node = buckets_[index]; node != nullptr; node = node->GetNext()) { in Contains() local
122 if (node->GetInstruction() == instruction) { in Contains()
131 DeleteAllImpureWhich([side_effects](Node* node) { in Kill() argument
132 return node->GetInstruction()->GetSideEffects().MayDependOn(side_effects); in Kill()
153 DeleteAllImpureWhich([predecessor](Node* node) { in IntersectWith() argument
154 return !predecessor->Contains(node->GetInstruction()); in IntersectWith()
178 for (Node* node = other.buckets_[i]; node != nullptr; node = node->GetNext()) { in PopulateFromInternal() local
[all …]
Dscheduler.h262 std::unique_ptr<SchedulingNode> node(
264 SchedulingNode* result = node.get();
265 nodes_map_.Insert(std::make_pair(instr, std::move(node)));
291 bool HasImmediateDataDependency(const SchedulingNode* node, const SchedulingNode* other) const;
292 bool HasImmediateDataDependency(const HInstruction* node, const HInstruction* other) const;
293 bool HasImmediateOtherDependency(const SchedulingNode* node, const SchedulingNode* other) const;
294 bool HasImmediateOtherDependency(const HInstruction* node, const HInstruction* other) const;
306 void AddDependency(SchedulingNode* node, SchedulingNode* dependency, bool is_data_dependency);
307 void AddDataDependency(SchedulingNode* node, SchedulingNode* dependency) { in AddDataDependency() argument
308 AddDependency(node, dependency, /*is_data_dependency*/true); in AddDataDependency()
[all …]
Dregister_allocator_graph_color.cc497 void FreezeMoves(InterferenceNode* node);
500 void PruneNode(InterferenceNode* node);
503 void EnableCoalesceOpportunities(InterferenceNode* node);
506 void CheckTransitionFromFreezeWorklist(InterferenceNode* node);
676 for (InterferenceNode* node : physical_core_nodes_) { in AllocateRegisters()
677 node->ClearCoalesceOpportunities(); in AllocateRegisters()
679 for (InterferenceNode* node : physical_fp_nodes_) { in AllocateRegisters()
680 node->ClearCoalesceOpportunities(); in AllocateRegisters()
691 for (InterferenceNode* node : iteration.GetPrunableNodes()) { in AllocateRegisters()
692 LiveInterval* interval = node->GetInterval(); in AllocateRegisters()
[all …]
Dloop_optimization.h124 void RemoveLoop(LoopNode* node);
128 bool TraverseLoopsInnerToOuter(LoopNode* node);
134 void SimplifyInduction(LoopNode* node);
135 void SimplifyBlocks(LoopNode* node);
139 bool OptimizeInnerLoop(LoopNode* node);
145 bool ShouldVectorize(LoopNode* node, HBasicBlock* block, int64_t trip_count);
146 void Vectorize(LoopNode* node, HBasicBlock* block, HBasicBlock* exit, int64_t trip_count);
147 void GenerateNewLoop(LoopNode* node,
154 bool VectorizeDef(LoopNode* node, HInstruction* instruction, bool generate_code);
155 bool VectorizeUse(LoopNode* node,
[all …]
Dloop_optimization.cc508 LoopNode* node = new (loop_allocator_) LoopNode(loop_info); in AddLoop() local
512 last_loop_ = top_loop_ = node; in AddLoop()
515 node->outer = last_loop_; in AddLoop()
517 last_loop_ = last_loop_->inner = node; in AddLoop()
523 node->outer = last_loop_->outer; in AddLoop()
524 node->previous = last_loop_; in AddLoop()
526 last_loop_ = last_loop_->next = node; in AddLoop()
530 void HLoopOptimization::RemoveLoop(LoopNode* node) { in RemoveLoop() argument
531 DCHECK(node != nullptr); in RemoveLoop()
532 DCHECK(node->inner == nullptr); in RemoveLoop()
[all …]
Dloop_optimization_test.cc92 std::string LoopStructureRecurse(HLoopOptimization::LoopNode* node) { in LoopStructureRecurse() argument
94 for ( ; node != nullptr; node = node->next) { in LoopStructureRecurse()
96 s.append(LoopStructureRecurse(node->inner)); in LoopStructureRecurse()
/art/tools/ahat/src/main/com/android/ahat/dominators/
DDominatorsComputation.java101 public Node node; field in DominatorsComputation.NodeS
175 rootS.node = root; in computeDominators()
193 dstS.node = link.dst; in computeDominators()
278 nodeS.node.setDominator(nodeS.domS.node); in computeDominators()
279 nodeS.node.setDominatorsComputationState(null); in computeDominators()
/art/tools/ahat/src/test/com/android/ahat/
DDominatorsTest.java230 Node node = new Node("n" + i); in stackOverflow() local
231 curr.depends.add(node); in stackOverflow()
232 curr = node; in stackOverflow()
/art/compiler/utils/
Dintrusive_forward_list.h383 bool ContainsNode(const_reference node) const { in ContainsNode() argument
385 if (std::addressof(n) == std::addressof(node)) { in ContainsNode()