aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/schedule.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/schedule.h')
-rw-r--r--deps/v8/src/compiler/schedule.h28
1 files changed, 14 insertions, 14 deletions
diff --git a/deps/v8/src/compiler/schedule.h b/deps/v8/src/compiler/schedule.h
index 74e51c5341..8d2079787e 100644
--- a/deps/v8/src/compiler/schedule.h
+++ b/deps/v8/src/compiler/schedule.h
@@ -166,12 +166,12 @@ class V8_EXPORT_PRIVATE BasicBlock final
BasicBlock* loop_header_; // Pointer to dominating loop header basic block,
// nullptr if none. For loop headers, this points to
// enclosing loop header.
- BasicBlock* loop_end_; // end of the loop, if this block is a loop header.
- int32_t loop_depth_; // loop nesting, 0 is top-level
+ BasicBlock* loop_end_; // end of the loop, if this block is a loop header.
+ int32_t loop_depth_; // loop nesting, 0 is top-level
- Control control_; // Control at the end of the block.
- Node* control_input_; // Input value for control.
- NodeVector nodes_; // nodes of this block in forward order.
+ Control control_; // Control at the end of the block.
+ Node* control_input_; // Input value for control.
+ NodeVector nodes_; // nodes of this block in forward order.
BasicBlockVector successors_;
BasicBlockVector predecessors_;
@@ -187,7 +187,6 @@ std::ostream& operator<<(std::ostream&, const BasicBlock&);
std::ostream& operator<<(std::ostream&, const BasicBlock::Control&);
std::ostream& operator<<(std::ostream&, const BasicBlock::Id&);
-
// A schedule represents the result of assigning nodes to basic blocks
// and ordering them within basic blocks. Prior to computing a schedule,
// a graph has no notion of control flow ordering other than that induced
@@ -272,12 +271,13 @@ class V8_EXPORT_PRIVATE Schedule final : public NON_EXPORTED_BASE(ZoneObject) {
friend class BasicBlockInstrumentor;
friend class RawMachineAssembler;
- // Ensure properties of the CFG assumed by further stages.
+ // For CSA/Torque: Ensure properties of the CFG assumed by further stages.
void EnsureCFGWellFormedness();
- // Eliminates no-op phi nodes added for blocks that only have a single
- // predecessor. This ensures the property required for SSA deconstruction that
- // the target block of a control flow split has no phis.
- void EliminateNoopPhiNodes(BasicBlock* block);
+ // For CSA/Torque: Eliminates unnecessary phi nodes, including phis with a
+ // single input. The latter is necessary to ensure the property required for
+ // SSA deconstruction that the target block of a control flow split has no
+ // phis.
+ void EliminateRedundantPhiNodes();
// Ensure split-edge form for a hand-assembled schedule.
void EnsureSplitEdgeForm(BasicBlock* block);
// Ensure entry into a deferred block happens from a single hot block.
@@ -294,9 +294,9 @@ class V8_EXPORT_PRIVATE Schedule final : public NON_EXPORTED_BASE(ZoneObject) {
void SetBlockForNode(BasicBlock* block, Node* node);
Zone* zone_;
- BasicBlockVector all_blocks_; // All basic blocks in the schedule.
- BasicBlockVector nodeid_to_block_; // Map from node to containing block.
- BasicBlockVector rpo_order_; // Reverse-post-order block list.
+ BasicBlockVector all_blocks_; // All basic blocks in the schedule.
+ BasicBlockVector nodeid_to_block_; // Map from node to containing block.
+ BasicBlockVector rpo_order_; // Reverse-post-order block list.
BasicBlock* start_;
BasicBlock* end_;