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.