Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(345)

Side by Side Diff: src/compiler/schedule.cc

Issue 2003663002: [turbofan] Better handling of inserted split-edge blocks (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Remove rogue file Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/schedule.h" 5 #include "src/compiler/schedule.h"
6 6
7 #include "src/compiler/node.h" 7 #include "src/compiler/node.h"
8 #include "src/compiler/node-properties.h" 8 #include "src/compiler/node-properties.h"
9 #include "src/ostreams.h" 9 #include "src/ostreams.h"
10 10
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 DCHECK(block->PredecessorCount() > 1 && block != end_); 337 DCHECK(block->PredecessorCount() > 1 && block != end_);
338 for (auto current_pred = block->predecessors().begin(); 338 for (auto current_pred = block->predecessors().begin();
339 current_pred != block->predecessors().end(); ++current_pred) { 339 current_pred != block->predecessors().end(); ++current_pred) {
340 BasicBlock* pred = *current_pred; 340 BasicBlock* pred = *current_pred;
341 if (pred->SuccessorCount() > 1) { 341 if (pred->SuccessorCount() > 1) {
342 // Found a predecessor block with multiple successors. 342 // Found a predecessor block with multiple successors.
343 BasicBlock* split_edge_block = NewBasicBlock(); 343 BasicBlock* split_edge_block = NewBasicBlock();
344 split_edge_block->set_control(BasicBlock::kGoto); 344 split_edge_block->set_control(BasicBlock::kGoto);
345 split_edge_block->successors().push_back(block); 345 split_edge_block->successors().push_back(block);
346 split_edge_block->predecessors().push_back(pred); 346 split_edge_block->predecessors().push_back(pred);
347 split_edge_block->set_deferred(pred->deferred()); 347 split_edge_block->set_deferred(block->deferred());
348 *current_pred = split_edge_block; 348 *current_pred = split_edge_block;
349 // Find a corresponding successor in the previous block, replace it 349 // Find a corresponding successor in the previous block, replace it
350 // with the split edge block... but only do it once, since we only 350 // with the split edge block... but only do it once, since we only
351 // replace the previous blocks in the current block one at a time. 351 // replace the previous blocks in the current block one at a time.
352 for (auto successor = pred->successors().begin(); 352 for (auto successor = pred->successors().begin();
353 successor != pred->successors().end(); ++successor) { 353 successor != pred->successors().end(); ++successor) {
354 if (*successor == block) { 354 if (*successor == block) {
355 *successor = split_edge_block; 355 *successor = split_edge_block;
356 break; 356 break;
357 } 357 }
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 } 502 }
503 os << "\n"; 503 os << "\n";
504 } 504 }
505 } 505 }
506 return os; 506 return os;
507 } 507 }
508 508
509 } // namespace compiler 509 } // namespace compiler
510 } // namespace internal 510 } // namespace internal
511 } // namespace v8 511 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698