- 22 May, 2017 1 commit
-
-
Wiktor Garbacz authored
Change-Id: I20ed35a7fb5104a9cc66bb54fa8966589c43d7f9 Reviewed-on: https://chromium-review.googlesource.com/507287Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Daniel Clifford <danno@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45458}
-
- 17 May, 2017 1 commit
-
-
Igor Sheludko authored
IC system does its best to properly mark stable transition source maps as unstable (see https://chromium-review.googlesource.com/483442) however an already recorded map can be deprecated later and the optimizing compiler may try to generate an elements kind transition from the updated version of deprecated map which can "become" stable again. Bug: chromium:723455 Change-Id: Ic0c392f153587c3cd7c7623a3a6ea85ec72ad5bd Reviewed-on: https://chromium-review.googlesource.com/507887 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#45384}
-
- 15 May, 2017 1 commit
-
-
bmeurer authored
For a polymorphic access to o.x we would only merge it into a single PropertyAccessInfo so far, if x is at the same offset in all maps and the property index of x (in the descriptor arrays) is the same. But that doesn't matter for code generation and blocks optimizations even. BUG=v8:6278,v8:6344,v8:6396 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2883883002 Cr-Commit-Position: refs/heads/master@{#45294}
-
- 09 May, 2017 1 commit
-
-
danno authored
This CL introduces a new type, MapHandles, which is a STL vector of Handle<Map>. It is now used everywhere where lists of Handle<Maps> are required, replacing usages of V8's internal List type. Also-By: franzih@chromium.org BUG=v8:6333,v8:6325 LOG=N Review-Url: https://codereview.chromium.org/2809923002 Cr-Commit-Position: refs/heads/master@{#45211}
-
- 28 Apr, 2017 1 commit
-
-
bmeurer authored
Revert of [turbofan] General consolidation of element access. (patchset #1 id:1 of https://codereview.chromium.org/2836913004/ ) Reason for revert: Breaks load:tools:drive story Original issue's description: > [turbofan] General consolidation of element access. > > Avoid TransitionElementsKind when storing to objects which only differ > in holeyness of their elements kind. Instead go for polymorphic > CheckMaps, which can often by optimized and avoid the mutation of the > array map. > > This generalizes the approach https://codereview.chromium.org/2836943003 > which covered only element loads. > > R=yangguo@chromium.org > BUG=v8:5267 > > Review-Url: https://codereview.chromium.org/2836913004 > Cr-Commit-Position: refs/heads/master@{#44828} > Committed: https://chromium.googlesource.com/v8/v8/+/ed573cee5c1d1e42158829dc0b92fb697234e121 TBR=yangguo@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=v8:5267,chromium:715936 Review-Url: https://codereview.chromium.org/2852623002 Cr-Commit-Position: refs/heads/master@{#44958}
-
- 25 Apr, 2017 2 commits
-
-
bmeurer authored
For polymorphic loads that refer to the same underlying field, but differ in either representation or field maps, try harder to merge them into a simple field load by going to Tagged representation or throwing away the field maps (this is essentially what Crankshaft is doing). R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2836893002 Cr-Commit-Position: refs/heads/master@{#44831}
-
bmeurer authored
Avoid TransitionElementsKind when storing to objects which only differ in holeyness of their elements kind. Instead go for polymorphic CheckMaps, which can often by optimized and avoid the mutation of the array map. This generalizes the approach https://codereview.chromium.org/2836943003 which covered only element loads. R=yangguo@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2836913004 Cr-Commit-Position: refs/heads/master@{#44828}
-
- 24 Apr, 2017 1 commit
-
-
bmeurer authored
This changes behavior of TurboFan to match the behavior of Crankshaft when it comes to polymorphic loads of similar elements kind (i.e. all tagged or all double), where we should use the "worst case" code without a transition. This is often much faster than transitioning the elements to the worst case first, trading a TransitionElementsKind for a CheckMaps and avoiding mutation of the array. This is beneficial for various crypto benchmarks, which don't need to pay the cost for TransitionElementsKind now. R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2836943003 Cr-Commit-Position: refs/heads/master@{#44815}
-
- 21 Apr, 2017 1 commit
-
-
Igor Sheludko authored
Ensure source map is not stable if elements kind transitions are expected. BUG=chromium:700733 Change-Id: Ie937e7064127250b1100109986c3e9b411fae1d6 Reviewed-on: https://chromium-review.googlesource.com/483442Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#44780}
-
- 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}
-
- 08 Apr, 2017 1 commit
-
-
bmeurer authored
TurboFan didn't support transitioning stores that also need to grow the properties backing store so far. This CL adds support for re-allocating the properties backing store in-place, so these stores can participate properly in various optimizations like escape analysis and allocation folding. R=ishell@chromium.org BUG=v8:5267,chromium:708339 Review-Url: https://codereview.chromium.org/2778133003 Cr-Original-Commit-Position: refs/heads/master@{#44183} Committed: https://chromium.googlesource.com/v8/v8/+/88a7061a53ad200121f7ee2b2bdcc05d793de806 Review-Url: https://codereview.chromium.org/2778133003 Cr-Commit-Position: refs/heads/master@{#44499}
-
- 07 Apr, 2017 1 commit
-
-
Adam Klein authored
This reverts commit 88a7061a (with one manually-resolved merge conflict). It caused a spike of GC crashes on Canary. TBR=bmeurer@chromium.org Bug: chromium:708339, v8:5267 Change-Id: I8a5683bbdfb61c95d81a2ee7cdb913f39e553093 Reviewed-on: https://chromium-review.googlesource.com/471928 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#44496}
-
- 28 Mar, 2017 1 commit
-
-
bmeurer authored
TurboFan didn't support transitioning stores that also need to grow the properties backing store so far. This CL adds support for re-allocating the properties backing store in-place, so these stores can participate properly in various optimizations like escape analysis and allocation folding. R=ishell@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2778133003 Cr-Commit-Position: refs/heads/master@{#44183}
-
- 14 Mar, 2017 1 commit
-
-
Jochen Eisinger authored
As the code isn't used, but would have to be ported from hand-written assembly to CodeStubAssembler anyways, I propose to remove it and restore it if we decide that we actually need it. R=vogelheim@chromium.org BUG= Change-Id: Iffd7fc6ec534b1dd7a9144da900424355c8a7a02 Reviewed-on: https://chromium-review.googlesource.com/453461 Commit-Queue: Jochen Eisinger <jochen@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#43763}
-
- 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}
-
- 10 Feb, 2017 1 commit
-
-
ishell authored
This CL includes runtime and IC parts of the tracking. It is controlled by compile-time flag FLAG_constant_field_tracking and currently disabled. Transition from kConst to kMutable still involves map deprecation. BUG=v8:5495 Review-Url: https://codereview.chromium.org/2598543003 Cr-Commit-Position: refs/heads/master@{#43081}
-
- 23 Jan, 2017 1 commit
-
-
bmeurer authored
Port the fast path for accessor inlining to cached property names from Crankshaft to TurboFan. This constant-folds accesses to document in a script. R=jochen@chromium.org BUG=v8:5548 Review-Url: https://codereview.chromium.org/2646363003 Cr-Commit-Position: refs/heads/master@{#42600}
-
- 20 Jan, 2017 1 commit
-
-
franzih authored
Allocate space in the backing store for computed property names. The property backing store was pre-allocated for the constant properties up to the first non-constant (computed name) property. To use lowering for storing data properties in literals with computed property names effectively, a fast store is needed, i.e., available space in the property backing store for properties with computed names. backing_store_size is the number of all properties (including computed names, but without __proto__) that is calculated in the ast and passed to the runtime function that allocates the property backing store. backing_store_size and constant_properties constitute a BoilerplateDescription. backing_store_size might be slightly too high because computed names can evaluate to the same name, but that should be a rare case so over-allocating is OK. If a property is __proto__, we don't store it as a regular property, because the map changes. Keep track of has_seen_proto in the parser to calculate the backing store size correctly. BUG=v8:5625 Review-Url: https://codereview.chromium.org/2632503003 Cr-Commit-Position: refs/heads/master@{#42576}
-
- 16 Jan, 2017 1 commit
-
-
bmeurer authored
BUG=chromium:679378 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2634953002 Cr-Commit-Position: refs/heads/master@{#42365}
-
- 13 Jan, 2017 1 commit
-
-
bmeurer authored
When we merge two NotFound access infos, we currently forgot to include all the maps into the final PropertyAccessInfo, which results in a deopt loop. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2625413003 Cr-Commit-Position: refs/heads/master@{#42332}
-
- 12 Jan, 2017 1 commit
-
-
ishell authored
This is a necessary cleanup before introducing PropertyConstness bit. BUG=v8:5495 Review-Url: https://codereview.chromium.org/2624903003 Cr-Commit-Position: refs/heads/master@{#42277}
-
- 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}
-
- 10 Jan, 2017 1 commit
-
-
jochen authored
R=verwaest@chromium.org,epertoso@chromium.org BUG= Review-Url: https://codereview.chromium.org/2620713003 Cr-Commit-Position: refs/heads/master@{#42180}
-
- 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}
-
- 10 Nov, 2016 1 commit
-
-
bmeurer authored
This cleans up a few Type related TODOs, i.e. removing the now useless kSmi and kHeapNumber members from TypeCache. R=yangguo@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2488183002 Cr-Commit-Position: refs/heads/master@{#40874}
-
- 09 Nov, 2016 1 commit
-
-
bmeurer authored
This adds a new NumberToUint8Clamped simplified operator that does the round ties to even + clamping necessary to store to Uint8ClampedArrays. BUG=v8:4470,v8:5267,v8:5615 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2489563004 Cr-Commit-Position: refs/heads/master@{#40861}
-
- 31 Oct, 2016 1 commit
-
-
epertoso authored
Similar to what crankshaft does, we introduce a mapcheck if necessary and a call to the CallApiCallbackStub. BUG= Review-Url: https://codereview.chromium.org/2458643002 Cr-Commit-Position: refs/heads/master@{#40664}
-
- 12 Oct, 2016 1 commit
-
-
bmeurer authored
We want to extend the use of this code dependency, so the name does no longer reflect the purpose. R=ishell@chromium.org Review-Url: https://codereview.chromium.org/2410293003 Cr-Commit-Position: refs/heads/master@{#40210}
-
- 22 Sep, 2016 1 commit
-
-
mvstanton authored
BUG= Review-Url: https://codereview.chromium.org/2355253002 Cr-Commit-Position: refs/heads/master@{#39621}
-
- 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}
-
- 11 Aug, 2016 1 commit
-
-
bmeurer authored
If the intersection of the types of nodes a and b is empty, then there's no way that a and b could ever refer to the same object, so we can use that information for alias analysis. Drive-by-fix: Improve use of types to enable typed alias analysis to become more effective. Also fix an ASAN issue uncovered by this CL. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2237433003 Cr-Commit-Position: refs/heads/master@{#38567}
-
- 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}
-
- 02 Aug, 2016 1 commit
-
-
bmeurer authored
This adds support for lowering keyed access to JSTypedArray objects to element loads and stores instead of IC calls. There's still a lot of room for improvement, but the improvements can be done incrementally later. We add a dedicated UnsafePointerAdd operator, which sits in the effect chain, and does the (GC invisible) computation of addresses that are potentially inside HeapObjects. Also there's now a dedicated Retain operator, which ensures that we retain a certain tagged value, which is necessary to ensure that we keep a JSArrayBuffer alive as long as we might still potentially access elements in its backing store. R=epertoso@chromium.org Review-Url: https://codereview.chromium.org/2203693002 Cr-Commit-Position: refs/heads/master@{#38235}
-
- 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}
-
- 14 Jun, 2016 1 commit
-
-
cbruni authored
Reland of place all remaining Oddball checks with new function (patchset #1 id:1 of https://codereview.chromium.org/2060213002/ ) Reason for revert: Cannot reproduce gc-stress failures locally. Original issue's description: > Revert of Replace all remaining Oddball checks with new function (patchset #10 id:180001 of https://codereview.chromium.org/2043183003/ ) > > Reason for revert: > failing tests > > Original issue's description: > > Replace all remaining Oddball checks with new function > > > > This CL removes the IsUndefined() and Co. methods from Object and HeapObject. > > The new method all take the isolate as parameter. > > > > BUG= > > > > Committed: https://crrev.com/ccefb3ae5fe967288d568013fb04e8761eafebc5 > > Cr-Commit-Position: refs/heads/master@{#36921} > > TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org,ahaas@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/33b8bc24a12fb062100c0be84456faeb0b9fa5d1 > Cr-Commit-Position: refs/heads/master@{#36923} TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org,ahaas@chromium.org BUG= Review-Url: https://codereview.chromium.org/2059173002 Cr-Commit-Position: refs/heads/master@{#36957}
-