Reviewers: dcarney,

Description:
[turbofan] Fix register allocator verifier to allow 1-input phis.

[email protected]
BUG=

Please review this at https://codereview.chromium.org/860363002/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+4, -3 lines):
  M src/compiler/register-allocator-verifier.cc


Index: src/compiler/register-allocator-verifier.cc
diff --git a/src/compiler/register-allocator-verifier.cc b/src/compiler/register-allocator-verifier.cc index dabfd59ef61d4d0c0e1a60500acbd0e9a54ef12e..df97157d329d4a9586834a26bc1ba6f93a29db3f 100644
--- a/src/compiler/register-allocator-verifier.cc
+++ b/src/compiler/register-allocator-verifier.cc
@@ -242,9 +242,10 @@ class RegisterAllocatorVerifier::OutgoingMapping : public ZoneObject {
                const InstructionBlock* block, size_t phi_index) {
     // This operation is only valid in edge split form.
     size_t predecessor_index = block->predecessors()[phi_index].ToSize();
- CHECK(sequence->instruction_blocks()[predecessor_index]->SuccessorCount() ==
-          1);
     for (const auto* phi : block->phis()) {
+      CHECK(
+ sequence->instruction_blocks()[predecessor_index]->SuccessorCount() ==
+          1);
       auto input = phi->inputs()[phi_index];
       CHECK(locations()->find(input) != locations()->end());
       auto it = locations()->find(phi->output());
@@ -317,7 +318,7 @@ class RegisterAllocatorVerifier::OutgoingMapping : public ZoneObject {
     size_t predecessor_index = block->predecessors()[0].ToSize();
     CHECK(predecessor_index < block->rpo_number().ToSize());
     auto* incoming = outgoing_mappings->at(predecessor_index);
-    if (block->PredecessorCount() > 1) {
+    if (block->PredecessorCount() >= 1) {
// Update incoming map with phis. The remaining phis will be checked later
       // as their mappings are not guaranteed to exist yet.
       incoming->RunPhis(sequence, block, 0);


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to