Lines Matching defs:block

381   BasicBlock* block;
383 PendingEffectPhi(Node* effect_phi, BasicBlock* block)
384 : effect_phi(effect_phi), block(block) {}
387 void UpdateEffectPhi(Node* node, BasicBlock* block,
390 // block->effect map.
393 block->PredecessorCount());
396 BasicBlock* predecessor = block->PredecessorAt(static_cast<size_t>(i));
398 block_effects->For(predecessor, block);
406 void UpdateBlockControl(BasicBlock* block,
408 Node* control = block->NodeAt(0);
417 block->PredecessorCount());
419 block->PredecessorCount()) {
424 BasicBlock* predecessor = block->PredecessorAt(static_cast<size_t>(i));
426 block_effects->For(predecessor, block);
453 void TryCloneBranch(Node* node, BasicBlock* block, Zone* temp_zone,
460 // This optimization is a special case of (super)block cloning. It takes an
565 DCHECK_EQ(2u, block->SuccessorCount());
569 block->SuccessorAt(0)->NodeAt(0) == matcher.IfTrue() ? 0 : 1;
571 &block_effects->For(block, block->SuccessorAt(true_index));
573 &block_effects->For(block, block->SuccessorAt(true_index ^ 1));
601 if (branch == block->control_input()) {
620 for (BasicBlock* block : *(schedule()->rpo_order())) {
621 if (block != schedule()->start() && block->PredecessorCount() == 0) {
629 BasicBlock::iterator instr = block->begin();
630 BasicBlock::iterator end_instr = block->end();
642 pending_block_controls.push_back(block);
645 UpdateBlockControl(block, &block_effects);
656 // There should be at most one effect phi in a block.
678 pending_effect_phis.push_back(PendingEffectPhi(effect_phi, block));
680 UpdateEffectPhi(effect_phi, block, &block_effects);
687 if (block == schedule()->start()) {
688 // Start block => effect is start.
692 // End block is just a dummy, no effect needed.
693 DCHECK_EQ(BasicBlock::kNone, block->control());
694 DCHECK_EQ(1u, block->size());
699 for (size_t i = 0; i < block->PredecessorCount(); ++i) {
701 block_effects.For(block->PredecessorAt(i), block);
713 inputs_buffer.resize(block->PredecessorCount(), jsgraph()->Dead());
716 common()->EffectPhi(static_cast<int>(block->PredecessorCount())),
721 pending_effect_phis.push_back(PendingEffectPhi(effect, block));
723 UpdateEffectPhi(effect, block, &block_effects);
739 // The frame state at block entry is determined by the frame states leaving
740 // all predecessors. In case there is no frame state dominating this block,
743 if (block != schedule()->start()) {
747 block_effects.For(block->PredecessorAt(0), block).current_frame_state;
748 for (size_t i = 1; i < block->PredecessorCount(); i++) {
749 if (block_effects.For(block->PredecessorAt(i), block)
766 switch (block->control()) {
777 UpdateEffectControlForNode(block->control_input());
778 gasm()->UpdateEffectControlWith(block->control_input());
783 block->control() == BasicBlock::kBranch) {
784 TryCloneBranch(block->control_input(), block, temp_zone(), graph(),
790 for (BasicBlock* successor : block->successors()) {
791 BlockEffectControlData* data = &block_effects.For(block, successor);
808 UpdateEffectPhi(pending_effect_phi.effect_phi, pending_effect_phi.block,
837 // If basic block is unreachable after this point, update the node's effect
901 // The IfSuccess nodes should always start a basic block (and basic block