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()
176 const ScopedArenaVector<SchedulingNode*>& GetDataPredecessors() const { in GetDataPredecessors()
180 void AddOtherPredecessor(SchedulingNode* predecessor) { in AddOtherPredecessor()
185 const ScopedArenaVector<SchedulingNode*>& GetOtherPredecessors() const { in GetOtherPredecessors()
238 ScopedArenaVector<SchedulingNode*> data_predecessors_;
239 ScopedArenaVector<SchedulingNode*> other_predecessors_;
261 SchedulingNode* AddNode(HInstruction* instr, bool is_scheduling_barrier = false) {
262 std::unique_ptr<SchedulingNode> node(
263 new (allocator_) SchedulingNode(instr, allocator_, is_scheduling_barrier));
264 SchedulingNode* result = node.get();
280 SchedulingNode* GetNode(const HInstruction* instr) const { in GetNode()
291 bool HasImmediateDataDependency(const SchedulingNode* node, const SchedulingNode* other) const;
293 bool HasImmediateOtherDependency(const SchedulingNode* node, const SchedulingNode* other) const;
303 const ScopedArenaVector<SchedulingNode*>& initial_candidates);
306 void AddDependency(SchedulingNode* node, SchedulingNode* dependency, bool is_data_dependency);
307 void AddDataDependency(SchedulingNode* node, SchedulingNode* dependency) { in AddDataDependency()
310 void AddOtherDependency(SchedulingNode* node, SchedulingNode* dependency) { in AddOtherDependency()
330 ScopedArenaHashMap<const HInstruction*, std::unique_ptr<SchedulingNode>> nodes_map_;
360 void CalculateLatency(SchedulingNode* node) { in CalculateLatency()
380 virtual SchedulingNode* PopHighestPriorityNode(ScopedArenaVector<SchedulingNode*>* nodes,
384 static void DeleteNodeAtIndex(ScopedArenaVector<SchedulingNode*>* nodes, size_t index) { in DeleteNodeAtIndex()
400 SchedulingNode* PopHighestPriorityNode(ScopedArenaVector<SchedulingNode*>* nodes, in PopHighestPriorityNode()
405 SchedulingNode* select_node = (*nodes)[select]; in PopHighestPriorityNode()
421 SchedulingNode* PopHighestPriorityNode(ScopedArenaVector<SchedulingNode*>* nodes,
425 SchedulingNode* GetHigherPrioritySchedulingNode(SchedulingNode* candidate,
426 SchedulingNode* check) const;
428 SchedulingNode* SelectMaterializedCondition(ScopedArenaVector<SchedulingNode*>* nodes,
432 const SchedulingNode* prev_select_;
458 void Schedule(SchedulingNode* scheduling_node);
473 void CalculateLatency(SchedulingNode* node) { in CalculateLatency()
491 ScopedArenaVector<SchedulingNode*> candidates_;