- 14 Jan, 2016 1 commit
-
-
mlippautz authored
BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1588823003 Cr-Commit-Position: refs/heads/master@{#33302}
-
- 12 Jan, 2016 2 commits
-
-
mlippautz authored
Failing to do so results in out-of-date marking information, because live bytes is not properly adjusted. This CL adds support for right trimming ByteArray and properly DCHECKs that we do not left trim ByteArray (as we already do for FixedTypedArrayBase). BUG= Review URL: https://codereview.chromium.org/1577263003 Cr-Commit-Position: refs/heads/master@{#33252}
-
mlippautz authored
We use a scratchpad to remember visited allocation sites for post processing (making tenure decisions). The previous implementation used a rooted FixedArray with constant length (256) to remember all sites. Updating the scratchpad is a bottleneck in any parallel/concurrent implementation of newspace evacuation. The new implementation uses a HashMap with allocation sites as keys and temporary counts as values. During evacuation we collect a local hashmap of visited allocation sites. Upon merging the local hashmap back into a global one we update potential forward pointers of compacted allocation sites. The scavenger can directly enter its entries into the global hashmap. Note that the actual memento found count is still kept on the AllocationSite as it needs to survive scavenges and full GCs. BUG=chromium:524425 LOG=N R=hpayer@chromium.org Review URL: https://codereview.chromium.org/1535723002 Cr-Commit-Position: refs/heads/master@{#33233}
-
- 11 Jan, 2016 2 commits
-
-
hpayer authored
This CL changes the color for encoding black and grey. Moreover, it introduces a higher level live object iterator. BUG=chromium:561449 LOG=n Review URL: https://codereview.chromium.org/1517993003 Cr-Commit-Position: refs/heads/master@{#33208}
-
mlippautz authored
A concurrent sweeper thread can access the same markbit cell as the main thread during right trimming a fixed array, resulting in a data race on a markbit cell. Previously we checked whether we were currently marking incrementally, filtering out this case. The current check has the benefit of keeping live_bytes accurate (modulo other bugs) until the sweeper starts. BUG=chromium:576193 LOG=N Review URL: https://codereview.chromium.org/1576853002 Cr-Commit-Position: refs/heads/master@{#33203}
-
- 08 Jan, 2016 3 commits
-
-
hpayer authored
BUG=chromium:574953 LOG=n Review URL: https://codereview.chromium.org/1570443004 Cr-Commit-Position: refs/heads/master@{#33179}
-
mlippautz authored
* Buffer counter updates in the corresponding visitor to allow parallel processing of pages. * Fix a bug where we don't keep live bytes in sync when marking is already finished. LOG=N BUG=524425 Review URL: https://codereview.chromium.org/1559873004 Cr-Commit-Position: refs/heads/master@{#33170}
-
yangguo authored
R=rossberg@chromium.org, ulan@chromium.org Review URL: https://codereview.chromium.org/1565183002 Cr-Commit-Position: refs/heads/master@{#33169}
-
- 07 Jan, 2016 1 commit
-
-
littledan authored
- Each of the three deprecated Promise functions - Two nonstandard pieces of Intl functionality - Accesses of the RegExp.prototype.unicode getter on the prototype BUG=v8:3785,v8:3238,v8:4633 LOG=N R=adamk TBR=hpayer Review URL: https://codereview.chromium.org/1558113002 Cr-Commit-Position: refs/heads/master@{#33142}
-
- 05 Jan, 2016 1 commit
-
-
ulan authored
BUG=chromium:574349 LOG=NO Review URL: https://codereview.chromium.org/1553233003 Cr-Commit-Position: refs/heads/master@{#33113}
-
- 04 Jan, 2016 1 commit
-
-
littledan authored
This patch adds the basis for subclassing TypedArrays, Arrays and ArrayBuffers through the @@species hook, added in ES2015. This is the first patch in a series. This patch simply defines the @@species Symbol and installs it on the appropriate constructors. The behavior is guarded behind the --harmony-species flag. R=cbruni BUG=v8:4093 LOG=Y CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel TBR=hpayer@chromium.org Review URL: https://codereview.chromium.org/1558543002 Cr-Commit-Position: refs/heads/master@{#33095}
-
- 01 Jan, 2016 1 commit
-
-
bmeurer authored
Unify the constructors and isView methods for ArrayBuffer and SharedArrayBuffer, moving them to C++ because there's no point in having the JavaScript wrappers for them. We choose to deliberately violate the ES2015 specification and implement the ArrayBuffer constructor in a way that matches Firefox and Safari instead. CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel BUG=chromium:565917, v8:4592 TBR=hpayer@chromium.org R=cbruni@chromium.org LOG=n Committed: https://crrev.com/3235ccbb7826ceec2188f6ebab98fc851b54f60e Cr-Commit-Position: refs/heads/master@{#32590} Review URL: https://codereview.chromium.org/1500543002 Cr-Commit-Position: refs/heads/master@{#33072}
-
- 30 Dec, 2015 1 commit
-
-
bmeurer authored
There's no point in keeping the ObjectCreate JavaScript wrapper function, which even does allocation site pretenuring for the instances created via Object.create (where ObjectCreate itself is the AllocationSite), and does not offer any sane way forward. Instead introduce a new ObjectCreate C++ builtin, which currently serves as a baseline implementation, on top of which we can think about ways to optimize Object.create for the common case (i.e. frameworks such as Ember.js make heavy use of Object.create). R=cbruni@chromium.org TBR=hpayer@chromium.org Review URL: https://codereview.chromium.org/1558433002 Cr-Commit-Position: refs/heads/master@{#33061}
-
- 27 Dec, 2015 2 commits
-
-
bmeurer authored
According to the ES2015 specification, bound functions are exotic objects, and thus don't need to be implemented as JSFunctions. So we introduce a new JSBoundFunction type to represent bound functions and make them optimizable. This already improves the performance of calling or constructing bound functions by 10-100x depending on the use case because we avoid the crazy dance between JavaScript and C++ that was implemented in v8natives.js previously. There's still room for improvement in the performance of actually creating bound functions, which is also relevant in practice, but we already have a plan how to accomplish that later. The mips/mips64 ports were contributed by akos.palfi@imgtec.com. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel BUG=chromium:535408, chromium:571299, v8:4629 LOG=n Committed: https://crrev.com/ca8623eaa468cba65a5adafcdfb4615966f43ce2 Cr-Commit-Position: refs/heads/master@{#33042} Review URL: https://codereview.chromium.org/1542963002 Cr-Commit-Position: refs/heads/master@{#33044}
-
bmeurer authored
Revert of [runtime] Introduce dedicated JSBoundFunction to represent bound functions. (patchset #14 id:260001 of https://codereview.chromium.org/1542963002/ ) Reason for revert: Breaks arm64 sim nosnap: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/805/steps/Check/logs/function-bind Original issue's description: > [runtime] Introduce dedicated JSBoundFunction to represent bound functions. > > According to the ES2015 specification, bound functions are exotic > objects, and thus don't need to be implemented as JSFunctions. So > we introduce a new JSBoundFunction type to represent bound functions > and make them optimizable. This already improves the performance of > calling or constructing bound functions by 10-100x depending on the > use case because we avoid the crazy dance between JavaScript and C++ > that was implemented in v8natives.js previously. > > There's still room for improvement in the performance of actually > creating bound functions, which is also relevant in practice, but > we already have a plan how to accomplish that later. > > The mips/mips64 ports were contributed by akos.palfi@imgtec.com. > > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel > BUG=chromium:535408, chromium:571299, v8:4629 > LOG=n > > Committed: https://crrev.com/ca8623eaa468cba65a5adafcdfb4615966f43ce2 > Cr-Commit-Position: refs/heads/master@{#33042} TBR=cbruni@chromium.org,hpayer@chromium.org,yangguo@chromium.org,akos.palfi@imgtec.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:535408, chromium:571299, v8:4629 Review URL: https://codereview.chromium.org/1552473002 Cr-Commit-Position: refs/heads/master@{#33043}
-
- 26 Dec, 2015 1 commit
-
-
bmeurer authored
According to the ES2015 specification, bound functions are exotic objects, and thus don't need to be implemented as JSFunctions. So we introduce a new JSBoundFunction type to represent bound functions and make them optimizable. This already improves the performance of calling or constructing bound functions by 10-100x depending on the use case because we avoid the crazy dance between JavaScript and C++ that was implemented in v8natives.js previously. There's still room for improvement in the performance of actually creating bound functions, which is also relevant in practice, but we already have a plan how to accomplish that later. The mips/mips64 ports were contributed by akos.palfi@imgtec.com. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel BUG=chromium:535408, chromium:571299, v8:4629 LOG=n Review URL: https://codereview.chromium.org/1542963002 Cr-Commit-Position: refs/heads/master@{#33042}
-
- 23 Dec, 2015 1 commit
-
-
hpayer authored
BUG=chromium:561449 LOG=n Review URL: https://codereview.chromium.org/1542113002 Cr-Commit-Position: refs/heads/master@{#33026}
-
- 22 Dec, 2015 1 commit
-
-
bmeurer authored
There's actually no point trying to do Function.prototype.toString in JavaScript, as it always calls into C++ at least once, so it only complicates things (esp. once we start optimizing bound functions). Drive-by-fix: Rename FunctionApply and FunctionCall builtins to also reflect the fact that these are builtins in the Function.prototype and not on Function itself. TBR=hpayer@chromium.org R=yangguo@chromium.org BUG=chromium:535408 LOG=n Review URL: https://codereview.chromium.org/1540953004 Cr-Commit-Position: refs/heads/master@{#32996}
-
- 18 Dec, 2015 2 commits
-
-
mlippautz authored
This CL prepare newspace evacuation for parallel execution wrt. to actual allocations. The priority for allocations is: * Try to allocate from LAB if objects are below kMaxLabObjectSize * Allocate directly (synchronized) from newspace for larger objects. * Fall back to old space allocation (which will be backed by a local compaction space in future). Semantical change: Previously we did fall back to regular new space promotion if we are OOM in old space. With this CL we fall back to new space promotion, which could fail because of fragmentation, again leading to an old space allocation that finally bails into OOM. Newspace evacuation is still single threaded and requires further changes to allocation site tracking. BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1487853002 Cr-Commit-Position: refs/heads/master@{#32970}
-
mlippautz authored
Reason for revert: Revive left-trimming until new strategies are evaluated and decided on. Partially reverted changes from: https://codereview.chromium.org/1474203003/ BUG=v8:4606 LOG=N Original issue's description: > [heap] delete Heap::LeftTrimFixedAray > > No more uses left for this code (thank goodness.) > > R=hpayer@chromium.org > BUG= > > Committed: https://crrev.com/dc3442b1ec803916eb6c1882ab4c3ec6fd44dd55 > Cr-Commit-Position: refs/heads/master@{#32305} TBR=hpayer@chromium.org,ofrobots@google.com Review URL: https://codereview.chromium.org/1535933002 Cr-Commit-Position: refs/heads/master@{#32965}
-
- 16 Dec, 2015 1 commit
-
-
mlippautz authored
Tests for * aborting a full page. * partially aborting a page. * partially aborting a page with pointers between aborted pages. * partially aborting a page with store buffer entries. Also introduces force_oom() which prohibits a old space to expand BUG=chromium:524425 LOG=N CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_nosnap_rel,v8_linux_nosnap_dbg,v8_win_nosnap_shared_rel,v8_win_nosnap_shared_compile_rel Review URL: https://codereview.chromium.org/1518803005 Cr-Commit-Position: refs/heads/master@{#32899}
-
- 11 Dec, 2015 7 commits
-
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1514693010 Cr-Commit-Position: refs/heads/master@{#32808}
-
mlippautz authored
R=hpayer@chromium.org BUG= Review URL: https://codereview.chromium.org/1521573002 Cr-Commit-Position: refs/heads/master@{#32793}
-
ulan authored
BUG=chromium:568495 LOG=NO Review URL: https://codereview.chromium.org/1515503006 Cr-Commit-Position: refs/heads/master@{#32791}
-
mlippautz authored
R=hpayer@chromium.org BUG= Review URL: https://codereview.chromium.org/1522433002 Cr-Commit-Position: refs/heads/master@{#32789}
-
mlippautz authored
Revert of [cctest] Add tests for aborting compaction of pages (patchset #6 id:140001 of https://codereview.chromium.org/1511933002/ ) Reason for revert: Failing on Win 32bit nosnap: https://chromegw.corp.google.com/i/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/10602 Original issue's description: > [cctest] Add tests for aborting compaction of pages > > Tests for > * aborting a full page. > * partially aborting a page. > * partially aborting a page with pointers between aborted pages. > * partially aborting a page with store buffer entries. > > Also introduces force_oom() which prohibits a old space to > expand > > BUG=chromium:524425 > LOG=N TBR=ulan@chromium.org,hpayer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:524425 Review URL: https://codereview.chromium.org/1514603008 Cr-Commit-Position: refs/heads/master@{#32785}
-
mlippautz authored
Tests for * aborting a full page. * partially aborting a page. * partially aborting a page with pointers between aborted pages. * partially aborting a page with store buffer entries. Also introduces ShouldForceOOM() which prohibits a PagedSpace from expanding. Compaction spaces refer to the corresponding actual space. BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1511933002 Cr-Commit-Position: refs/heads/master@{#32783}
-
adamk authored
The main impetus is to improve performance when --harmony-tostring is enabled, thanks to using a generic property load instead of a megamorphic IC. This also reduces duplication, as the API function v8::Object::ObjectProtoToString can share the runtime implementation. The only functional change in this patch is to drop an accidental difference between the JS and API implementations: the arguments object should toString as "[object Arguments]". The JS side was corrected in https://code.google.com/p/v8/source/detail?r=3279, but the API version was missed in that patch. BUG=chromium:555127, v8:3502 LOG=n CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1509533003 Cr-Commit-Position: refs/heads/master@{#32777}
-
- 10 Dec, 2015 3 commits
-
-
hpayer authored
A.x = B Change from mark grey A to mark grey B. BUG= Review URL: https://codereview.chromium.org/1409813007 Cr-Commit-Position: refs/heads/master@{#32765}
-
ishell authored
Function subclasses did not have function properties installed (name, prototype, etc.). Now when an instance of a Function subclass is created it gets initial map that corresponds to the language mode of the function body. The language mode dependent maps are cached as special transitions on initial map of the subclass constructor. BUG=v8:4597, v8:3101, v8:3330 LOG=Y Review URL: https://codereview.chromium.org/1510753005 Cr-Commit-Position: refs/heads/master@{#32764}
-
mlippautz authored
R=ulan@chromium.org BUG= Review URL: https://codereview.chromium.org/1510213002 Cr-Commit-Position: refs/heads/master@{#32739}
-
- 09 Dec, 2015 5 commits
-
-
ulan authored
Compaction of the array with maps happens lazily upon adding new maps. BUG= Review URL: https://codereview.chromium.org/1481953002 Cr-Commit-Position: refs/heads/master@{#32717}
-
mlippautz authored
R=hpayer@chromium.org BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1504773002 Cr-Commit-Position: refs/heads/master@{#32712}
-
mythria authored
The new minorGC pass collects all unmodified objects that are not marked active by blink. The earlier implementation assumed all new space nodes to be Heap objects. Updated this code to handle Smi objects as well. BUG=553287 LOG=Y Review URL: https://codereview.chromium.org/1491203002 Cr-Commit-Position: refs/heads/master@{#32704}
-
ishell authored
Review URL: https://codereview.chromium.org/1506683004 Cr-Commit-Position: refs/heads/master@{#32698}
-
mvstanton authored
It's expensive to walk all shared function infos during the gc atomic pause. Instead, use WeakCells to implement this structure without manual clearing. Reland due to a bug when reusing entries in the optimized code map. BUG= Review URL: https://codereview.chromium.org/1508703002 Cr-Commit-Position: refs/heads/master@{#32696}
-
- 08 Dec, 2015 2 commits
-
-
ulan authored
Instead of iterating the whole map space to find dead transitions, look in weak cell list and transition array list. Simple transitions are in the weak cell list. Full transitions are in the transitions array list. BUG=chromium:554488 LOG=NO Review URL: https://codereview.chromium.org/1488593003 Cr-Commit-Position: refs/heads/master@{#32684}
-
cbruni authored
BUG=v8:1543 LOG=N Review URL: https://codereview.chromium.org/1499593003 Cr-Commit-Position: refs/heads/master@{#32675}
-
- 07 Dec, 2015 2 commits
-
-
verwaest authored
Error still to be done, since that's not yet available in the bootstrapper. BUG=v8:3900, v8:3931, v8:1543, v8:3330 LOG=n Review URL: https://codereview.chromium.org/1499923002 Cr-Commit-Position: refs/heads/master@{#32662}
-
mstarzinger authored
This makes the strong link from optimized code to code objects for all inlined functions explicit. It adds direct references to code objects into deoptimization data as literals. Note that this is not necessarily the code that will be deoptimized to, because the code on the shared function info might be replaced by other components (e.g. debugger). Those replacement code objects however are all non-flushable, marking explicit strong links for reachability unnecessary. R=hpayer@chromium.org Review URL: https://codereview.chromium.org/1490233009 Cr-Commit-Position: refs/heads/master@{#32654}
-