Lines Matching defs:block

136       BasicBlock* block = (*schedule->all_blocks())[i];
137 if (block == nullptr) continue;
139 // Short-circuit a goto if the succeeding block is not a control-flow
143 if (block->control() == BasicBlock::kGoto) {
144 DCHECK_EQ(block->SuccessorCount(), 1);
145 BasicBlock* successor = block->SuccessorAt(0);
147 DCHECK_EQ(successor->PredecessorAt(0), block);
150 schedule->AddNode(block, node);
152 block->set_control(successor->control());
154 block->set_control_input(control_input);
156 schedule->SetBlockForNode(block, control_input);
158 if (successor->deferred()) block->set_deferred(true);
159 block->ClearSuccessors();
160 schedule->MoveSuccessors(successor, block);
167 // Block-cloning in the simple case where a block consists only of a phi
168 // node and a branch on that phi. This just duplicates the branch block
171 if (block->control() == BasicBlock::kBranch && block->NodeCount() == 1) {
172 Node* phi = block->NodeAt(0);
174 Node* branch = block->control_input();
178 DCHECK_EQ(phi->op()->ValueInputCount(), block->PredecessorCount());
181 DCHECK_EQ(block->SuccessorCount(), 2);
182 BasicBlock* true_block = block->SuccessorAt(0);
183 BasicBlock* false_block = block->SuccessorAt(1);
193 size_t arity = block->PredecessorCount();
195 BasicBlock* predecessor = block->PredecessorAt(j);
197 if (block->deferred()) predecessor->set_deferred(true);
216 schedule->ClearBlockById(block->id());
229 BasicBlock* block;
239 for (BasicBlock* block : *schedule_->rpo_order()) {
242 if (block == schedule_->start()) {
244 } else if (block == schedule_->end()) {
245 for (size_t i = 0; i < block->PredecessorCount(); ++i) {
247 graph(), common(), block->PredecessorAt(i)->control_input());
249 } else if (block->IsLoopHeader()) {
263 LoopHeader{block, current_control, current_effect});
264 } else if (block->PredecessorCount() == 1) {
265 BasicBlock* predecessor = block->PredecessorAt(0);
266 DCHECK_LT(predecessor->rpo_number(), block->rpo_number());
273 int predecessor_count = static_cast<int>(block->PredecessorCount());
275 BasicBlock* predecessor = block->PredecessorAt(i);
276 DCHECK_LT(predecessor->rpo_number(), block->rpo_number());
319 for (Node* node : *block) {
322 if (block->deferred()) MarkControlDeferred(current_control);
324 if (Node* block_terminator = block->control_input()) {
328 block_final_effect[block->id().ToSize()] = current_effect;
329 block_final_control[block->id().ToSize()] = current_control;
335 BasicBlock* block = loop_header.block;
338 for (size_t i = 0; i < block->PredecessorCount(); ++i) {
339 BasicBlock* predecessor = block->PredecessorAt(i);
340 if (block->LoopContains(predecessor)) {
369 for (Node* node : *block) {
814 str << "Binding label without closing previous block:"
816 << "\n# previous block: " << *current_block_;