Skip to content

Commit 5b4749d

Browse files
LeszekSwirskiV8 LUCI CQ
authored andcommitted
[maglev] Invert polymorphic access chaining conditions.
IsOffsetAPolymorphicContinuationInterrupt should return _true_ at merge points etc., not _false_ Bug: 450495091 Change-Id: Ic17ce83ef68d88edaf0ab9c615c5db5cdfde912f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7035734 Commit-Queue: Marja Hölttä <[email protected]> Commit-Queue: Leszek Swirski <[email protected]> Auto-Submit: Leszek Swirski <[email protected]> Reviewed-by: Marja Hölttä <[email protected]> Cr-Commit-Position: refs/heads/main@{#103082}
1 parent 895c441 commit 5b4749d

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

src/maglev/maglev-graph-builder.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6978,7 +6978,7 @@ MaglevGraphBuilder::FindContinuationForPolymorphicPropertyLoadImpl() {
69786978
// TODO(leszeks): I guess we could split that merge if we wanted to,
69796979
// introducing a new merge that has the polymorphic loads+calls on one
69806980
// side and the generic call on the other.
6981-
if (IsOffsetAMergePoint(offset)) return false;
6981+
if (IsOffsetAMergePoint(offset)) return true;
69826982

69836983
// We currently can't continue a polymorphic load across a peeled
69846984
// loop header -- not because of any actual semantic reason, a peeled
@@ -6989,7 +6989,7 @@ MaglevGraphBuilder::FindContinuationForPolymorphicPropertyLoadImpl() {
69896989
// JumpLoop rather than loop header, and then this continuation code
69906990
// would work. Only for the first peeled iteration though, not for
69916991
// speeling.
6992-
if (loop_headers_to_peel_.Contains(offset)) return false;
6992+
if (loop_headers_to_peel_.Contains(offset)) return true;
69936993

69946994
// Loop peeling should be the only reason there was no merge point for a
69956995
// loop header.
@@ -7004,8 +7004,8 @@ MaglevGraphBuilder::FindContinuationForPolymorphicPropertyLoadImpl() {
70047004
// strict nesting of handlers (since the first polymorphic call would
70057005
// be inside the handler range, but the second polymorphic load after it
70067006
// in linear scan order would be outside of the handler range).
7007-
if (offset >= next_handler_change) return false;
7008-
return true;
7007+
if (offset >= next_handler_change) return true;
7008+
return false;
70097009
};
70107010

70117011
// Skip GetNamedProperty.

0 commit comments

Comments
 (0)