Commit Graph

31 Commits

Author SHA1 Message Date
Frank Tang
162c5b0ff9 [Intl] Prototype Intl.DisplayNames
Design Doc https://shorturl.at/emEHW
I2I: http://shorturl.at/pKRUV

Bug: v8:8703
Change-Id: I9573b2ee6f1dce4dc594aa1df2753095f45af15e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1848683
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65021}
2019-11-18 21:48:22 +00:00
Seth Brenith
61815a22bd Use consistent capitalization rules for instance types
In preparation for allowing Torque to generate the list of instance
types, I'd like to make the rules a bit more consistent for how instance
types are spelled. This CL is my proposal for a system where every
non-String instance type name is exactly equal to calling
CapifyStringWithUnderscores on the corresponding class name and
appending "_TYPE".

This change is almost all find&replace; the only manual changes are in:
- src/objects/instance-type.h
- src/torque/utils.cc
- tools/gen-postmortem-metadata.py

This change is in response to the review comment
https://chromium-review.googlesource.com/c/v8/v8/+/1757094/25/src/builtins/base.tq#132

Change-Id: Ife3857292669f54931708e934398b2684e60bea5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1814888
Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Reviewed-by: Frank Tang <ftang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#64199}
2019-10-09 17:44:42 +00:00
Leszek Swirski
489e7deb7e [object] Remove MutableHeapNumber
Since the mutability of HeapNumbers is determined by their owning
object's descriptor array, we can remove the MutableHeapNumber type
entirely, at the cost of a few fewer DCHECKs and a couple of TODOs
to use the descriptor array information.

This is a necessary step towards a follow-up which allows in-place
Double -> Tagged transitions

Design doc: https://docs.google.com/document/d/1VeKIskAakxQFnUBNkhBmVswgR7Vk6T1kAyKRLhqerb4/

Bug: v8:9606
Change-Id: I13209f9c86f1f204088f6fd80089e17d956b4a50
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1743972
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63294}
2019-08-20 19:04:04 +00:00
Mathias Bynens
e428dfd773 [objects] Rename JSValue to JSPrimitiveWrapper
We currently use the class name “JSValue” for JSObjects that wrap
primitive values. This name is a common source of confusion. This patch
switches to a name that’s more clear.

In addition to manual tweaks, the patch applies the following mechanical
global replacements:

before                          | after
--------------------------------|--------------------------------------
if_valueisnotvalue              | if_valueisnotwrapper
if_valueisvalue                 | if_valueiswrapper
js_value                        | js_primitive_wrapper
JS_VALUE_TYPE                   | JS_PRIMITIVE_WRAPPER_TYPE
JSPrimitiveWrapperType          | JSPrimitiveWrapper type
jsvalue                         | js_primitive_wrapper
JSValue                         | JSPrimitiveWrapper
_GENERATED_JSVALUE_FIELDS       | _GENERATED_JSPRIMITIVE_WRAPPER_FIELDS

Change-Id: I9d9edea784eab6067b013e1f781e4db2070f807c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1672942
Reviewed-by: Tamer Tas <tmrts@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Mathias Bynens <mathias@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62337}
2019-06-24 13:54:38 +00:00
Camillo Bruni
9a149afc28 [heap-object-stats] Account PreparseData and scope_data together
Drive-by-fix:
- Add several iterator instance types to user objects
- Add JSProxy instance type to user objects
- Rename *PRE_PARSED_SCOPE* to *PREPARSE_DATA*

Change-Id: Ia1304871c91bb4e7e46ae0aef6084ded985b9a9f
Reviewed-on: https://chromium-review.googlesource.com/c/1405040
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58745}
2019-01-11 13:05:38 +00:00
Frank Tang
25b1f7e11a [Intl] Add object tracking for INTL_JS_*
Bug: v8:7481
Change-Id: I2587de31faa4dee3ae6f3d5a1872161aae48d1d3
Reviewed-on: https://chromium-review.googlesource.com/c/1395321
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58647}
2019-01-08 20:01:53 +00:00
Benoît Lizé
aab50a3124 Rename ShortExternalString to UncachedExternalString.
"short" external strings are not short, they mean that the external data
pointer is not cached. Rename the various classes and objects to align
with the actual meaning.

Bug: chromium:877044
Change-Id: Ie3d5baa9ad352ac6ca89f5ba1d066760825e4beb
Reviewed-on: https://chromium-review.googlesource.com/1185192
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55432}
2018-08-27 16:54:03 +00:00
Camillo Bruni
a7b368ee24 Heap Object Stats: Track external string resources
This CL adds support for the following virtual string types:
 - SCRIPT_SOURCE_EXTERNAL_ONE_BYTE_TYPE
 - SCRIPT_SOURCE_EXTERNAL_TWO_BYTE_TYPE
 - SCRIPT_SOURCE_NON_EXTERNAL_ONE_BYTE_TYPE
 - SCRIPT_SOURCE_NON_EXTERNAL_TWO_BYTE_TYPE
 - STRING_EXTERNAL_RESOURCE_ONE_BYTE_TYPE
 - STRING_EXTERNAL_RESOURCE_TWO_BYTE_TYPE

Change-Id: I8d278ede356bae4ba63c1dae45a347f1261c75cc
Reviewed-on: https://chromium-review.googlesource.com/1174392
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55230}
2018-08-20 18:21:40 +00:00
Marja Hölttä
8b63f353e6 [in-place weak refs] Remove WeakCell
BUG=v8:7308

Change-Id: I310d9453be8b90a82856c0d394442aad5527a3ae
Reviewed-on: https://chromium-review.googlesource.com/1169167
Commit-Queue: Marja Hölttä <marja@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55105}
2018-08-14 08:05:05 +00:00
Creddy
bb0975878f [runtime][parser] Use ArrayBoilerplateDescription all the way
* Rename BoilerplateDescription to ObjectBoilerplateDescription
* Add literal_type flag to ObjectBoilerplateDescription,
  which is stored as zeroth element of Fixed array
* Create ArrayBoilerplateDescription with elements_kind and
  constant_elements field
* Replace CompileTimeValue and ConstantElementPair with
  ArrayBoilerplateDescription
* Kill ConstantElementPair and CompileTimeValue

Change-Id: Icb42dcfd575a27e2b64ffd5e2e61f9d703d5e986
Bug: v8:7787, chromium:818642
Reviewed-on: https://chromium-review.googlesource.com/1122411
Commit-Queue: Chandan Reddy <chandanreddy@google.com>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54272}
2018-07-05 19:31:03 +00:00
Leszek Swirski
a0b2ccea6b [object-stats] Track RelocInfo and SourcePositionTable
Change-Id: I98c03061600c1a58e1fde5936c78a877508c2fb4
Reviewed-on: https://chromium-review.googlesource.com/1101695
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53750}
2018-06-15 09:19:35 +00:00
Erik Luo
ce06603212 [debug] use flag to decide whether CallHandlerInfo has side effect
Makes CallHandlerInfo its own instance type, with an additional
map to distinguish side-effect-free handlers. In a followup, we
can expose an API flag to set the map.

This CL does not support whitelisting calls to ObjectTemplates
that use SetCallAsFunctionHandler().

Bug: v8:7515
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Ie32fe144046a9fae3e3b1ea5602b0da3db8a5616
Reviewed-on: https://chromium-review.googlesource.com/965741
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Erik Luo <luoe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52328}
2018-04-03 17:14:26 +00:00
Camillo Bruni
bca7242580 [tools] Improve HeapStats category percentages
- Provide sorted instance type contribution per GC
- Visualize percentages per InstanceType based on the selected GC
- Visualize percentags per category
- Use some more arrow functions
- Introduce helper.js file

Bug: v8:7266
Change-Id: I26099cc64d9545b2de9e4574da2faf52d54ad198
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/949222
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51743}
2018-03-05 18:28:51 +00:00
Camillo Bruni
767c954972 [tools] Improve HeapStats
- Categorize more instance types
- Fix GC selection dropdown labels
- Show GC times in seconds
- Collapse file reader after loading

Bug: v8:7266
Change-Id: If967ebdb887105e808cfc8fb3bc92f9da5c91fd2
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/945908
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51690}
2018-03-02 11:46:01 +00:00
Leszek Swirski
184ccebedb [heap-stats] Log on- and off-heap script sources
Special case script logging to also log the source of the script, even
if that source is off-heap in an external string.

Bug: v8:7266
Change-Id: I0d35f94f7b27d0d793d1a1a3fb8d3280960b253d
Reviewed-on: https://chromium-review.googlesource.com/899344
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51076}
2018-02-02 16:14:40 +00:00
Leszek Swirski
02cf73ccbf [object-stats] Record feedback vector slots separately
Record the various types of feedback vector slot separately, to estimate
the relative impact of e.g. load ICs vs call ICs. Also, log the unused
(i.e. uninitialized or premonomorphic) ones separately.

Bug: v8:7266
Change-Id: Ie035cf48969e39f7156dfe523fd9218749b95cfe
Reviewed-on: https://chromium-review.googlesource.com/897813
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51067}
2018-02-02 14:24:24 +00:00
Leszek Swirski
5ccf209b0f [heap-stats] Log uncompiled JSFunctions
Change-Id: I9c64f70585592bb46e993041a275b989ea71489d
Reviewed-on: https://chromium-review.googlesource.com/897529
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51041}
2018-02-01 16:19:18 +00:00
Michael Lippautz
768c41c879 [object-stats] Better accounting
- Add WASM types
- Account for FeedbackMetadata
- Account entries in FunctionTemplateInfo

