v8/test/js-perf-test
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
..
ApiAccessors [api] Add benchmark for api accessors 2021-10-12 10:44:52 +00:00
Array Revert "[call reducer] inline Array.prototype.indexOf/includes in js-call-reducer." 2022-03-17 11:39:46 +00:00
ArrayIndexOfIncludesPolymorphic [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayInOperator [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadLargeDoubleHoley [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadLargeDoublePacked [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadLargeHoley [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadLargePacked [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadLargeSmiMap [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadLargeSmiSet [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadSmallDoubleHoley [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadSmallDoublePacked [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadSmallHoley [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadSmallPacked [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadSmallSmiMap [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralInitialSpreadSmallSmiSet [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArrayLiteralSpread [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ArraySort [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
AsyncAwait [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
BigInt [js-perf-test] Performance benchmarks for BigInt left and right shift 2021-12-02 14:16:15 +00:00
BytecodeHandlers Reland "[interpreter] Optimize strict equal boolean" 2022-04-25 10:02:05 +00:00
Classes [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ClassFields [class] add microbenchmarks for private methods 2021-11-06 05:40:22 +00:00
Closures [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Collections [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
DataView [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Dates [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Exceptions [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ExpressionDepth [parser] Use n-ary addition for template strings 2017-10-31 16:02:53 +00:00
ForLoops [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Generators [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
IC [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Inspector [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
InterpreterEntryTrampoline [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Intl [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Iterators [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Keys [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ManyClosures [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Modules [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Numbers [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Object [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ObjectDestructuringAssignment [test] Add js-perf-test for object destructuring assignment 2022-03-21 13:42:20 +00:00
ObjectFreeze [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
ObjectLiteralSpread [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Operators [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Parsing [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
PropertyQueries [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Proxies [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
RegExp [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
RestParameters [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Scope [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
SixSpeed [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
SpreadCalls [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
SpreadCallsGeneral [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
StackTrace [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
StringIterators [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
Strings [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
SuperIC [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
SwitchStatements A jump-table implementation for constant case switch statements 2021-06-23 09:26:23 +00:00
Templates [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
TurboFan [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
TypedArrays [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
base.js [test] Ensure random generator in JSTests does not use float arithmetic 2018-12-17 10:05:08 +00:00
ClassFields.json [class] add microbenchmarks for private methods 2021-11-06 05:40:22 +00:00
JSTests1.json [js-perf-test] Performance benchmarks for BigInt left and right shift 2021-12-02 14:16:15 +00:00
JSTests2.json Revert "[call reducer] inline Array.prototype.indexOf/includes in js-call-reducer." 2022-03-17 11:39:46 +00:00
JSTests3.json Reland "[interpreter] Optimize strict equal boolean" 2022-04-25 10:02:05 +00:00
JSTests4.json add micro-benchmark for proxy trap setPrototypeOf 2019-06-25 16:18:52 +00:00
JSTests5.json [test] Add js-perf-test for object destructuring assignment 2022-03-21 13:42:20 +00:00
OWNERS Update OWNERS in test/* 2021-02-25 14:26:24 +00:00
RegExp.json Add benchmark for regexp "gi". 2019-06-28 17:56:31 +00:00
SixSpeed.json Increase timeout for JSTests/Array test and fix Michael's username 2019-04-16 12:24:10 +00:00
SuperIC.json [super] Rewrite perf tests 2020-11-16 08:36:24 +00:00