5#ifndef V8_COMPILER_SCHEDULER_H_
6#define V8_COMPILER_SCHEDULER_H_
18class ProfileDataFromFile;
25class ControlEquivalence;
27class SpecialRPONumberer;
34 enum Flag {
kNoFlags = 0u, kSplitNodes = 1u << 1, kTempSchedule = 1u << 2 };
107 bool IsLive(
Node* node);
110 inline std::optional<int> GetCoupledControlEdge(
Node* node);
111 void IncrementUnscheduledUseCount(
Node* node,
Node* from);
112 void DecrementUnscheduledUseCount(
Node* node,
Node* from);
114 static void PropagateImmediateDominators(
BasicBlock* block);
129 void ComputeSpecialRPONumbering();
130 void GenerateDominatorTree();
138 void ScheduleEarly();
145 void SealFinalSchedule();
#define DEFINE_OPERATORS_FOR_FLAGS(Type)
CFGBuilder * control_flow_builder_
SpecialRPONumberer * special_rpo_
const ProfileDataFromFile * profile_data() const
ControlEquivalence * equivalence_
const ProfileDataFromFile * profile_data_
NodeVector schedule_root_nodes_
CommonDominatorCache common_dominator_cache_
ZoneQueue< Node * > schedule_queue_
ZoneVector< NodeVector * > scheduled_nodes_
ZoneVector< SchedulerData > node_data_
TickCounter *const tick_counter_
#define V8_EXPORT_PRIVATE
BasicBlock * minimum_block_