Lines Matching defs:block

26 // A basic block contains an ordered list of nodes and ends with a control
27 // node. Note that if a basic block has phis, then all phis must appear as the
28 // first nodes in the block.
32 // Possible control nodes that can end a block.
35 kGoto, // Goto a single successor block.
89 // Nodes in the basic block.
120 // Trim basic block to end at {new_end}.
163 bool LoopContains(BasicBlock* block) const;
170 int32_t loop_number_; // loop number of the block.
171 int32_t rpo_number_; // special RPO number of the block.
172 bool deferred_; // true if the block contains deferred code.
174 BasicBlock* dominator_; // Immediate dominator of the block.
175 BasicBlock* rpo_next_; // Link to next block in special RPO order.
176 BasicBlock* loop_header_; // Pointer to dominating loop header basic block,
179 BasicBlock* loop_end_; // end of the loop, if this block is a loop header.
182 Control control_; // Control at the end of the block.
184 NodeVector nodes_; // nodes of this block in forward order.
208 // Return the block which contains {node}, if any.
209 BasicBlock* block(Node* node) const;
218 // Check if nodes {a} and {b} are in the same block.
221 // BasicBlock building: create a new block.
224 // BasicBlock building: records that a node will later be added to a block but
225 // doesn't actually add the node to the block.
226 void PlanNode(BasicBlock* block, Node* node);
228 // BasicBlock building: add a node to the end of the block.
229 void AddNode(BasicBlock* block, Node* node);
231 // BasicBlock building: add a goto to the end of {block}.
232 void AddGoto(BasicBlock* block, BasicBlock* succ);
234 // BasicBlock building: add a call at the end of {block}.
235 void AddCall(BasicBlock* block, Node* call, BasicBlock* success_block,
238 // BasicBlock building: add a branch at the end of {block}.
239 void AddBranch(BasicBlock* block, Node* branch, BasicBlock* tblock,
242 // BasicBlock building: add a switch at the end of {block}.
243 void AddSwitch(BasicBlock* block, Node* sw, BasicBlock** succ_blocks,
246 // BasicBlock building: add a deoptimize at the end of {block}.
247 void AddDeoptimize(BasicBlock* block, Node* input);
249 // BasicBlock building: add a tailcall at the end of {block}.
250 void AddTailCall(BasicBlock* block, Node* input);
252 // BasicBlock building: add a return at the end of {block}.
253 void AddReturn(BasicBlock* block, Node* input);
255 // BasicBlock building: add a throw at the end of {block}.
256 void AddThrow(BasicBlock* block, Node* input);
258 // BasicBlock mutation: insert a branch into the end of {block}.
259 void InsertBranch(BasicBlock* block, BasicBlock* end, Node* branch,
262 // BasicBlock mutation: insert a switch into the end of {block}.
263 void InsertSwitch(BasicBlock* block, BasicBlock* end, Node* sw,
267 void AddSuccessorForTesting(BasicBlock* block, BasicBlock* succ) {
268 return AddSuccessor(block, succ);
290 // SSA deconstruction that the target block of a control flow split has no
294 void EnsureSplitEdgeForm(BasicBlock* block);
297 // Copy deferred block markers down as far as possible
300 void AddSuccessor(BasicBlock* block, BasicBlock* succ);
303 void SetControlInput(BasicBlock* block, Node* node);
304 void SetBlockForNode(BasicBlock* block, Node* node);
308 BasicBlockVector nodeid_to_block_; // Map from node to containing block.
309 BasicBlockVector rpo_order_; // Reverse-post-order block list.