Bug: v8:7266
Change-Id: I527792768bb11a3540a34e7c00db311609a40b01
Reviewed-on: https://chromium-review.googlesource.com/894524
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50977}
2018-01-31 09:06:31 +00:00
Michael Lippautz
5a336a0f92 [object-stats] Differentiate between regular and uncompiled SFI
Bug: v8:7266
Change-Id: I2193d762d0f59b061be79bb3bbd280520728185a
Reviewed-on: https://chromium-review.googlesource.com/888622
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50893}
2018-01-26 12:51:28 +00:00
Michael Lippautz
d6daf8b0af [object-stats] Record details for BytecodeArray and Code
FixedArrays hanging off recursively of the constant pool without any
real objects in between can be considered as meta data. They are shared
with optimized code (embedder pointers).

Bug: v8:7266
Change-Id: I4006675e17e8eea3bdc8565254d80e2ffece0ad0
Reviewed-on: https://chromium-review.googlesource.com/883361
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50837}
2018-01-24 14:32:22 +00:00
Michael Lippautz
64bf1c4fec [object-stats] Record SFI list on Script
Tbr: ulan@chromium.org
Bug: v8:7266
Change-Id: I3bafffafc662856295fa34de2c77e876e3b2a58e
Reviewed-on: https://chromium-review.googlesource.com/881172
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50819}
2018-01-23 22:25:05 +00:00
Michael Lippautz
c1c7441180 [object-stats] Fix duplicate entries
bug: v8:7266
Change-Id: I8241301c9652e70c88b35ebd057af107a1c05687
Reviewed-on: https://chromium-review.googlesource.com/880622
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50788}
2018-01-23 09:32:05 +00:00
Michael Lippautz
cddf3e3f07 [object-stats] Add contexts and scope info
Bug: v8:7266
Change-Id: Ibc8df4219ea990c3e1bf7a586356689080ab9eb9
Reviewed-on: https://chromium-review.googlesource.com/879182
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50773}
2018-01-22 18:54:07 +00:00
Michael Lippautz
021f02b579 [object-stats] Add virtual types
- JSObject: Record elements and properties
- JSCollecton: Record table
- Record global caches

Bug: v8:7266
Change-Id: I16b2eb511bed3dc0fb6f7af0e7037c6d42f03885
Reviewed-on: https://chromium-review.googlesource.com/878326
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50766}
2018-01-22 15:37:59 +00:00
Michael Lippautz
91618802bf [object-stats] Redo recording of non-existing instance types
- Base recording just on the concept of virtual instance types.
- Re-add dropped types incrementally.

Bug: v8:7266
Change-Id: Ic8209ce8c6067e24536a0c62404e1160f86377db
Reviewed-on: https://chromium-review.googlesource.com/873646
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50714}
2018-01-19 12:20:45 +00:00
Camillo Bruni
cf500ac109 [object-stats] Distinguish FeedbackVector entries
Record seperate virtual instance types for entries in FeedbackVectors:
- FEEDBACK_VECTOR_ENTRY_TYPE

 Bug: v8:7266

Change-Id: Ibea0615ecd23099e0107505e5d33cf194aade7c0
Reviewed-on: https://chromium-review.googlesource.com/866878
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50678}
2018-01-18 13:00:25 +00:00
Michael Lippautz
fa8c68348e [object-stats] Cateogrize a few more instance types
No-try: true
Bug: v8:7266
Change-Id: I3e0d95d7c59577941e1154e21949b2714f56f652
Reviewed-on: https://chromium-review.googlesource.com/868292
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50629}
2018-01-16 20:29:58 +00:00
Michael Lippautz
96de054c96 [object-stats] Fix heap visualizer
R: hpayer@chromium.org
No-try: true
Bug: v8:7266
Change-Id: Icc8f254d4f4e7c220cc322b3c98749da5e5ea3e6
Reviewed-on: https://chromium-review.googlesource.com/866831
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50594}
2018-01-15 20:30:07 +00:00
Camillo Bruni
7b9ea02a70 [object-stats] Support boilerplate objects and arrays
Record seperate virtual instance types for boilerplates and their properties
and elements. This CL adds:
- BOILERPLATE_PROPERTY_ARRAY_TYPE
- BOILERPLATE_NAME_DICTIONARY_TYPE
- BOILERPLATE_ELEMENTS_TYPE


Bug: v8:7266
Change-Id: I2e6643d4bf067aa52eb1950a696b6535b020b097
Reviewed-on: https://chromium-review.googlesource.com/867059
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50592}
2018-01-15 18:40:46 +00:00
Michael Lippautz
85c6c8ce46 [object-stats] Enable ungrouping in visualizer
No-try: true
Bug: v8:7266
Change-Id: I981ac5b4be6117bcc46383d033d639cc3b30b617
Reviewed-on: https://chromium-review.googlesource.com/867371
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50591}
2018-01-15 18:15:26 +00:00
Michael Lippautz
b80a698d72 [tools] V8 heap stats visualizer
Visualizes --trace-gc-object-stats output.

No-try: true
Bug: v8:7266
Change-Id: I5beb15d63e645484f07fe5f2341105c4cfe0b550
Reviewed-on: https://chromium-review.googlesource.com/860580
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50587}
2018-01-15 15:27:17 +00:00