Commit 7d140328 authored by Mythri A's avatar Mythri A Committed by Commit Bot

[interpreter] Fix feedback collection for TestEqual* bytecodes

For CompareOperations, we only care about Null or Undefined feedback
for oddballs. Other oddballs like Booleans should be treated as "Any"
feedback. There was a bug in the way we handled feedback when lhs is
undefined or null and rhs is anything other than JSReceiver. This cl
fixes it by removing an unnecessary check. This fixes a deopt loop in
TurboProp on maps benchmark.

Bug: v8:9684
Change-Id: I6a09c4b5637bacdcd7f7f96e1afe603b6653c7c6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2016591Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
Commit-Queue: Mythri Alle <mythria@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65945}
parent d9960058
......@@ -11251,7 +11251,6 @@ TNode<Oddball> CodeStubAssembler::Equal(SloppyTNode<Object> left,
*var_type_feedback = SmiConstant(
CompareOperationFeedback::kReceiverOrNullOrUndefined);
GotoIf(IsJSReceiverInstanceType(right_type), &if_notequal);
GotoIfNot(IsBooleanMap(right_map), &if_notequal);
*var_type_feedback = SmiConstant(CompareOperationFeedback::kAny);
}
Goto(&if_notequal);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment