- 15 Mar, 2017 4 commits
-
-
Toon Verwaest authored
BUG=v8:5561 Change-Id: I425ad7e670b8e9c701ff284ab1be3638a975a6d3 Reviewed-on: https://chromium-review.googlesource.com/455832 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43836}
-
Marja Hölttä authored
BUG=v8:5294 Change-Id: I6214c50c7d1344210a80763b066e5ec56df1265a Reviewed-on: https://chromium-review.googlesource.com/453460 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#43820}
-
Toon Verwaest authored
BUG= Change-Id: I1fd0ae3dcb0e644e9f2a56c242720b4def4bb579 Reviewed-on: https://chromium-review.googlesource.com/454836 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43818}
-
Toon Verwaest authored
BUG= Change-Id: Ic63c63a312c6282814c14176d982b8c825ba6dc4 Reviewed-on: https://chromium-review.googlesource.com/454756 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43816}
-
- 14 Mar, 2017 9 commits
-
-
franzih authored
Revert of Collect type profile for DevTools. (patchset #40 id:750001 of https://codereview.chromium.org/2707873002/ ) Reason for revert: gcc bot is now flaky https://build.chromium.org/p/client.v8/builders/V8%20Linux%20gcc%204.8/builds/11863 Original issue's description: > Collect type profile for DevTools > > Collect type information for JavaScript variables and display it > in Chrome DevTools. > Design Doc: https://docs.google.com/a/google.com/document/d/1O1uepXZXBI6IwiawTrYC3ohhiNgzkyTdjn3R8ysbYgk/edit?usp=sharing > > When debugging JavaScript, it’s helpful to know the type of > a variable, parameter, and return values. JavaScript is > dynamically typed, and for complex > source code it’s often hard to infer types. With type profiling, we > can provide type information to JavaScript developers. > > This CL is a proof of concept. It collects type profile for > assignments and simply prints the types to stdout. > > The output looks something like this: > > #my_var1 > #Object > #number > #string > #number > #undefined > #string > #Object > #Object > > > We use an extra slot in the feedback vector of assignments to > carry the list of types for that assignment. The extra slot is > only added when the flag --type-profile is given. > > > Missing work: > * Collect data for parameters and return values (currently only assignments). > * Remove duplicates from the list of collected types and use a common base class. > * Add line numbers or source position instead of the variable name. > > > > BUG=v8:5935 > > Review-Url: https://codereview.chromium.org/2707873002 > Cr-Original-Commit-Position: refs/heads/master@{#43791} > Committed: https://chromium.googlesource.com/v8/v8/+/0332bebde99d0f9a5a8326382f5f37cc26224ae0 > Review-Url: https://codereview.chromium.org/2707873002 > Cr-Commit-Position: refs/heads/master@{#43804} > Committed: https://chromium.googlesource.com/v8/v8/+/6cf880f4b84c533d4bb139d33c1369e309d1c579 TBR=yangguo@chromium.org,mvstanton@chromium.org,rmcilroy@chromium.org,mstarzinger@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5935 Review-Url: https://codereview.chromium.org/2754573002 Cr-Commit-Position: refs/heads/master@{#43805}
-
franzih authored
Collect type information for JavaScript variables and display it in Chrome DevTools. Design Doc: https://docs.google.com/a/google.com/document/d/1O1uepXZXBI6IwiawTrYC3ohhiNgzkyTdjn3R8ysbYgk/edit?usp=sharing When debugging JavaScript, it’s helpful to know the type of a variable, parameter, and return values. JavaScript is dynamically typed, and for complex source code it’s often hard to infer types. With type profiling, we can provide type information to JavaScript developers. This CL is a proof of concept. It collects type profile for assignments and simply prints the types to stdout. The output looks something like this: #my_var1 #Object #number #string #number #undefined #string #Object #Object We use an extra slot in the feedback vector of assignments to carry the list of types for that assignment. The extra slot is only added when the flag --type-profile is given. Missing work: * Collect data for parameters and return values (currently only assignments). * Remove duplicates from the list of collected types and use a common base class. * Add line numbers or source position instead of the variable name. BUG=v8:5935 Review-Url: https://codereview.chromium.org/2707873002 Cr-Original-Commit-Position: refs/heads/master@{#43791} Committed: https://chromium.googlesource.com/v8/v8/+/0332bebde99d0f9a5a8326382f5f37cc26224ae0 Review-Url: https://codereview.chromium.org/2707873002 Cr-Commit-Position: refs/heads/master@{#43804}
-
jkummerow authored
Avoiding runtime call overhead. BUG=v8:5269 Review-Url: https://codereview.chromium.org/2717203002 Cr-Commit-Position: refs/heads/master@{#43799}
-
machenbach authored
Revert of Collect type profile for DevTools. (patchset #39 id:730001 of https://codereview.chromium.org/2707873002/ ) Reason for revert: gcc bot has problems with this: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20gcc%204.8/builds/11858 Original issue's description: > Collect type profile for DevTools > > Collect type information for JavaScript variables and display it > in Chrome DevTools. > Design Doc: https://docs.google.com/a/google.com/document/d/1O1uepXZXBI6IwiawTrYC3ohhiNgzkyTdjn3R8ysbYgk/edit?usp=sharing > > When debugging JavaScript, it’s helpful to know the type of > a variable, parameter, and return values. JavaScript is > dynamically typed, and for complex > source code it’s often hard to infer types. With type profiling, we > can provide type information to JavaScript developers. > > This CL is a proof of concept. It collects type profile for > assignments and simply prints the types to stdout. > > The output looks something like this: > > #my_var1 > #Object > #number > #string > #number > #undefined > #string > #Object > #Object > > > We use an extra slot in the feedback vector of assignments to > carry the list of types for that assignment. The extra slot is > only added when the flag --type-profile is given. > > > Missing work: > * Collect data for parameters and return values (currently only assignments). > * Remove duplicates from the list of collected types and use a common base class. > * Add line numbers or source position instead of the variable name. > > > > BUG=v8:5935 > > Review-Url: https://codereview.chromium.org/2707873002 > Cr-Commit-Position: refs/heads/master@{#43791} > Committed: https://chromium.googlesource.com/v8/v8/+/0332bebde99d0f9a5a8326382f5f37cc26224ae0 TBR=yangguo@chromium.org,mvstanton@chromium.org,rmcilroy@chromium.org,mstarzinger@chromium.org,franzih@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5935 Review-Url: https://codereview.chromium.org/2749673003 Cr-Commit-Position: refs/heads/master@{#43798}
-
franzih authored
Collect type information for JavaScript variables and display it in Chrome DevTools. Design Doc: https://docs.google.com/a/google.com/document/d/1O1uepXZXBI6IwiawTrYC3ohhiNgzkyTdjn3R8ysbYgk/edit?usp=sharing When debugging JavaScript, it’s helpful to know the type of a variable, parameter, and return values. JavaScript is dynamically typed, and for complex source code it’s often hard to infer types. With type profiling, we can provide type information to JavaScript developers. This CL is a proof of concept. It collects type profile for assignments and simply prints the types to stdout. The output looks something like this: #my_var1 #Object #number #string #number #undefined #string #Object #Object We use an extra slot in the feedback vector of assignments to carry the list of types for that assignment. The extra slot is only added when the flag --type-profile is given. Missing work: * Collect data for parameters and return values (currently only assignments). * Remove duplicates from the list of collected types and use a common base class. * Add line numbers or source position instead of the variable name. BUG=v8:5935 Review-Url: https://codereview.chromium.org/2707873002 Cr-Commit-Position: refs/heads/master@{#43791}
-
Toon Verwaest authored
BUG= Change-Id: I62c570ee929b8fbbba99acabd2d149dde99887e5 Reviewed-on: https://chromium-review.googlesource.com/454041Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43788}
-
Toon Verwaest authored
BUG= Change-Id: Ib7d6f1c8cc20f4170607d4f595756a534e3eceb8 Reviewed-on: https://chromium-review.googlesource.com/452382 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43770}
-
Toon Verwaest authored
This doesn't support "lookup after interceptor", but that should be unnecessary by now since we have non-masking interceptors. BUG= Change-Id: I8650a47ab2ce6fa314de25d0c4775b5c165df179 Reviewed-on: https://chromium-review.googlesource.com/453376Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#43766}
-
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}
-
- 13 Mar, 2017 1 commit
-
-
bmeurer authored
These operations don't need the context, so no need to pass the context to them. Also avoids the loading of context in the interpreter bytecode handlers for StrictEqual and Typeof. BUG=v8:5268,v8:5269 R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2744173002 Cr-Commit-Position: refs/heads/master@{#43733}
-
- 09 Mar, 2017 1 commit
-
-
Igor Sheludko authored
BUG=v8:5495 Change-Id: I731ddaa34169f6f57d3719e6170bfe00e6d66241 Reviewed-on: https://chromium-review.googlesource.com/451638 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#43693}
-
- 07 Mar, 2017 2 commits
-
-
jgruber authored
Polymorphic IC feedback can contain up to four (map, handler) pairs. HandlePolymorphicCase already unrolled checks for the first two pairs; these are guaranteed to exist and can omit bound checks. This CL unrolls checks against the final two pairs as well. BUG=v8:5917 Review-Url: https://codereview.chromium.org/2728293005 Cr-Commit-Position: refs/heads/master@{#43650}
-
jgruber authored
This inlines common LoadIC cases into the LdaNamedProperty bytecode handler. Smi handlers resulting in constant/field loads for monomorphic ICs omit frame construction. The same counts for the polymorphic case as long as the target handler is in the first two vector slots. Other cases (megamorphic, uninitialized) call the new LoadIC_Noninlined stub. Local benchmarks show up to 6% improvement on Sunspider with --future. BUG=v8:5917 Review-Url: https://codereview.chromium.org/2733563002 Cr-Commit-Position: refs/heads/master@{#43630}
-
- 03 Mar, 2017 2 commits
-
-
Toon Verwaest authored
BUG=v8:6039 Change-Id: I69bae9ed49d91b0bc67a8e66e469d57ea7799cca Reviewed-on: https://chromium-review.googlesource.com/449793Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#43584}
-
jgruber authored
This should improve generated code. It is also one step in preparation for LoadIC inlining - explicitly deferred blocks are currently necessary to help the scheduler omit frame construction. BUG=v8:5917 Review-Url: https://codereview.chromium.org/2732613002 Cr-Commit-Position: refs/heads/master@{#43577}
-
- 02 Mar, 2017 2 commits
-
-
Toon Verwaest authored
BUG= Change-Id: I3d85ad84f5069f7fe349dcd82092696d0360cc94 Reviewed-on: https://chromium-review.googlesource.com/448225Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#43559}
-
Igor Sheludko authored
... instead of inlining the dispatchers' code. This should reduce the size of the generated builtins code. BUG= Change-Id: Ia3f68ea8b398f049bad87f6ce93c818f0af4674f Reviewed-on: https://chromium-review.googlesource.com/447938Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43542}
-
- 01 Mar, 2017 2 commits
-
-
Toon Verwaest authored
BUG= Change-Id: I56b865a5ae4283876058e2c2edf73a296608fc97 Reviewed-on: https://chromium-review.googlesource.com/448219Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#43517}
-
Toon Verwaest authored
This generally shouldn't hit since prototypes are supposed to be fast; but it makes it more uniform anyway. This CL also drops the limitation not supporting keyed loads with normal access. There's no point in returning the slow stub there. BUG= Change-Id: I5578269f6c64762610e885740a692d1e91aa6aa2 Reviewed-on: https://chromium-review.googlesource.com/447698 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43508}
-
- 28 Feb, 2017 3 commits
-
-
Toon Verwaest authored
This is mostly prework to also support prototype chain checks using data handlers BUG= Change-Id: I70aac1e86e45c78dfdc9f02d06b7e821494a4c9c Reviewed-on: https://chromium-review.googlesource.com/447679 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43495}
-
Marja Hölttä authored
The x64 side is included in https://chromium-review.googlesource.com/c/444226/ BUG=v8:5294 Change-Id: Ie255604c5e38c72e3c2b76e1ca3557a5fde108ee Reviewed-on: https://chromium-review.googlesource.com/446394Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#43481}
-
jkummerow authored
Avoiding runtime call overhead. There's a fast path for Function.prototype loads, which are very common. BUG=v8:5269 Review-Url: https://codereview.chromium.org/2711353002 Cr-Commit-Position: refs/heads/master@{#43474}
-
- 27 Feb, 2017 1 commit
-
-
Igor Sheludko authored
BUG=chromium:688734 Change-Id: If5dd370971cb02c4463fa20a489d0fa60b0423c4 Reviewed-on: https://chromium-review.googlesource.com/446845Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43451}
-
- 24 Feb, 2017 1 commit
-
-
Igor Sheludko authored
This is a preliminary cleanup necessary for the actual fix of the associated issue. BUG=chromium:688734 Change-Id: Iecd39ed4cef34c6cc5d9652c5569e048f0db46af Reviewed-on: https://chromium-review.googlesource.com/446341 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#43410}
-
- 23 Feb, 2017 1 commit
-
-
Marja Hölttä authored
BUG=v8:5294 Change-Id: If45f25aae8de526027b7851cb4efe0ccf4a7c4b1 Reviewed-on: https://chromium-review.googlesource.com/444226 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43388}
-
- 21 Feb, 2017 1 commit
-
-
Leszek Swirski authored
Use an opaque format for the frame type marker on the stack, where the marker is simply shifted left by 1 instead of being a Smi. This allows us to generate simpler code for frame initialisation, as we can push a smaller value, decreasing the prologue by 4 bytes and one instruction. Drive-by: Use the same format for JsFrameMarker. Change-Id: I812dde9b37869fe20de4148a665d06cf23ce7372 Reviewed-on: https://chromium-review.googlesource.com/443426Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Daniel Clifford <danno@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#43347}
-
- 20 Feb, 2017 2 commits
-
-
ishell authored
BUG= Review-Url: https://codereview.chromium.org/2710513003 Cr-Commit-Position: refs/heads/master@{#43329}
-
Toon Verwaest authored
BUG= Change-Id: Ib7cc2a04a7c8e314e1f4a8720eef569a6a4a3b18 Reviewed-on: https://chromium-review.googlesource.com/444406Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#43307}
-
- 17 Feb, 2017 2 commits
-
-
Igor Sheludko authored
BUG= Change-Id: Ifc441739ef730a0b2278be0b662413c223631a72 Reviewed-on: https://chromium-review.googlesource.com/444190Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43288}
-
Igor Sheludko authored
... which is used for initializing properties with non compile time values. Currently we use StoreOwnIC only for storing properties that already exist in the boilerplate therefore we can reuse StoreIC dispatcher. The proper StoreOwnIC dispatcher will be implemented in a separate CL. BUG=v8:5495, v8:4414 Change-Id: I9c33fdb8499ec5be2c7fce1ecb6ce7aa285e5844 Reviewed-on: https://chromium-review.googlesource.com/443588Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43285}
-
- 16 Feb, 2017 1 commit
-
-
jkummerow authored
Without relying on the stub cache. Review-Url: https://codereview.chromium.org/2696993002 Cr-Commit-Position: refs/heads/master@{#43261}
-
- 15 Feb, 2017 1 commit
-
-
Igor Sheludko authored
... and don't clear ICs during GC. The IC clearing used to prevent memory leaks but it's not necessary anymore because all the handlers that need to embed objects already use weak cells. This CL unblocks inlining of IC dispatchers into bytecode handlers. BUG=v8:5917 Change-Id: I229b9ba8dba44f431dfbe8ac5370d855e3e84dd6 Reviewed-on: https://chromium-review.googlesource.com/442127 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#43209}
-
- 14 Feb, 2017 1 commit
-
-
ishell@chromium.org authored
... and revert "[runtime] Mark maps created as a result of field type or representation generalization as migration targets." because it regresses performance of too many map checks in optimized code. BUG=v8:5444, chromium:680995 Change-Id: I84038d75425df3709a81e5fdcc6c0db32939060d Reviewed-on: https://chromium-review.googlesource.com/442125Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43188}
-
- 13 Feb, 2017 1 commit
-
-
verwaest authored
Unlike the old manually written LoadNonexistent stub, the data handler properly supports keyed loads out of the box. Simply remove the condition that disables it. BUG= Review-Url: https://codereview.chromium.org/2693913002 Cr-Commit-Position: refs/heads/master@{#43165}
-
- 10 Feb, 2017 2 commits
-
-
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}
-
jkummerow authored
And use it to avoid runtime calls when there are too many properties for linear searching. The threshold of 32 was chosen by experimentation. Review-Url: https://codereview.chromium.org/2680973002 Cr-Commit-Position: refs/heads/master@{#43078}
-