Lines Matching defs:block

72 void CfgAssembler::Bind(Block* block) {
74 DCHECK(block->instructions().empty());
75 DCHECK(block->HasInputTypes());
76 current_block_ = block;
77 current_stack_ = block->InputTypes();
78 cfg_.PlaceBlock(block);
81 void CfgAssembler::Goto(Block* block) {
82 if (block->HasInputTypes()) {
83 DropTo(block->InputTypes().AboveTop());
85 Emit(GotoInstruction{block});
88 StackRange CfgAssembler::Goto(Block* block, size_t preserved_slots) {
89 DCHECK(block->HasInputTypes());
90 DCHECK_GE(CurrentStack().Size(), block->InputTypes().Size());
92 StackRange{block->InputTypes().AboveTop() - preserved_slots,
95 Emit(GotoInstruction{block});
167 for (const Block* block : cfg.blocks()) {
169 for (const auto& instruction : block->instructions()) {
184 for (Block* block : cfg_.blocks()) {
185 if (cfg_.end() && *cfg_.end() == block) continue;
186 if (predecessor_count[block->id()] == 0) continue;
188 while (!block->instructions().empty()) {
189 const auto& instruction = block->instructions().back();
192 if (destination == block) break;
198 block->instructions().pop_back();
199 block->instructions().insert(block->instructions().end(),
215 // Setup start block.
224 Block* block = worklist.Dequeue();
225 Stack<DefinitionLocation> definitions = block->InputDefinitions();
227 // Propagate through block's instructions.
228 for (const auto& instruction : block->instructions()) {
233 for (Block* block : cfg_.blocks()) {
234 DCHECK_IMPLIES(!block->IsDead(), block->InputDefinitions().Size() ==
235 block->InputTypes().Size());
236 USE(block);