Home | History | Annotate | Download | only in compiler

Lines Matching refs:block

23   for (InstructionBlock* block : instruction_blocks()) {
24 if (block->needs_frame()) continue;
25 for (int i = block->code_start(); i < block->code_end(); ++i) {
30 block->mark_needs_frame();
45 for (InstructionBlock* block : instruction_blocks()) {
46 if (block->needs_frame()) {
47 // Special case: The start block needs a frame.
48 if (block->predecessors().empty()) {
49 block->mark_must_construct_frame();
53 for (RpoNumber& succ : block->successors()) {
55 DCHECK_EQ(1U, block->SuccessorCount());
57 InstructionAt(block->last_instruction_index());
60 // We need to keep the frame if we exit the block through any
66 block->mark_must_deconstruct_frame();
71 for (RpoNumber& succ : block->successors()) {
73 DCHECK_NE(1U, block->SuccessorCount());
84 for (InstructionBlock* block : instruction_blocks()) {
85 changed |= PropagateIntoBlock(block);
93 for (InstructionBlock* block : base::Reversed(instruction_blocks())) {
94 changed |= PropagateIntoBlock(block);
100 bool FrameElider::PropagateIntoBlock(InstructionBlock* block) {
102 if (block->needs_frame()) return false;
106 if (block->successors().empty()) return false;
110 for (RpoNumber& pred : block->predecessors()) {
112 (!InstructionBlockAt(pred)->IsDeferred() || block->IsDeferred())) {
113 block->mark_needs_frame();
120 if (block->SuccessorCount() == 1) {
123 InstructionBlockAt(block->successors()[0])->needs_frame();
130 for (RpoNumber& succ : block->successors()) {
143 block->mark_needs_frame();