- 05 Oct, 2018 28 commits
-
-
Junliang Yan authored
Drive-by: also cleanup ppc 32-bit support R=joransiu@ca.ibm.com Change-Id: I0596405ae59a0f18db7eb0f480944b8530a31113 Reviewed-on: https://chromium-review.googlesource.com/c/1262936Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#56419}
-
Alexei Filippov authored
The RNG state is initialized with random_seed parameter that usually has lots of zeros. Each random generation iteration shuffles bits with xor operation over the state. It takes a while before the state is populated with enough 1s and starts generating uniformly distributed numbers. The patch warms up the state with 32 iterations when --random_seed is used. BUG=v8:8265 Change-Id: I7a4e8c842962bea0f2935c7b3673494367d8580f Reviewed-on: https://chromium-review.googlesource.com/c/1263816 Commit-Queue: Alexei Filippov <alph@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56418}
-
Mathias Bynens authored
Previously, bootstrapper.cc contained a mixture of approaches: - NewStringFromAsciiChecked("foo"): 40 matches - NewStringFromStaticChars("foo"): 4 matches - InternalizeUtf8String("foo"): 55 matches The most common use case for any of these in the bootstrapper is to represent property names. For those, we eventually need internalized strings anyhow. E.g. NewStringFromAscii causes an InternalizeString call later, possibly creating a copy or ThinString. This patch uses InternalizeUtf8String where it makes sense to do so. https://chromium-review.googlesource.com/c/v8/v8/+/1253603/1/src/bootstrapper.cc#2098 Bug: v8:8238 Change-Id: I124607988b75449d7f78d5933657c35b532bd1c9 Reviewed-on: https://chromium-review.googlesource.com/c/1255727 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#56417}
-
Junliang Yan authored
This reverts commit b8a5ae47. Change-Id: If5953398586af66f827103326891f7b4b39b78d1 Reviewed-on: https://chromium-review.googlesource.com/c/1262999Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#56416}
-
Benedikt Meurer authored
This forces .generator_object variable to stack slot 0 for async generator functions so that the stack trace construction logic can extract the JSAsyncGeneratorObject appropriately. Bug: v8:7522 Change-Id: I37b52836bb512bcf5cd7e10e1738c8e7895b06ea Ref: nodejs/node#11865 Design-Document: http://bit.ly/v8-zero-cost-async-stack-traces Reviewed-on: https://chromium-review.googlesource.com/c/1264556Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56415}
-
Maya Lekova authored
Design doc: https://docs.google.com/document/d/1kL08cz4lR6gO5b2FATNK3QAfS8t-6K6kdk88U-n8tug/edit This CL is a follow-up after the original implementation, see CL: https://chromium-review.googlesource.com/c/v8/v8/+/1106977 It includes a fix for the missing async generators optimization, as well as cleanup of the manual patching of the builtins. It also includes mjsunit test for all usages of the new behaviour. Bug: v8:8267 Change-Id: I999f341acb746c6da5216e44b68a519656fd5403 Reviewed-on: https://chromium-review.googlesource.com/c/1261124Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#56414}
-
Ivica Bogosavljevic authored
GCC 4.9.2 on MIPS generates a reference to OFStreamBase() d8.cc. In debug mode OFStreamBase is local to libv8_base and linking fails. Change-Id: I93bb93d03a4cc81c59f94cf2168c92557845e87d Reviewed-on: https://chromium-review.googlesource.com/c/1258903Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com> Cr-Commit-Position: refs/heads/master@{#56413}
-
Peter Marshall authored
For each intrinsic/runtime function we define in runtime.h, an inline version is automatically declared. We only ever use 24 of the inline functions. Even though we don't call the other ones, macro magic means they still take up space by existing in various arrays and tables like kIntrinsicFunctions. They also create code in switch statements. Some drive-by cleanups: - Remove the switch in NameForRuntimeId() and just use the table of runtime functions to lookup the name directly. - Remove tests for IsFunction, ClassOf and StringAdd intrinsics as they are the last users of the inline versions of these. - Remove the MaxSmi inline version as it is only used in tests. Saves 64 KiB binary size. Change-Id: I4c870ddacd2655ffcffa97d93200ed8f853752f5 Reviewed-on: https://chromium-review.googlesource.com/c/1261939 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#56412}
-
Benedikt Meurer authored
This changes TurboFan to treat SignedSmall feedback similar to Signed32 feedback for binary and compare operations, in order to simplify and unify the machinery. This is an experiment. If this turns out to tank performance, we will need to revisit and ideally revert this change. Bug: v8:7094 Change-Id: I885769c2fe93d8413e59838fbe844650c848c3f1 Reviewed-on: https://chromium-review.googlesource.com/c/1261442Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56411}
-
Toon Verwaest authored
Change-Id: I7662e9d500070a2bbe49562a9efbb459247819d5 Reviewed-on: https://chromium-review.googlesource.com/c/1264655Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#56410}
-
Jaroslav Sevcik authored
This cuts down the perf cost on Octane from 18% to 13%. The baseline is the no mitigation Octane score, the array access mitigation cost was about 4%. This means we would be getting a bit more than 1/3 of the poisoning regression back. Bug: chromium:856973, chromium:887213 Change-Id: Ibd99f66ae832c6080f2c2e5b33a1a7610907466f Reviewed-on: https://chromium-review.googlesource.com/c/1251401Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#56409}
-
Hannes Payer authored
Bug=chromium:852420 Change-Id: Ia810292e4f9592836e7ce734686cadc69328b1c3 Reviewed-on: https://chromium-review.googlesource.com/c/1262475 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56408}
-
Sigurd Schneider authored
Change-Id: I20ee0d411155e23d87c731f0d909b14c55088c4c R=ahaas@chromium.org Also-By: ahaas@chromium.org Bug: chromium:892435 Change-Id: I70ca2982ea0ddc39fecfbab983a7295707fe8873 Reviewed-on: https://chromium-review.googlesource.com/c/1264283Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#56407}
-
Toon Verwaest authored
Move the entry-point for destructuring assignment out of the recursion so we can avoid swapping ASSIGNMENT scope to ASSIGNMENT_ELEMENT. Also rewrite Assignment directly without wrapping in RewritableExpression first. Change-Id: Iae768ad1b2a6fb40ce37142867d7034f924354e4 Reviewed-on: https://chromium-review.googlesource.com/c/1264284Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#56406}
-
Leszek Swirski authored
Change-Id: I6e30593a907605d970fdb6250b0020cddac94e37 Reviewed-on: https://chromium-review.googlesource.com/c/1261443Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#56405}
-
Toon Verwaest authored
After rewriting a rewritable assignment expression we possibly add the resulting do-expression in two places: the rewritten expression and the parent block. That would observably generate duplicate code. Luckily this can't happen since the only recursive paths that would call this function again change the context to ASSIGNMENT_ELEMENT from ASSIGNMENT. Hence simply DCHECK_NULL(block_) and reset it to nullptr at the end. Change-Id: I17b84dedcd7daf800d9ccb90e3dd975e84b12717 Reviewed-on: https://chromium-review.googlesource.com/c/1264282Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#56404}
-
Toon Verwaest authored
var declarations that walk through with scopes are special in that the variable will always end up in the outer declaration scope, but the initializer for the var will possibly target the with scope. Hence we can't simply use the resolved variable proxy from the declaration for the initialization. However, if we know that the var declaration lives in the scope where it will be declared (the common case), there can't be a with scope in between. Hence we are free to reuse the proxy. Change-Id: I434abcd5df1a44313a8b8da3303cf5748299de4b Reviewed-on: https://chromium-review.googlesource.com/c/1261450Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#56403}
-
Toon Verwaest authored
When parsing an identifier as an expression we'll immediately create an unresolved VariableProxy in the parsing scope. If this variable ends up becoming a declaration, e.g., due to arrow function parameter, we'll move it into the function scope for that arrow function. Then to actually create the declarations we rewrite the "pattern". When we declare the variable, the proxy is automatically resolved to the variable we create from it. That means it can't be in the unresolved list anymore. We tried to remove the unresolved variable. Unfortunately, if there was a sloppy eval in a parameter context, there's an additional var-block scope created for the parameter. Rewriting happens in *that* scope. Hence we didn't always manage to remove the unresolved variable. I suppose as a fix an additional variable proxy was introduced; since otherwise the implicit resolution upon declaration would trigger a dcheck in scope resolution later. This CL removes the initial variable proxy from the correct scope, so it can be reused for the declaration. Change-Id: Id917afb177aef076a2947b0fdd03b5393bd29c3f Reviewed-on: https://chromium-review.googlesource.com/c/1261937Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#56402}
-
Toon Verwaest authored
Change-Id: I07945944f114a32211e4f5f6fc0c5c6b88184940 Reviewed-on: https://chromium-review.googlesource.com/c/1264279Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#56401}
-
Andreas Haas authored
These functions got replaced the the taskrunner API. The new way to post tasks is as follows: v8::Platform* platform = ...; // e.g. V8::GetCurrentPlatform(); v8::Isolate* = ...; std::shared_ptr<v8::TaskRunner> taskrunner = platform->GetForegroundTaskRunner(isolate); std::unique_ptr<v8::Task> task = ...; taskrunner->PostTask(std::move(task)); R=ulan@chromium.org Bug: v8:8238 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I44a70fc530daae581ee31e54fd09e776ba648406 Reviewed-on: https://chromium-review.googlesource.com/c/1261936Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#56400}
-
Jungshik Shin authored
- Get rid of an unnecessary call to uloc_canonicalize in js-locale. - Do not use regex, but rely on ICU for the structrural validity check with Chrome's ICU or ICU 63 or newer. Otherwise, continue to use regex. This became possible thanks to a couple of bug fixes in ICU ToT that were cherry-picked for Chromium's ICU. Not yet done is to change js-locale to use CanonicalizeLocale(). That will make a few more tests pass. Bug: v8:8135 Test: test262/intl402/Intl/getCanonicalLocales/* Test: test262/intl402/Locale/* Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I45c10b298fb041e0b39a4d96309c68a7966f91c2 Reviewed-on: https://chromium-review.googlesource.com/c/1215223 Commit-Queue: Jungshik Shin <jshin@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#56399}
-
Andreas Haas authored
Like https://crrev.com/c/1261145, but I forgot one use in the scavenger. R=ulan@chromium.org Bug: v8:8238 Change-Id: I75a1e1ef8d2bb7dddfc648c0a5b827ad466f0ad3 Reviewed-on: https://chromium-review.googlesource.com/c/1261935Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#56398}
-
Michael Achenbach authored
NOTRY=true Bug: v8:8266 Change-Id: Ice4fd1ee17be2320a7e1d5d1aa6abbc2d46c4abd Reviewed-on: https://chromium-review.googlesource.com/c/1264278Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#56397}
-
Benedikt Meurer authored
For --async-stack-traces don't try to peak into frames that don't belong to async functions/generators, specifically don't try to peak into some arbitrary builtin frames (the FrameInspector doesn't support that). Bug: chromium:892472, chromium:892473, v8:7522 Change-Id: Idcdee26ff958c03b24dd2910bb92fc51cbc14e3c Ref: nodejs/node#11865 Design-Document: http://bit.ly/v8-zero-cost-async-stack-traces Reviewed-on: https://chromium-review.googlesource.com/c/1264276Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56396}
-
Benedikt Meurer authored
The CheckSmi in String.fromCodePoint() is unnecessary and even leads to unnecessary deoptimizations, since the CheckBounds already does the right thing, plus it also handles HeapNumbers (in Signed32 range) and properly identifies zeros. Bug: v8:8238 Change-Id: I73bf7a70c3cd718c987f112ceb928188c0534cd5 Reviewed-on: https://chromium-review.googlesource.com/c/1262675Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56395}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/29568c1..d36c5ed Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/2dd9144..3f7d74f Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/b250ec1..8e9443f TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org Change-Id: I9c4aded653d44af5507235c1c3f83f8cf087a179 Reviewed-on: https://chromium-review.googlesource.com/c/1263817Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#56394}
-
Frank Tang authored
Add the JSSegmenter and hook up constructor, supportedLocales and resolvedOptions only Desgin Doc- https://goo.gl/fgc2Cp TBR: bmeurer@chromium.org Bug: v8:6891 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ief25fb31d724c55c43c0fdf3080294fa83486e4f Reviewed-on: https://chromium-review.googlesource.com/c/1247362 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#56393}
-
Junliang Yan authored
R=joransiu@ca.ibm.com Change-Id: Id53be07f0f980dc03b1106c09b6fddbf94d31088 Reviewed-on: https://chromium-review.googlesource.com/c/1262937Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#56392}
-
- 04 Oct, 2018 12 commits
-
-
Tobias Tebbi authored
Bug: v8:7793 Change-Id: I5261122faf422987968ee1e405966f878ff910a1 Reviewed-on: https://chromium-review.googlesource.com/c/1245766 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#56391}
-
Frank Tang authored
Make Initialize functions name consistent for Intl.* Bug: v8:5751 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: If4736007fc8f048a087469acc5d968e6ece289ce Reviewed-on: https://chromium-review.googlesource.com/c/1261644Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#56390}
-
Alexei Filippov authored
Change-Id: I13e3a54f91e8fbaf595bebb65f9a0326bbacd3eb Reviewed-on: https://chromium-review.googlesource.com/c/1244286 Commit-Queue: Alexei Filippov <alph@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56389}
-
Frank Tang authored
Remove -Wexit-time-destructors warnings which triggered when global objects cause destructors to be run at exit time. Bug: v8:8257 Change-Id: I8407f1936cd6d13a2e30f55cfb4907a99ccca033 Reviewed-on: https://chromium-review.googlesource.com/c/1259863 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#56388}
-
Alexei Filippov authored
Long time ago there were two passes over heap. One was counting objects and edge and another was filling them. Since then we have just a single pass, but the filler object is still there. Remove it for the sake of layering simplicity. Reviewed-on: https://chromium-review.googlesource.com/1244380 Commit-Queue: Alexei Filippov <alph@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56246} TBR=ulan@chromium.org Change-Id: Ie155a79f7aaf9b2612ae89f67b793ba813c364c9 Reviewed-on: https://chromium-review.googlesource.com/c/1261882Reviewed-by: Alexei Filippov <alph@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#56387}
-
Deepti Gandluri authored
BUG:v8:8201 Change-Id: I2f0c2f7d26020188dcec6dabe0a08fc49ee0f33b Reviewed-on: https://chromium-review.googlesource.com/c/1259406Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#56386}
-
Junliang Yan authored
Port b048c16b Original Commit Message: The goal is to remove CL to remove the confusing implications for full poisoning. This is an alternative to https://chromium-review.googlesource.com/c/chromium/src/+/1253341 where chrome has to work around our implication system. In the optimizing compiler, we already have a bottleneck for setting mitigation level in src/compiler/pipeline.cc, so it is easy to change back to partial mitigations. R=jarin@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I96d0651eed2638abddb5486da1e2b55a84e97264 Reviewed-on: https://chromium-review.googlesource.com/c/1261797Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#56385}
-
Tobias Tebbi authored
This incorporates feedback from https://chromium-review.googlesource.com/c/v8/v8/+/1245766/12#message-16ceead795d0ca68d3c564b8900c152e8719ecd6 that got lost due to the code being moved to https://crrev.com/c/1254121. Change-Id: I7b74dcd5e8ffe62770b32a7c000885e96db01657 Reviewed-on: https://chromium-review.googlesource.com/c/1256968Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#56384}
-
Maya Lekova authored
Bug: v8:7932 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I293b83758be5dadb04c149ffdf7a8a126dca0a50 Reviewed-on: https://chromium-review.googlesource.com/c/1261444 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#56383}
-
v8-ci-autoroll-builder authored
Rolling v8/test/test262/data: https://chromium.googlesource.com/external/github.com/tc39/test262/+log/7e65999..ff8b10c TBR=adamk@chromium.org,gsathya@chromium.org Change-Id: I7c7bc6367724498f17ccfabce88b29c2f4595121 Reviewed-on: https://chromium-review.googlesource.com/c/1261876Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#56382}
-
Alexei Filippov authored
Change-Id: I1022cceafed0b27fa2fb5f0f30a1b75fd3a27f3f Reviewed-on: https://chromium-review.googlesource.com/c/1260258Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#56381}
-
Benedikt Meurer authored
Holes in double arrays are encoded using a signaling NaN bit pattern. Previously when checking for Float64 holes we did an expensive bit check always, but most values aren't even NaNs in reality. So we changed the CheckFloat64Hole operator to first check if the value is a NaN at all and only if so, perform the concrete bit check (in deferred code). This improves the array copying test case mentioned in the bug from copyPacked: 123 ms. copyHoley: 157 ms. to copyPacked: 122 ms. copyHoley: 125 ms. so there's almost no penalty for double holey arrays anymore in case of copying arrays. This change seems to yield an overall ~1% on the Kraken benchmark. Bug: v8:8264 Change-Id: Id7393867ec96fdc080e24d326039f80a9d7b6646 Reviewed-on: https://chromium-review.googlesource.com/c/1261519Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56380}
-