- 21 Feb, 2017 1 commit
-
-
Caitlin Potter authored
This is a speculative fix, but I believe it might work. Idea is to keep `start_from` as a double while establishing an appropriate index to begin iteration. This should keep -Infinity intact rather than converting it to a positive high value, which would break the algorithm. This is similar to what had been implemented on the fast path before it was changed to send non-Smis to the slow path. BUG=v8:5986 R=bmeurer@chromium.org, cbruni@chromium.org, machenbach@chromium.org, adamk@chromium.org Change-Id: I9965fd2e75a8972f3f1c7a18e51bd580030a66ea Reviewed-on: https://chromium-review.googlesource.com/445857 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#43358}
-
- 03 Feb, 2017 1 commit
-
-
danno authored
BUG=v8:5269, v8:1956 LOG=N R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2663033003 Cr-Commit-Position: refs/heads/master@{#42926}
-
- 18 Jan, 2017 1 commit
-
-
petermarshall authored
BUG=v8:5659 Review-Url: https://codereview.chromium.org/2571563004 Cr-Commit-Position: refs/heads/master@{#42444}
-
- 13 Jan, 2017 3 commits
-
-
cbruni authored
In the ideal case, this will speed up Object.create(null) by ~10x. Drive-by-fix: Spread usage of new IsSpecialReceiverMap() and IsSpecialReceiverInstanceType(InstanceType) helpers. BUG=v8:5788 Review-Url: https://codereview.chromium.org/2622723003 Cr-Commit-Position: refs/heads/master@{#42336}
-
cbruni authored
Revert of [compiler] Support Object.create(null) inlining in TF (patchset #5 id:80001 of https://codereview.chromium.org/2622723003/ ) Reason for revert: Breaks buildbot: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20avx2/builds/13399/steps/Benchmarks/logs/stdio Original issue's description: > [compiler] Support Object.create(null) inlining in TF > > In the ideal case, this will speed up Object.create(null) by ~10x. > > Drive-by-fix: Spread usage of new IsSpecialReceiverMap() and > IsSpecialReceiverInstanceType(InstanceType) helpers. > > BUG=v8:5788 > > Review-Url: https://codereview.chromium.org/2622723003 > Cr-Commit-Position: refs/heads/master@{#42321} > Committed: https://chromium.googlesource.com/v8/v8/+/ff7063c7d5d8ad8eafcce3da59e65d7fe2b4f915 TBR=jarin@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5788 Review-Url: https://codereview.chromium.org/2636493003 Cr-Commit-Position: refs/heads/master@{#42326}
-
cbruni authored
In the ideal case, this will speed up Object.create(null) by ~10x. Drive-by-fix: Spread usage of new IsSpecialReceiverMap() and IsSpecialReceiverInstanceType(InstanceType) helpers. BUG=v8:5788 Review-Url: https://codereview.chromium.org/2622723003 Cr-Commit-Position: refs/heads/master@{#42321}
-
- 09 Jan, 2017 1 commit
-
-
cbruni authored
The pattern IsNull(isolate) || IsUndefined(isolate) is used in many places all over the code base. Review-Url: https://codereview.chromium.org/2601503002 Cr-Commit-Position: refs/heads/master@{#42138}
-
- 05 Jan, 2017 1 commit
-
-
franzih authored
BUG= Review-Url: https://codereview.chromium.org/2613723002 Cr-Commit-Position: refs/heads/master@{#42083}
-
- 16 Dec, 2016 1 commit
-
-
cbruni authored
Many websites use simple calls to String.prototype.indexOf with either a one character ASCII needle or needles bigger than the search string. This CL adds a TFJ builtin for these simple cases, giving up to factor 5 speedup. Drive-by-fix: Add default Object type to Arguments.at BUG= Review-Url: https://codereview.chromium.org/2539093002 Cr-Commit-Position: refs/heads/master@{#41760}
-
- 07 Dec, 2016 1 commit
-
-
petermarshall authored
This just calls into a runtime function for implementation currently. Intermediate step in speeding up constructor calls containing a spread. The NewWithSpread bytecode will probably end up having different arguments with future CLs - the constructor and the new.target should have their own regs. For now we are calling into the runtime function, so we need the regs together. BUG=v8:5659 Review-Url: https://codereview.chromium.org/2541113004 Cr-Commit-Position: refs/heads/master@{#41542}
-
- 01 Dec, 2016 1 commit
-
-
petermarshall authored
Unfortunately we have to split this up into two cases: those with exactly one spread argument as the final argument, and all others, due to any side-effects of evaluation being visible. This is in preparation for a new bytecode which handles super calls. BUG=v8:5659 Review-Url: https://codereview.chromium.org/2540593003 Cr-Commit-Position: refs/heads/master@{#41415}
-
- 29 Nov, 2016 1 commit
-
-
danno authored
Improves performance in simple, single element case by 5% and in multiple elements cases by 2%. BUG=chromium:608675 LOG=N Review-Url: https://codereview.chromium.org/2497243002 Cr-Commit-Position: refs/heads/master@{#41368}
-
- 18 Nov, 2016 1 commit
-
-
ulan authored
We never increment live bytes concurrent to the sweeper. BUG= Review-Url: https://codereview.chromium.org/2504193002 Cr-Commit-Position: refs/heads/master@{#41097}
-
- 15 Nov, 2016 1 commit
-
-
petermarshall authored
Avoid using the iterator for arrays with fast elements where the iterator has not been modified. Only deals with the case where there is a single spread argument. Improves the six-speed "spread" benchmark to 1.5x slower than baseline es5 implementation, compared to 19x slower previously. BUG=v8:5511 Review-Url: https://codereview.chromium.org/2465253011 Cr-Commit-Position: refs/heads/master@{#40998}
-
- 14 Nov, 2016 1 commit
-
-
caitp authored
Adds a protector cell to prevent inlining (which will likely lead to deopt loops) when a JSArrayIterator's array transitions from a fast JSArray to a slow JSArray (such as, when the array is touched during iteration in a way which triggers a map transition). Also adds TODO comments relating to the spec update proposed by Dan at https://github.com/tc39/ecma262/pull/724 BUG=v8:5388 R=bmeurer@chromium.org, mstarzinger@chromium.org TBR=hpayer@chromium.org, ulan@chromium.org Review-Url: https://codereview.chromium.org/2484003002 Cr-Commit-Position: refs/heads/master@{#40970}
-
- 18 Oct, 2016 2 commits
-
-
bmeurer authored
These intrinsics are unused now, and so we can drop all the code in fullcodegen and Crankshaft that deals with those. TurboFan and Ignition never tried to optimize those. R=mstarzinger@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2427673004 Cr-Commit-Position: refs/heads/master@{#40401}
-
caitp authored
Implements the variations of CreateArrayIterator() in TFJ builtins (ArrayPrototypeValues, ArrayPrototypeEntries and ArrayPrototypeKeys), and provides two new Object types with numerous maps which identify certain behaviours, which will be useful for inlining. Removes src/js/array-iterator.js entirely Also adds support for printing Symbol literals inserted by the Parser during desugaring when FLAG_print_builtin_ast is set to true. BUG=v8:5388 R=bmeurer@chromium.org, cbruni@chromium.org TBR=ulan@chromium.org Review-Url: https://codereview.chromium.org/2405253006 Cr-Commit-Position: refs/heads/master@{#40373}
-
- 07 Oct, 2016 3 commits
-
-
jgruber authored
BUG= Committed: https://crrev.com/7db0ecdec3cf330766575cb7973b983f3f1e3020 Review-Url: https://codereview.chromium.org/2381843002 Cr-Original-Commit-Position: refs/heads/master@{#40080} Cr-Commit-Position: refs/heads/master@{#40087}
-
jgruber authored
This reverts commit 7db0ecde. Manual revert since automatic revert is too large for the web interface. BUG= TBR=bmeurer@chromium.org,mstarzinger@chromium.org,yangguo@chromium.org,ahaas@chromium.org NOPRESUBMIT=true NOTREECHECKS=true Review-Url: https://codereview.chromium.org/2396353002 Cr-Commit-Position: refs/heads/master@{#40082}
-
jgruber authored
BUG= Review-Url: https://codereview.chromium.org/2381843002 Cr-Commit-Position: refs/heads/master@{#40080}
-
- 25 Aug, 2016 1 commit
-
-
jkummerow authored
Unlike Crankshaft, Turbofan does not provide a context when trying to grow elements. Depending on the code path we might end up updating transitioning elements kinds in allocation sites for which we need access to the current context. Unlike GrowCapacityAndConvert, the newly introduced GrowCapacity simply returns false in cases where map transitions are involved. BUG=chromium:637279 Patch by Camillo Bruni <cbruni@chromium.org>, originally reviewed at https://codereview.chromium.org/2244983004/ Review-Url: https://codereview.chromium.org/2252393002 Cr-Commit-Position: refs/heads/master@{#38901}
-
- 22 Aug, 2016 1 commit
-
-
mattloring authored
Includes fast paths in the runtime for DictionaryElementsAccessor, FastSmiOrObjectElementsAccessor, FastDoubleElementsAccessor, TypedElementsAccessor, and SloppyArgumentsElementsAccessor. BUG= Review-Url: https://codereview.chromium.org/2232063002 Cr-Commit-Position: refs/heads/master@{#38800}
-
- 09 Aug, 2016 1 commit
-
-
bmeurer authored
When we compile a growing store in TurboFan, we don't pass a (native) context to the %GrowArrayElements fallback function, as the whole logic is actually context independent. However, that means that we need to bailout early in case the object is a prototype, which requires context dependent checks in the array protector code. R=cbruni@chromium.org BUG=chromium:635798 Review-Url: https://codereview.chromium.org/2224253003 Cr-Commit-Position: refs/heads/master@{#38491}
-
- 03 Aug, 2016 1 commit
-
-
caitp authored
BUG=v8:5162 R=bmeurer@chromium.org, cbruni@chromium.org Review-Url: https://codereview.chromium.org/2205883003 Cr-Commit-Position: refs/heads/master@{#38266}
-
- 02 Aug, 2016 1 commit
-
-
machenbach authored
Revert of [builtins] implement Array.prototype.includes in TurboFan (patchset #20 id:380001 of https://codereview.chromium.org/2146293003/ ) Reason for revert: [Sheriff] Breaks: https://build.chromium.org/p/client.v8.ports/builders/V8%20Arm%20-%20builder/builds/2592 Original issue's description: > [builtins] implement Array.prototype.includes in TurboFan > > BUG=v8:5162 > R=bmeurer@chromium.org, ishell@chromium.org > > Committed: https://crrev.com/a488b5d8eb111a4883dc400bd826d079420edd68 > Cr-Commit-Position: refs/heads/master@{#38223} TBR=adamk@chromium.org,bmeurer@chromium.org,cbruni@chromium.org,danno@chromium.org,ishell@chromium.org,littledan@chromium.org,caitp@igalia.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5162 Review-Url: https://codereview.chromium.org/2202163002 Cr-Commit-Position: refs/heads/master@{#38226}
-
- 01 Aug, 2016 1 commit
-
-
caitp authored
BUG=v8:5162 R=bmeurer@chromium.org, ishell@chromium.org Review-Url: https://codereview.chromium.org/2146293003 Cr-Commit-Position: refs/heads/master@{#38223}
-
- 28 Jul, 2016 1 commit
-
-
danno authored
A "--minimal" flag turns off all optimizing compilers and activates the interpreter. The idea is that with this flag activated, only the platform-specific stubs and a Turbofan implementation must be complete to start d8 and run the bulk of the tests. Note that although this flag is constructed as a runtime flag, it must be set to true when building the snapshot and therefore creates a compile-time dependency. BUG=chromium:608675 Review-Url: https://codereview.chromium.org/2189663002 Cr-Commit-Position: refs/heads/master@{#38150}
-
- 21 Jul, 2016 1 commit
-
-
bmeurer authored
The optimizing compilers actually invoke %TransitionElementsKind for any kind of JSObject, the only relevant thing is the elements kind. The runtime function was however checking for JSArray unnecessarily. This only worked by coincindence in Crankshaft because the stub would normally not call into the runtime fallback. R=jarin@chromium.org BUG=chromium:629823 Review-Url: https://codereview.chromium.org/2166963004 Cr-Commit-Position: refs/heads/master@{#37919}
-
- 19 Jul, 2016 1 commit
-
-
bmeurer authored
Instead of wriring the elements kind transitions into the control flow early on, we do instead put this marker into the effect chain, so that the elements transitions are visible to the LoadElimination and can thus be optimized properly there. This CL itself doesn't add any of those optimizations, but just adds the foundations to make them possible later. R=jarin@chromium.org BUG=v8:4930,v8:5141 Review-Url: https://codereview.chromium.org/2164573003 Cr-Commit-Position: refs/heads/master@{#37869}
-
- 13 Jun, 2016 1 commit
-
-
cbruni authored
Array.prototype.sort would not work properly on sloppy arguments of size > 2. BUG=chromium:618613 Review-Url: https://codereview.chromium.org/2051413004 Cr-Commit-Position: refs/heads/master@{#36920}
-
- 10 Jun, 2016 1 commit
-
-
danno authored
Instead, always tail call to the runtime. Also, cleanup the various versions of the runtime call that is used for Array construction fallback. There can be only one. BUG=chromium:608675 LOG=N Review-Url: https://codereview.chromium.org/2024253002 Cr-Commit-Position: refs/heads/master@{#36888}
-
- 08 Jun, 2016 2 commits
-
-
jkummerow authored
Adding properties to prototypes is faster when we don't force their maps into fast mode yet. Once a prototype shows up in the IC system, its setup phase is likely over, and it makes sense to transition it to fast properties. This patch speeds up the microbenchmark in the bug by 20x. Octane-Typescript sees a 3% improvement. BUG=chromium:607010 Review-Url: https://codereview.chromium.org/2036493006 Cr-Commit-Position: refs/heads/master@{#36828}
-
mstarzinger authored
This removes explicit uses of the RUNTIME_ASSERT macro from some runtime methods. The implicit ones in CONVERT_FOO_ARG_CHECKED will be addressed in a separate CL for all runtime modules at once. R=verwaest@chromium.org BUG=v8:5066 Review-Url: https://codereview.chromium.org/2041353003 Cr-Commit-Position: refs/heads/master@{#36815}
-
- 06 Jun, 2016 1 commit
-
-
cbruni authored
Passing in the isolate and pointer compare the instnance against the corresponding constant is always faster than decoding the instance types. BUG= Review-Url: https://codereview.chromium.org/2028983002 Cr-Commit-Position: refs/heads/master@{#36744}
-
- 30 May, 2016 1 commit
-
-
cbruni authored
Expose more or less the full functionality of the KeyAccumulator in the API: - use the PropertyFilter introduced for GetOwnPropertyNames - use KeyCollectionLimit for OWN_ONLY or INLCUDE_PROTOS - use IndexFilter to eithe SKIP_INDICES or INCLUDE_INDICES Rewire Object::GetOwnPropertyNames to use GetPropertyNames. BUG=chromium:148757 Review-Url: https://codereview.chromium.org/2002203002 Cr-Commit-Position: refs/heads/master@{#36595}
-
- 25 May, 2016 1 commit
-
-
cbruni authored
Reland of [keys] Simplify KeyAccumulator (patchset #1 id:1 of https://codereview.chromium.org/2010593002/ ) Reason for revert: relanding, fixed handle dereferencing Original issue's description: > Revert of [keys] Simplify KeyAccumulator (patchset #15 id:280001 of https://codereview.chromium.org/1995263002/ ) > > Reason for revert: > https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/6248 > > Original issue's description: > > [keys] Simplify KeyAccumulator > > > > - Use KeyAccumulator::GetKeys directly instead of JSReceiver::GetKeys > > - Revert KeyAccumulator to single OrderedHashSet implementation. > > - Convert the OrderedHashSet in-place to a FixedArray > > - IndexedInterceptor indices are no longer combined and sorted with the object indices > > > > BUG= > > > > Committed: https://crrev.com/d3324df017046bcde247a5aef6d1b59bfae5908f > > Cr-Commit-Position: refs/heads/master@{#36485} > > TBR=jkummerow@chromium.org,verwaest@chromium.org,cbruni@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG= > > Committed: https://crrev.com/893524b53d43df63bca6cb9b7244d21771fadb0b > Cr-Commit-Position: refs/heads/master@{#36486} TBR=jkummerow@chromium.org,verwaest@chromium.org,machenbach@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2014523002 Cr-Commit-Position: refs/heads/master@{#36502}
-
- 24 May, 2016 4 commits
-
-
machenbach authored
Revert of [keys] Simplify KeyAccumulator (patchset #15 id:280001 of https://codereview.chromium.org/1995263002/ ) Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/6248 Original issue's description: > [keys] Simplify KeyAccumulator > > - Use KeyAccumulator::GetKeys directly instead of JSReceiver::GetKeys > - Revert KeyAccumulator to single OrderedHashSet implementation. > - Convert the OrderedHashSet in-place to a FixedArray > - IndexedInterceptor indices are no longer combined and sorted with the object indices > > BUG= > > Committed: https://crrev.com/d3324df017046bcde247a5aef6d1b59bfae5908f > Cr-Commit-Position: refs/heads/master@{#36485} TBR=jkummerow@chromium.org,verwaest@chromium.org,cbruni@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2010593002 Cr-Commit-Position: refs/heads/master@{#36486}
-
cbruni authored
- Use KeyAccumulator::GetKeys directly instead of JSReceiver::GetKeys - Revert KeyAccumulator to single OrderedHashSet implementation. - Convert the OrderedHashSet in-place to a FixedArray - IndexedInterceptor indices are no longer combined and sorted with the object indices BUG= Review-Url: https://codereview.chromium.org/1995263002 Cr-Commit-Position: refs/heads/master@{#36485}
-
yangguo authored
R=franzih@chromium.org Review-Url: https://codereview.chromium.org/2006673002 Cr-Commit-Position: refs/heads/master@{#36470}
-
danno authored
BUG=chromium:608675 LOG=n Review-Url: https://codereview.chromium.org/1987183002 Cr-Commit-Position: refs/heads/master@{#36463}
-