5#ifndef V8_COMPILER_TURBOSHAFT_INSTRUCTION_SELECTION_PHASE_H_ 
    6#define V8_COMPILER_TURBOSHAFT_INSTRUCTION_SELECTION_PHASE_H_ 
   13class ProfileDataFromFile;
 
   34  static const int kBlockOnStack = -2;
 
   35  static const int kBlockVisited1 = -3;
 
   36  static const int kBlockVisited2 = -4;
 
   37  static const int kBlockUnvisited = -1;
 
   39  using Backedge = std::pair<const Block*, size_t>;
 
   48        : block(block), index(index), successors(
std::move(successors)) {}
 
 
 
   65    static constexpr size_t kNoLoopNumber = std::numeric_limits<size_t>::max();
 
   66    int32_t rpo_number = kBlockUnvisited;
 
   67    size_t loop_number = kNoLoopNumber;
 
   68    const Block* rpo_next = 
nullptr;
 
 
   72      : 
graph_(&graph), block_data_(graph.block_count(), zone), loops_(zone) {}
 
 
   81    return block_data_[block->index()].rpo_number;
 
 
   85    block_data_[block->index()].rpo_number = rpo_number;
 
 
   89    return block_data_[block->index()].loop_number != BlockData::kNoLoopNumber;
 
 
   93    DCHECK(has_loop_number(block));
 
   94    return block_data_[block->index()].loop_number;
 
 
   98    block_data_[block->index()].loop_number = loop_number;
 
 
  102    block_data_[block->index()].rpo_next = head;
 
 
 
FixedBlockSidetable< BlockData > block_data_
 
int32_t rpo_number(const Block *block) const
 
std::pair< const Block *, size_t > Backedge
 
void set_loop_number(const Block *block, size_t loop_number)
 
TurboshaftSpecialRPONumberer(const Graph &graph, Zone *zone)
 
size_t loop_number(const Block *block) const
 
ZoneVector< LoopInfo > loops_
 
void set_rpo_number(const Block *block, int32_t rpo_number)
 
const Block * PushFront(const Block *head, const Block *block)
 
bool has_loop_number(const Block *block) const
 
void PropagateDeferred(Graph &graph)
 
#define DCHECK(condition)
 
#define V8_EXPORT_PRIVATE
 
static constexpr bool kOutputIsTraceableGraph
 
std::optional< BailoutReason > Run(PipelineData *data, Zone *temp_zone, const CallDescriptor *call_descriptor, Linkage *linkage, CodeTracer *code_tracer)
 
void Run(PipelineData *data, Zone *temp_zone, const ProfileDataFromFile *profile)
 
void Run(PipelineData *data, Zone *temp_zone)
 
void AddOutgoing(Zone *zone, const Block *block)
 
SparseBitVector * members
 
base::SmallVector< Block const  *, 4 > outgoing
 
base::SmallVector< Block *, 4 > successors
 
SpecialRPOStackFrame(const Block *block, size_t index, base::SmallVector< Block *, 4 > successors)
 
#define DECL_TURBOSHAFT_PHASE_CONSTANTS(Name)