v8/test/js-perf-test/BytecodeHandlers
jameslahm fce1047f00 Reland "[interpreter] Optimize strict equal boolean"
This is a reland of commit 62632c0805.
Reason for previous revert: Performance regressions crbug.com/1315724.
The reland only optimizes strict equal boolean literal like "a===true"
or "a===false", and we generate TestReferenceEqual rather than
TestStrictEqual for the comparasion. And also add typed optimization
for ReferenceEqual when all inputs are boolean with boolean constant.

Original change's description:
> [interpreter] Optimize strict equal boolean
>
> For strict equal boolean literal like "a===true"
> or "a===false", we could generate TestReferenceEqual
> rather than TestStrictEqual. And in `execution_result()->IsTest()`
> case, we could directly emit JumpIfTrue/JumpIfFalse.
>
> E.g.
> ```
> a === true
> ```
> Generated Bytecode From:
> ```
> LdaGlobal
> Star1
> LdaTrue
> TestEqualStrict
> ```
> To:
> ```
> LdaGlobal
> Star1
> LdaTrue
> TestReferenceEqual
> ```
>
> E.g.
> ```
> if (a === true)
> ```
> Generated Bytecode From:
> ```
> LdaGlobal
> Star1
> LdaTrue
> TestEqualStrict
> JumpIfFalse
> ```
> To
> ```
> LdaGlobal
> JumpIfTrue
> Jump
> ```
>
>
> Bug: v8:6403
> Change-Id: Ieaca147acd2d523ac0d2466e7861afb2d29a1310
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568923
> Reviewed-by: Leszek Swirski <leszeks@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Commit-Queue: 王澳 <wangao.james@bytedance.com>
> Cr-Commit-Position: refs/heads/main@{#79935}

Bug: v8:6403
Change-Id: I2ae3ab57dce85313af200fa522e3632af5c3a554
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3592039
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80141}
2022-04-25 10:02:05 +00:00
..
arithmetic.js [Interpreter] Add micro-benchmarks for arithmetic and bitwise operations. 2017-06-05 15:28:21 +00:00
bitwise.js Call the right functions in bitwise bytecode handlers benchmarks. 2017-07-17 10:58:47 +00:00
compare.js Reland "[interpreter] Optimize strict equal boolean" 2022-04-25 10:02:05 +00:00
GetKeyedProperty.js [ic] name Set/Define/Store property operations more consistently 2022-03-08 18:48:16 +00:00
GetNamedProperty.js [ic] name Set/Define/Store property operations more consistently 2022-03-08 18:48:16 +00:00
LdaGlobal.js [perf-test] Add a performance test for LdaGlobal bytecodes 2019-10-09 16:34:33 +00:00
run.js [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
string-concat.js [Interpreter] Add micro-benchmarks for string concatentation. 2017-05-26 13:59:58 +00:00