- 06 Sep, 2019 3 commits
-
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/e030d8a..031af13 Rolling v8/third_party/android_ndk: https://chromium.googlesource.com/android_ndk/+log/6258275..89e8db0 Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/06605b0..52c5d30 Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/624bf6e..208e343 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/2fef805..56e3b98 TBR=machenbach@chromium.org,tmrts@chromium.org Change-Id: I58a44985730b1c1c2865e5552303c8b835b43390 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1786034Reviewed-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@{#63588}
-
Zhang, Shiyu authored
Shadowing key is used to exclude non-enumerable keys when iterating over the prototype chain. This CL skips adding shadowing key for end prototype to improve for-in performance. It can improve the performance of below microbench by ~50%. Object.prototype.foo = function() {}; let obj = { a:0, b:1 }; let start = Date.now(); for (let i = 0; i<1e6; i++) { for (var j in obj) {} } console.log(Date.now() - start); This CL also improves the score of JetStream2-tagcloud-SP case by 8% on IA Chromebook. Contributed by tao.pan@intel.com Change-Id: I456082c08bf70f1f450ff54f657cdab26eb7bc2b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1781113Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Shiyu Zhang <shiyu.zhang@intel.com> Cr-Commit-Position: refs/heads/master@{#63587}
-
Shu-yu Guo authored
Expressions in class heritage position do not have access to the inheriting class's private names, only its lexical bindings. The parser currently uses the same scope chain for both. This CL makes scopes in class heritage position skip their outer class when resolving private names. Whether a scope needs to skip is kept as a bit on various scope-related data structures. See implementation doc at https://docs.google.com/document/d/1d3o_SQqcICxfjLMw53OOaiIQux0ppNHQJnjZHtCQLwA Bug: v8:9177 Change-Id: I77e491a9d4a261131274f12ddf052af7ac31a921 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1769486 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#63586}
-
- 05 Sep, 2019 26 commits
-
-
Santiago Aboy Solanes authored
This reverts commit 096d9c56. Reason for revert: Broke presubmit https://ci.chromium.org/p/v8/builders/ci/V8%20Presubmit/6371 Original change's description: > [tracing] Roll perfetto @ 28b633cd > > This catches up with [1] that make the proto include path > relative to the project root rather than ./protos/ > > [1] https://android-review.googlesource.com/c/platform/external/perfetto/+/1108421 > > Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng > Bug: v8:8339 > Change-Id: I1f2dec93120142ea61cee864e4bf76a6947d958d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1776088 > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Tamer Tas <tmrts@chromium.org> > Commit-Queue: Primiano Tucci <primiano@chromium.org> > Auto-Submit: Primiano Tucci <primiano@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63584} TBR=primiano@chromium.org,petermarshall@chromium.org,tmrts@chromium.org Change-Id: I3ff6afa58869399b2a352cd489acdd2894ef138c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8339 Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1787433Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#63585}
-
Primiano Tucci authored
This catches up with [1] that make the proto include path relative to the project root rather than ./protos/ [1] https://android-review.googlesource.com/c/platform/external/perfetto/+/1108421 Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng Bug: v8:8339 Change-Id: I1f2dec93120142ea61cee864e4bf76a6947d958d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1776088Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Tamer Tas <tmrts@chromium.org> Commit-Queue: Primiano Tucci <primiano@chromium.org> Auto-Submit: Primiano Tucci <primiano@chromium.org> Cr-Commit-Position: refs/heads/master@{#63584}
-
Clemens Hammacher authored
{JavaScriptFrame::GetParameters} allocates a new {FixedArray}, hence all object references need to be handified to survive that allocation. R=mstarzinger@chromium.org Bug: chromium:1000635 Change-Id: I76df5ac109bdb6999fe897bdafaf2175344ecca4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1787429Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63583}
-
Leszek Swirski authored
This is a reland of 981aafaf It adds double checks to LoadFieldByIndex in the optimizing compiler, which are likely the source of the crashes. Original change's description: > Reland "[ic] In-place Double -> Tagged transitions" > > This is a reland of 0736599a. > This is a reland of 7e1fbe8f. > > Original change description: > > [ic] In-place Double -> Tagged transitions > > > > With no more MutableHeapNumber, we can make Double -> Tagged transitions > > in-place, at the cost of an extra map check when accessing double fields > > to make sure they are still doubles. > > > > Bug: v8:9606 > > Change-Id: I74ff39ed6fba62ee223cd37dfe761f7d73020e1c > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1743973 > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#63374} > > TBR=verwaest@chromium.org, tebbi@chromium.org > > Bug: v8:9606 > Change-Id: I2d1b7416064d743582f4983fb868316b7e8a4cf2 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1777661 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63499} TBR=verwaest@chromium.org Bug: v8:9606 Bug: chromium:997989 Change-Id: Iccfff8e5c6306c9ee4f6c62767dce883b1c6f743 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784288Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#63582}
-
Joshua Litt authored
Implements match indices for regexp, as specified by https://github.com/tc39/proposal-regexp-match-indices, a stage 3 TC39 proposal. This implementation is hidden behind the '--harmony-regexp-match-indices' flag. Regexp match indices extends the JSRegExpResult object with an array of indices of matches, as well as a dictionary of capture names to match indices. Bug: v8:9548 Change-Id: Ia9efcee00d997dda6158539b8d0f4c4e5965e5e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1771379 Commit-Queue: Joshua Litt <joshualitt@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63581}
-
Santiago Aboy Solanes authored
Bug: v8:6949 Change-Id: I8f0de9e202f41c78e24c4d73c54b198a52122dac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784296 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#63580}
-
Dan Elphick authored
Since const variables are immutable, ignore SetMaybeAssigned for them. Bug: chromium:999450, chromium:1000170, v8:8510 Change-Id: Idc1b71677b3d03bb63cc025017c119710b8f392d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1782170 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#63579}
-
Santiago Aboy Solanes authored
TNodified: * Jump (both versions) * JumpBackward * JumpIfTaggedEqual * JumpIfTaggedNotEqual * JumpConditional * LoadOsrNestingLevel Removed slopiness from Advance's parameter. Renamed "delta" to jump_offset for JumpXXX arguments. They were called jump_offset in .h and delta in .cc. Bug: v8:6949 Change-Id: I6b34391dcb2ee881670d04edac9382258f6bcb51 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1782821 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#63578}
-
Santiago Aboy Solanes authored
TNodified: * code-assembler * TailCallBytecodeDispatch * interpreter-assembler * GetContextAtDepth * ExportParametersAndRegisterFile * ImportRegisterFile * Dispatch * DispatchToBytecode * DispatchToBytecodeHandlerEntry * DispatchWide * return type of Jump (Jumps are coming in another CL) * LoadBytecode Removed DispatchToBytecodeHandler since it was unused. Removed target_bytecode parameter of DispatchToBytecodeHandlerEntry since it was unused. Bug: v8:6949 Change-Id: Icd3ded28cc1fd1dc528219dd83cf646e67c9b878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1782838 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#63577}
-
Santiago Aboy Solanes authored
TNodified from interpreter-generator: * SwitchOnSmiNoFeedback * CreateFunctionContext * CreateEvalContext * SwitchOnGeneratorState since they were using some of the interpreter-assembler now TNodified methods. Bug: v8:6949 Change-Id: I0055100428232e8bdc79cb4356954bac52f4a30d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1781689 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#63576}
-
Andreas Haas authored
There was no problem with the original CL. I just had a problem with my local git branches. Original message: The implementation on wasm-bigint has been done, as far as I can tell. There are no spec tests yet, only an out-dated copy of the original spec tests which don't pass anymore. Therefore I disabled all the tests for now and created a tracking bug at https://crbug.com/v8/9673. TBR=adamk@chromium.org Bug: v8:7741, v8:9673 Change-Id: Ida7ccda4547cf3fdcdff151d8b02946b7aa534ca Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1787420Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#63575}
-
Michael Hablich authored
TBR=machenbach@chromium.org NOTRY=true Change-Id: I2873acd03b9673dedf587d21e35101ad163fd580 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1787425 Commit-Queue: Michael Hablich <hablich@chromium.org> Reviewed-by: Michael Hablich <hablich@chromium.org> Cr-Commit-Position: refs/heads/master@{#63574}
-
Santiago Aboy Solanes authored
TNodify related methods: * BytecodeArrayTaggedPointer * DispatchTablePointer (renamed from DispatchTableRawPointer) * GetAccumulatorUnchecked SloppyTNodify SetAccumulator's argument. Marking some tests as slow, due to TNodification. Bug: v8:6949 Change-Id: I3a56c47247828ec1313ce69ce76064efedf57776 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1782162Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#63573}
-
Clemens Hammacher authored
Node now requires gcc >=6.3, and we do not test on gcc <5.4 any more. Thus remove a special case for gcc <5. R=machenbach@chromium.org Bug: v8:9686 Change-Id: Ifffddec611c15b704aa292a65e87cd770d85ea7b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1786283Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63572}
-
Michael Achenbach authored
Bug: v8:9687 Change-Id: Ia9e82e1565d2dca595f5a231281d415f423b3421 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1787421Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#63571}
-
Tobias Tebbi authored
This is a safe to merge hot-fix to tackle https://crbug.com/983764. To be reverted after merging to M77. Bug: chromium:983764 Change-Id: I3cd27481f224b352ef6bcf9dde21a8f77616acff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1786285Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#63570}
-
Clemens Hammacher authored
Node now requires gcc >=6.3, and we do not test on gcc <5.4 any more. Thus remove a hack for gcc <5. R=machenbach@chromium.org Bug: v8:9686 Change-Id: I503c6b76d40499bbe45fb83996e0dfebf86f3395 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1786281Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63569}
-
Michael Starzinger authored
This makes sure no underlying ArrayBuffer is reserved for modules that don't declare a module. For the case where a memory is declared but the initial size is 0, we still reserve a buffer in case of trap handlers. R=ahaas@chromium.org BUG=v8:9678 Change-Id: I837b8f257b63eb4111646806b899074babd7c9f7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784290Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63568}
-
Clemens Hammacher authored
This reduces the size per runtime stub slot by using the same sequence we plan to use for far jumps. Note that alignment is not an issue here, since runtime stub slots are never patched. R=mstarzinger@chromium.org CC=joey.gouly@arm.com Bug: v8:9477 Change-Id: Ib8f0f7b4930617b9c16dc54f6773572c70b681c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784292 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63567}
-
Ross McIlroy authored
The inferred name in the function literal might not be as accurate as the one already on the shared function info, so use the existing one instead. BUG=chromium:995813 Change-Id: Ie06eb964934fc039e56ebf9452f706e1192b7ab0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1782169 Auto-Submit: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Dan Elphick <delphick@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#63566}
-
Mu Tao authored
On mips, NaN bit patterns is not same as WASM's definitions. Port e101dfb7 R=clemensh@chromium.org Change-Id: I134cd6289b7cf5d1a366345fe0a79cbecc9a6f73 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1782234 Auto-Submit: Mu Tao <pamilty@gmail.com> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63565}
-
Clemens Hammacher authored
This reduces the size per runtime stub slot by using the same sequence we plan to use for far jumps. Note that alignment is not an issue here, since runtime stub slots are never patched. R=mstarzinger@chromium.org Bug: v8:9477 Change-Id: Ida73896bfc26d01f2a3fbccde785928d1ac92380 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784291 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63564}
-
Mu Tao authored
Port 85e2dbb3 Change-Id: I59fbd2eb10469179def9bc6332543f5fc406d1c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784417 Auto-Submit: Mu Tao <pamilty@gmail.com> Reviewed-by: Zhi An Ng <zhin@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63563}
-
Jakob Gruber authored
Refactor-only: This moves declaration of implementation details into the .cc file. No logic changes. Bug: v8:9574 Change-Id: I985ce17138e65f18dbb629b9f6660009e034fbf0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1786279 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#63562}
-
Sigurd Schneider authored
Async functions were not correctly fixed up for code coverage, which caused an additional uncovered range to be reported between a return statement and the closing bracket. This CL adds code that detects such ranges, and removes them, similarly to how the ranges are removed for normal functions. The removal process is different, because the parser rewrites async functions to contain a try-catch handling promise rejection. Change-Id: I73b08d64be74d26c32f2f9652d027430d4671251 Bug: chromium:981313, v8:8381 Change-Id: I82a7f0c54d3a48609ef5255a7659d9557e163566 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1782837Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#63561}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/693faed..e030d8a Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/e7c719c..06605b0 Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/f38bc17..624bf6e TBR=machenbach@chromium.org,tmrts@chromium.org Change-Id: I19a17babd06d9cac9c9e8225ae322fba62f1b5c1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1786899Reviewed-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@{#63560}
-
- 04 Sep, 2019 11 commits
-
-
Tom Tan authored
Windows SDK defines `near` and `far` as macro in minwindef.h, so they cannot be used as variable name if Windows SDK header file is included for Windows build. Bug: chromium:893460 Change-Id: I5ed1076b965979b8e4e09958c1b6f0a698ec8d4f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1783839Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Tom Tan <Tom.Tan@microsoft.com> Cr-Commit-Position: refs/heads/master@{#63559}
-
Joey Gouly authored
Implement I64x2 multiply using 32-bit multiplies. This approach uses two fewer cycles (0.88x) on Cortex-A53 and three fewer cycles (0.86x) on Cortex-A72, compared to moving to general purpose registers and doing two 64-bit multiplies. Based on a patch by Zhi An Ng. Bug: v8:8460 Change-Id: I9c8d3bb77f0d751eec2d85823522558b7f173628 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1781696 Commit-Queue: Martyn Capewell <martyn.capewell@arm.com> Reviewed-by: Zhi An Ng <zhin@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#63558}
-
Dominik Inführ authored
Reduce number of old-to-new invalidations. MigrateFastToFast, MigrateFastToSlow and DeleteObjectPropertyFast only need to invalidate objects in some cases but not in all. Bug: v8:9454 Change-Id: I901eecb9409c6dfa30cf6b4ee0bdd597862fc229 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1781042Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#63557}
-
Seth Brenith authored
I removed the padding field because I couldn't see a reason why we would want to pad to system pointer size. I'm guessing that the intent was to pad to tagged pointer size, which was once relevant but isn't anymore since one of the int32 fields got removed. Bug: v8:8952 Change-Id: Ic191d783efd8d686f6920e6e7ce2d3dacba883c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1776847Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#63556}
-
Clemens Hammacher authored
R=mlippautz@chromium.org Bug: v8:9396 Change-Id: If197687b6208257be18f91b4b172ec41600c21b4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784287Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63555}
-
Tobias Tebbi authored
This reverts commit 352a154e. Reason for revert: https://crbug.com/999972 Original change's description: > [compiler] improve inlining heuristics: call frequency per executed bytecodes > > TLDR: Inline less, but more where it matters. ~10% decrease in Turbofan > compile time including off-thread, while improving Octane scores by ~2%. > > How things used to work: > > There is a flag FLAG_min_inlining_frequency that limits inlining by > the callsite being sufficiently frequently executed. This call frequency > was measured relative to invocations of the parent (= the function we > originally optimize). At the same time, the limit was very low (0.15), > meaning we mostly relied on the total amount of inlined code > (FLAG_max_inlined_bytecode_size_cumulative) to limit inlining. > > How things work now: > > Instead of measuring call frequency relative to parent invocations, we > should have a measure that predicts how often the callsite in question > will be executed in the future. An obvious attempt at that would be to > measure how often the callsite was executed in absolute numbers in the > past. But depending on how fast feedback stabilizes, it can take more > or less time until we optimize a function. If we just take the absolute > call frequency up to the point in time when we optimize, we would > inline more for functions that stabilize slowly, which doesn't make > sense. So instead, we measure absolute call count per KB of executed > bytecodes of the parent function. > Since inlining big functions is more expensive, this threshold is > additionally scaled linearly with the bytecode-size of the inlinee. > The resulting formula is: > call_frequency > > FLAG_min_inlining_frequency * > (bytecode.length() - FLAG_max_inlined_bytecode_size_small) / > (FLAG_max_inlined_bytecode_size - FLAG_max_inlined_bytecode_size_small) > > The new threshold is chosen in a way that it effectively limits > inlining, which allows us to increase > FLAG_max_inlined_bytecode_size_cumulative without increasing inlining > in general. > > The reduction in compile time (x64 build) of ~10% was observed in Octane, > ARES-6, web-tooling-benchmark, and the standalone TypeScript benchmark. > The hope is that this will reduce CPU-time in real-world situations > too. > The Octane improvements come from inlining more in places where it > matters. > > Bug: v8:6682 > > Change-Id: I99baa17dec85b71616a3ab3414d7e055beca39a0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1768366 > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63449} TBR=rmcilroy@chromium.org,neis@chromium.org,jgruber@chromium.org,tebbi@chromium.org,mslekova@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:6682 chromium:999972 Change-Id: Iffca63d4bef81afa0f66e34d35fb72f3b5baf517 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784281Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#63554}
-
Joshua Litt authored
Bug: v8:9463 Change-Id: I4d9d35222597925a289a6c3055ef0ca0aaa43a2f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1775926 Commit-Queue: Joshua Litt <joshualitt@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63553}
-
Maya Lekova authored
Graph creation used to handle exception throwing gracefully, but this seems to never happen, so turned it into a CHECK instead. Change-Id: I90f8471fe77eb66402fd8abe0d5b15dcffee49bf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784286 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#63552}
-
Georg Neis authored
We already do this (if we can't migrate them) when processing the feedback but it could still happen that we find a deprecated map in the graph later on. Bug: chromium:996819, v8:7790 Change-Id: I3b9acc8bc21b5a9812235145b726ba3e53cc8957 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784284Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#63551}
-
Leszek Swirski authored
This reverts commit 981aafaf. Reason for revert: Still crashing on Canary. Original change's description: > Reland "[ic] In-place Double -> Tagged transitions" > > This is a reland of 0736599a. > This is a reland of 7e1fbe8f. > > Original change description: > > [ic] In-place Double -> Tagged transitions > > > > With no more MutableHeapNumber, we can make Double -> Tagged transitions > > in-place, at the cost of an extra map check when accessing double fields > > to make sure they are still doubles. > > > > Bug: v8:9606 > > Change-Id: I74ff39ed6fba62ee223cd37dfe761f7d73020e1c > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1743973 > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#63374} > > TBR=verwaest@chromium.org, tebbi@chromium.org > > Bug: v8:9606 > Change-Id: I2d1b7416064d743582f4983fb868316b7e8a4cf2 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1777661 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63499} TBR=leszeks@chromium.org, verwaest@chromium.org, tebbi@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:9606 Bug: chromium:997989 Change-Id: Ic95166e67df68e84a524dffd8155121c3ff6aa13 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784283 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#63550}
-
Clemens Hammacher authored
The "address" pointer we pass to {Allocate} and {AllocatePages} functions is actually just a hint. The actual address of the reservation is returned by the function. This CL renames the {address} argument of those functions to {hint} to make this semantic more clear. R=mlippautz@chromium.org Bug: v8:9396 Change-Id: I9ff3785ea4e6f9b7d77f26f224445f3f92e11f22 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784280Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63549}
-