Lines Matching refs:SchedulingNode

157 class SchedulingNode : public DeletableArenaObject<kArenaAllocScheduler> {
159 SchedulingNode(HInstruction* instr, ScopedArenaAllocator* allocator, bool is_scheduling_barrier) in SchedulingNode() function
171 void AddDataPredecessor(SchedulingNode* predecessor) { in AddDataPredecessor()
180 const ScopedArenaVector<SchedulingNode*>& GetDataPredecessors() const { in GetDataPredecessors()
184 void AddOtherPredecessor(SchedulingNode* predecessor) { in AddOtherPredecessor()
195 const ScopedArenaVector<SchedulingNode*>& GetOtherPredecessors() const { in GetOtherPredecessors()
219 bool HasDataDependency(const SchedulingNode* node) const { in HasDataDependency()
223 bool HasOtherDependency(const SchedulingNode* node) const { in HasOtherDependency()
256 ScopedArenaVector<SchedulingNode*> data_predecessors_;
257 ScopedArenaVector<SchedulingNode*> other_predecessors_;
330 SchedulingNode* AddNode(HInstruction* instr, bool is_scheduling_barrier = false) {
331 std::unique_ptr<SchedulingNode> node(
332 new (allocator_) SchedulingNode(instr, allocator_, is_scheduling_barrier));
333 SchedulingNode* result = node.get();
340 SchedulingNode* GetNode(const HInstruction* instr) const { in GetNode()
356 const ScopedArenaVector<SchedulingNode*>& initial_candidates);
359 void AddDependency(SchedulingNode* node, SchedulingNode* dependency, bool is_data_dependency);
360 void AddDataDependency(SchedulingNode* node, SchedulingNode* dependency) { in AddDataDependency()
363 void AddOtherDependency(SchedulingNode* node, SchedulingNode* dependency) { in AddOtherDependency()
384 void AddCrossIterationDependencies(SchedulingNode* node);
387 void AddDependencies(SchedulingNode* node, bool is_scheduling_barrier = false);
391 ScopedArenaHashMap<const HInstruction*, std::unique_ptr<SchedulingNode>> nodes_map_;
420 void CalculateLatency(SchedulingNode* node) { in CalculateLatency()
441 virtual SchedulingNode* PopHighestPriorityNode(ScopedArenaVector<SchedulingNode*>* nodes,
445 static void DeleteNodeAtIndex(ScopedArenaVector<SchedulingNode*>* nodes, size_t index) { in DeleteNodeAtIndex()
461 SchedulingNode* PopHighestPriorityNode(ScopedArenaVector<SchedulingNode*>* nodes, in PopHighestPriorityNode()
466 SchedulingNode* select_node = (*nodes)[select]; in PopHighestPriorityNode()
483 SchedulingNode* PopHighestPriorityNode(ScopedArenaVector<SchedulingNode*>* nodes,
487 SchedulingNode* GetHigherPrioritySchedulingNode(SchedulingNode* candidate,
488 SchedulingNode* check) const;
490 SchedulingNode* SelectMaterializedCondition(ScopedArenaVector<SchedulingNode*>* nodes,
494 const SchedulingNode* prev_select_;
515 void Schedule(SchedulingNode* scheduling_node,
516 /*inout*/ ScopedArenaVector<SchedulingNode*>* candidates);
531 void CalculateLatency(SchedulingNode* node) { in CalculateLatency()