/art/compiler/optimizing/ |
D | scheduler.cc | 36 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 …]
|
D | gvn.cc | 105 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 …]
|
D | scheduler.h | 262 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 …]
|
D | register_allocator_graph_color.cc | 497 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 …]
|
D | loop_optimization.h | 124 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 …]
|
D | loop_optimization.cc | 508 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 …]
|
D | loop_optimization_test.cc | 92 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/ |
D | DominatorsComputation.java | 101 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/ |
D | DominatorsTest.java | 230 Node node = new Node("n" + i); in stackOverflow() local 231 curr.depends.add(node); in stackOverflow() 232 curr = node; in stackOverflow()
|
/art/compiler/utils/ |
D | intrusive_forward_list.h | 383 bool ContainsNode(const_reference node) const { in ContainsNode() argument 385 if (std::addressof(n) == std::addressof(node)) { in ContainsNode()
|