- 10 Apr, 2017 1 commit
-
-
bmeurer authored
The Generic access info was introduced to handle transitioning stores that extend the properties backing store (by reusing the STORE_IC). But since crrev.com/2778133003 TurboFan handles these by just inlining the properties backing store (re)allocation, and thus this is now dead code. BUG=v8:5267 Review-Url: https://codereview.chromium.org/2811593002 Cr-Commit-Position: refs/heads/master@{#44505}
-
- 20 Feb, 2017 1 commit
-
-
Igor Sheludko authored
The constant field tracking is still disabled. BUG=v8:5495 Change-Id: I543fe50b82e2255bbf200ea785ec53e3623e30cb Reviewed-on: https://chromium-review.googlesource.com/440924 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#43304}
-
- 11 Jan, 2017 1 commit
-
-
franzih authored
Lower StoreDataPropertyInLiteral() when storing computed property names in object literals. Add a new AccessMode, kStoreInLiteral. It is similar to AccessMode::kStore but does not look up properties on the prototype chain. 99% of all literal definitions with computed property names end up with generic access_info because of how we count properties. Once we fix https://bugs.chromium.org/p/v8/issues/detail?id=5625, they'll get lowered as well. BUG=v8:5624 Review-Url: https://codereview.chromium.org/2619773002 Cr-Commit-Position: refs/heads/master@{#42210}
-
- 21 Nov, 2016 2 commits
-
-
hablich authored
Revert of [turbofan] Introduce LoadFunctionPrototype simplified operator. (patchset #1 id:1 of https://codereview.chromium.org/2517913002/ ) Reason for revert: Blocks roll https://codereview.chromium.org/2517963002/ Original issue's description: > [turbofan] Introduce LoadFunctionPrototype simplified operator. > > Add a LoadFunctionPrototype simplified operator, similar to what > Crankshaft has, that loads the prototype property of a constructor > function. > > R=jarin@chromium.org > BUG=v8:5267 > > Committed: https://crrev.com/1737b2c74b50168e96ef1263def0eb43505fa80c > Cr-Commit-Position: refs/heads/master@{#41127} TBR=jarin@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5267 Review-Url: https://codereview.chromium.org/2514363002 Cr-Commit-Position: refs/heads/master@{#41141}
-
bmeurer authored
Add a LoadFunctionPrototype simplified operator, similar to what Crankshaft has, that loads the prototype property of a constructor function. R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2517913002 Cr-Commit-Position: refs/heads/master@{#41127}
-
- 14 Nov, 2016 1 commit
-
-
jarin authored
This helps if the polymorhpic case has other maps with fast accesses. In box2d (with high number of iterations and warm-up), we spend about 2.7% of running time in StoreIC; after this change it is only 0.2%. Review-Url: https://codereview.chromium.org/2494673002 Cr-Commit-Position: refs/heads/master@{#40957}
-
- 20 Sep, 2016 1 commit
-
-
heimbuef authored
This is some initial cleanup to keep /src clean. The AccountingAllocator is actually exclusively used by zones and this common subfolder makes that more clear. BUG=v8:5409 Review-Url: https://codereview.chromium.org/2344143003 Cr-Commit-Position: refs/heads/master@{#39558}
-
- 05 Sep, 2016 1 commit
-
-
mvstanton authored
BUG= Review-Url: https://codereview.chromium.org/2309823002 Cr-Commit-Position: refs/heads/master@{#39181}
-
- 31 Aug, 2016 1 commit
-
-
bmeurer authored
We (mis)used Type::Class to track stable field maps in the past. But that always more or less unsupport and wrong for various reasons, mostly because the class types do not really present static information and thus it is possible to violate fundamental assumptions of the type system (i.e. intersecting class types and other types produces "interesting" results). Now it is possible to finally nuke the class types completely and thus simplify (and ideally correctify) the type system further. Note to performance sheriff: We do expect to see some performance regressions from this change. This is because we do not yet have a sane replacement mechanism to track known field maps and utilize them during LoadElimination. This will be accomplished in a follow up CL. BUG=v8:5270,v8:5267 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2293343002 Cr-Commit-Position: refs/heads/master@{#39031}
-
- 30 Aug, 2016 1 commit
-
-
mvstanton authored
Increasingly, we avoid using the representation dimension of Type, and set it explicitly ourselves. BUG= Review-Url: https://codereview.chromium.org/2290233002 Cr-Commit-Position: refs/heads/master@{#39026}
-
- 29 Aug, 2016 1 commit
-
-
bmeurer authored
For asm.js we now have a dedicated AsmTyper, that uses it's own type system (which is tailored towards asm.js), and so we don't need the special asm.js types anymore in the TypeCache. This also moves the TypeCache into the src/compiler directory, because it doesn't make sense to use outside anyways. TBR=ahaas@chromium.org R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2289573002 Cr-Commit-Position: refs/heads/master@{#38964}
-
- 05 Aug, 2016 1 commit
-
-
bmeurer authored
We don't need to add stability dependencies on JSObject prototypes when storing to an element, because we do the map check (and thereby guard the elements kind) and we also properly deoptimize on holes if the array protector is not usable. R=verwaest@chromium.org BUG=chromium:616709 Review-Url: https://codereview.chromium.org/2198833002 Cr-Commit-Position: refs/heads/master@{#38355}
-
- 01 Aug, 2016 1 commit
-
-
bmeurer authored
Allow inlining of getters and setters into TurboFan optimized code. This just adds the basic machinery required to essentially inline the setter and getter dispatch code for the (keyed) load/store ICs. There'll be follow up CLs to also actually inline some of the interesting accessor functions itself, like the byteLength and friends for the TypedArrays. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2198473002 Cr-Commit-Position: refs/heads/master@{#38192}
-
- 28 Jul, 2016 1 commit
-
-
bmeurer authored
Split the monster methods in JSNativeContextSpecialization into smaller ones, adding appropriate helpers. Improve the condition checking for strings and numbers using CheckString/CheckNumber when applicable. Also try to merge compatible PropertyAccessInfos, to avoid running into the polymorphic case whenever possible. Drive-by-fix: Don't try to resurrect dead nodes during LoadElimination. With the improve code generation for monomorphic loads, we seem to trigger the dead node resurrection. R=epertoso@chromium.org BUG=v8:4930,v8:5141 Review-Url: https://codereview.chromium.org/2191823002 Cr-Commit-Position: refs/heads/master@{#38127}
-
- 08 Jun, 2016 1 commit
-
-
gsathya authored
Revert "Revert of [builtins] Properly optimize TypedArray/DataView accessors. (patchset #3 id:40001 of https://codereview.chromium.org/2042013003/ )" This reverts commit d3a43e47. This patch also adds typed_array_fun and typed_array_protoype to the native context. These are used in InstallTypedArray to set up the prototype chain correctly for each typed array sub class. This removes the need to later monkey patch them prototype chain in typedarray.js. This mechanism is also used to get hold of the TypedArray in typedarray.js, removing the need for a global TypedArray. This patch updates CallRuntime.golden to account for the two extra native runtime calls. This patch also fixes some formatting issues (by running git cl format). BUG=chromium:579905, chromium:593634, v8:4085, v8:5073 Review-Url: https://codereview.chromium.org/2046333002 Cr-Commit-Position: refs/heads/master@{#36811}
-
- 07 Jun, 2016 2 commits
-
-
machenbach authored
Revert of [builtins] Properly optimize TypedArray/DataView accessors. (patchset #3 id:40001 of https://codereview.chromium.org/2042013003/ ) Reason for revert: Blink: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/7296 Original issue's description: > [builtins] Properly optimize TypedArray/DataView accessors. > > The following getters were moved to the TypedArray/DataView prototype > chain with ES2015, and hence need different treatment now: > > - DataView.prototype.buffer > - DataView.prototype.byteLength > - DataView.prototype.byteOffset > - TypedArray.prototype.buffer > - TypedArray.prototype.byteLength > - TypedArray.prototype.byteOffset > - TypedArray.prototype.length > > Instead of having special magic on the LoadIC in the IC system and the > optimizing compilers, as we used to do before (and which we got rid of > already), we just treat those as normal accessors and make them > recognizable via the BuiltinFunctionId mechanism. This allows us to > remove some of the additional magic from the IC subsystem, and just > extend the BuiltinFunctionId mechanism in Crankshaft slightly to cover > these cases too (TurboFan doesn't yet support accessors, but that will > be fixed soonish anyways). > > This addresses most of the 15-20% regression we saw on the Octane > GameBoy emulator benchmark. > > BUG=chromium:579905,chromium:593634,v8:4085,v8:5073 > R=yangguo@chromium.org > > Committed: https://crrev.com/1ef737026565ea2becc84f30cfd432e581d50c6b > Cr-Commit-Position: refs/heads/master@{#36782} TBR=yangguo@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:579905,chromium:593634,v8:4085,v8:5073 Review-Url: https://codereview.chromium.org/2039093005 Cr-Commit-Position: refs/heads/master@{#36783}
-
bmeurer authored
The following getters were moved to the TypedArray/DataView prototype chain with ES2015, and hence need different treatment now: - DataView.prototype.buffer - DataView.prototype.byteLength - DataView.prototype.byteOffset - TypedArray.prototype.buffer - TypedArray.prototype.byteLength - TypedArray.prototype.byteOffset - TypedArray.prototype.length Instead of having special magic on the LoadIC in the IC system and the optimizing compilers, as we used to do before (and which we got rid of already), we just treat those as normal accessors and make them recognizable via the BuiltinFunctionId mechanism. This allows us to remove some of the additional magic from the IC subsystem, and just extend the BuiltinFunctionId mechanism in Crankshaft slightly to cover these cases too (TurboFan doesn't yet support accessors, but that will be fixed soonish anyways). This addresses most of the 15-20% regression we saw on the Octane GameBoy emulator benchmark. BUG=chromium:579905,chromium:593634,v8:4085,v8:5073 R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2042013003 Cr-Commit-Position: refs/heads/master@{#36782}
-
- 18 Nov, 2015 1 commit
-
-
bmeurer authored
Lower access to byteOffset and byteLength getters on JSArrayBufferViews and to length on JSTypedArrays. This requires a check to see whether the backing JSArrayBuffer was neutered. R=mstarzinger@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1453653003 Cr-Commit-Position: refs/heads/master@{#32070}
-
- 16 Nov, 2015 1 commit
-
-
bmeurer authored
Extend the ElementAccessInfo machinery with support for elements kind transitions, which can be either in-place updates of the map (i.e. when going from FAST_SMI_ELEMENTS to FAST_ELEMENTS) or instance migrations utilizing the TransitionElementsKindStub. R=jarin@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1452563002 Cr-Commit-Position: refs/heads/master@{#32003}
-
- 02 Nov, 2015 2 commits
-
-
bmeurer authored
This adds some initial support for keyed element access to fast, non-holey JSArray objects. Also renames PropertyAccessInfoFactory to AccessInfoFactory and PropertyAccessMode to AccessMode. R=jarin@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1418213010 Cr-Commit-Position: refs/heads/master@{#31717}
-
bmeurer authored
Return undefined for missing properties (or throw an exception in strong mode). Also do a bit of code cleanup. R=jarin@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1427913003 Cr-Commit-Position: refs/heads/master@{#31700}
-
- 30 Oct, 2015 2 commits
-
-
bmeurer authored
This introduces an AllocateMutableHeapNumberStub for the boxed double field case, where we need to allocate a box in case of a transitioning store first. We cannot use our inline allocations for this currently, because mutable HeapNumber objects have certain alignment constraints, and I don't want to mess up Allocate/AllocateInNewSpace eagerly. Also refactor the PropertyAccessInfoFactory slightly to split the long methods into simpler parts. R=jarin@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1419173007 Cr-Commit-Position: refs/heads/master@{#31695}
-
bmeurer authored
Also changed the way that transitioning stores are represented in a PropertyAccessInfo: There's no dedicated kind, but DataFields have an optional transition map. R=jarin@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1416973014 Cr-Commit-Position: refs/heads/master@{#31692}
-