- 19 Mar, 2018 2 commits
-
-
Marja Hölttä authored
For serializer changes, see goo.gl/Kh2eop Previous version: https://chromium-review.googlesource.com/955593 BUG=v8:7308 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I14c92874d04545eb6d04590bedb21dc402326401 Reviewed-on: https://chromium-review.googlesource.com/968245Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52027}
-
jgruber authored
This is a reland of f1b1ec70 Original change's description: > [builtins] Remove off-heap builtins from the snapshot > > This CL is the final major step towards shipping off-heap-safe builtins > embedded into the binary. > > Prior to snapshot serialization, we now: > * create the embedded blob containing off-heap instruction streams, > * use that to generate embedded.cc (containing embedded binary data), > * replace off-heap-safe builtins with trampolines, > * and serialize those into the final snapshot. > > The new RelocInfo::OFF_HEAP_TARGET kind is used to fix up trampoline > targets on deserialization. > > Bug: v8:6666 > Change-Id: Ib07aea9e3bd7ecdec42291c1388b3a7453ea96ce > Reviewed-on: https://chromium-review.googlesource.com/950775 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51960} TBR=yangguo@chromium.org,mstarzinger@chromium.org Cq-Include-Trybots: luci.v8.try:v8_mac64_dbg,v8_mac64_rel Bug: v8:6666 Change-Id: Id9954af3c8195754ff3658c4603858904fcf88c4 Reviewed-on: https://chromium-review.googlesource.com/964481 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#52006}
-
- 16 Mar, 2018 2 commits
-
-
Camillo Bruni authored
With this CL the name of an SFI is either stored directly on the SFI itself (for uncompiled ones) or on the related ScopeInfo if present. - Combine scope_info and name field on SFI into name_or_scope_info field - Change the name of a couple of SFI accessors: name => Name, has_shared_name => HasSharedName, set_name => SetName - Add Runtime::kGetFunctionName due to more complex SFI name accessing Bug: v8:7066 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Idcce158446c9447b92d9a15125d086952c6e0824 Reviewed-on: https://chromium-review.googlesource.com/964201 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52001}
-
Camillo Bruni authored
This CL ads a StartPosition and EndPosition accessors on SFI and ScopeInfo to facilitate future refactoring. In a future CL the start and end position are no longer stored directly on SFIs. This CL will temporarily increase memory since the position info is duplicated on the SFI and the ScopeInfo. Drive-by-fix: Clean up some constants in ScopeInfo Bug: v8:7066 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I1a8c5dd4e2156c007e04d92e72e478b915516e0d Reviewed-on: https://chromium-review.googlesource.com/955629Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#51987}
-
- 15 Mar, 2018 3 commits
-
-
Eric Holk authored
Bug: chromium:821368 Change-Id: I4e7032d76a0ac0e291b9dab2f7bcb58ce84827cf Reviewed-on: https://chromium-review.googlesource.com/963601Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51971}
-
Jakob Gruber authored
This reverts commit f1b1ec70. Reason for revert: Tentative revert for https://logs.chromium.org/v/?s=chromium%2Fbb%2Fclient.v8.fyi%2FV8-Blink_Mac%2F13696%2F%2B%2Frecipes%2Fsteps%2Fwebkit_unit_tests%2F0%2Fstdout Original change's description: > [builtins] Remove off-heap builtins from the snapshot > > This CL is the final major step towards shipping off-heap-safe builtins > embedded into the binary. > > Prior to snapshot serialization, we now: > * create the embedded blob containing off-heap instruction streams, > * use that to generate embedded.cc (containing embedded binary data), > * replace off-heap-safe builtins with trampolines, > * and serialize those into the final snapshot. > > The new RelocInfo::OFF_HEAP_TARGET kind is used to fix up trampoline > targets on deserialization. > > Bug: v8:6666 > Change-Id: Ib07aea9e3bd7ecdec42291c1388b3a7453ea96ce > Reviewed-on: https://chromium-review.googlesource.com/950775 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51960} TBR=yangguo@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org Change-Id: I58dd4bf9a99d37416855b48807150e1dd9ecd9e8 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6666 Reviewed-on: https://chromium-review.googlesource.com/964363Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51962}
-
jgruber authored
This CL is the final major step towards shipping off-heap-safe builtins embedded into the binary. Prior to snapshot serialization, we now: * create the embedded blob containing off-heap instruction streams, * use that to generate embedded.cc (containing embedded binary data), * replace off-heap-safe builtins with trampolines, * and serialize those into the final snapshot. The new RelocInfo::OFF_HEAP_TARGET kind is used to fix up trampoline targets on deserialization. Bug: v8:6666 Change-Id: Ib07aea9e3bd7ecdec42291c1388b3a7453ea96ce Reviewed-on: https://chromium-review.googlesource.com/950775 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#51960}
-
- 14 Mar, 2018 4 commits
-
-
Ben L. Titzer authored
This CL is preparation for moving the contents of the WasmContext directly into the WasmInstanceObject. The moved fields are all untagged pointers to C++ memory or untagged sizes which will be used in generated machine code for WASM. They are not currently used, but they are all set to kHeapObjectTag to make sure they are not interpreted as tagged by the GC, using a custom object descriptor. R=mstarzinger@chromium.org CC=clemensh@chromium.org Bug: v8:7424 Change-Id: Ie5d5161df32564dcac74c6ff659f1a38ddca3cb0 Reviewed-on: https://chromium-review.googlesource.com/961065 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#51932}
-
Michael Starzinger authored
R=titzer@chromium.org BUG=v8:7549 Change-Id: Ie77a22f0a6204d673d130be45ca20d5986cddd88 Reviewed-on: https://chromium-review.googlesource.com/962423 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51928}
-
Ben L. Titzer authored
This removes the relocation mode and code specialization for table sizes. These are now stored in the context and not inlined into code. Bug: v8:7549, v8:7424 R=mstarzinger@chromium.org Change-Id: I4cec78fdd365cd0c1dab9f5f4b40ffb69f540bda Reviewed-on: https://chromium-review.googlesource.com/962221 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#51926}
-
Michael Starzinger authored
R=clemensh@chromium.org BUG=v8:7549 Change-Id: Ie2d9d9b569b46396e78b3a6c39fe7e36b6090608 Reviewed-on: https://chromium-review.googlesource.com/962247Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#51923}
-
- 13 Mar, 2018 2 commits
-
-
Michael Achenbach authored
This reverts commit bf9ab729. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20debug/builds/22169 Original change's description: > [in-place weak refs] Use WeakArray in Script::shared_function_infos. > > For serializer changes, see goo.gl/Kh2eop > > BUG=v8:7308 > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: I2b790413a4c0d8c8cc0c07ba7b901c965d64eb11 > Reviewed-on: https://chromium-review.googlesource.com/955593 > Commit-Queue: Marja Hölttä <marja@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51895} TBR=ulan@chromium.org,marja@chromium.org,yangguo@chromium.org,hpayer@chromium.org Change-Id: Ib9552d5c2c284ff27463e61a054c60cc20f2f8cc No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7308 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/960121Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#51896}
-
Marja Hölttä authored
For serializer changes, see goo.gl/Kh2eop BUG=v8:7308 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I2b790413a4c0d8c8cc0c07ba7b901c965d64eb11 Reviewed-on: https://chromium-review.googlesource.com/955593 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#51895}
-
- 12 Mar, 2018 3 commits
-
-
Eric Holk authored
Bug: chromium:813876 Change-Id: I71c571e4185eff3a7386141a408dcb820a70ff95 Reviewed-on: https://chromium-review.googlesource.com/933594Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#51890}
-
Camillo Bruni authored
Bug: v8:7066 Change-Id: I5aa7e976eee6b197586a656ee2e38b9d429ec07b Reviewed-on: https://chromium-review.googlesource.com/955587Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#51881}
-
Marja Hölttä authored
Not used yet apart from tests. BUG=v8:7308 Change-Id: Ibbe12597007cba123236c9fab85c524df3d5dd4a Reviewed-on: https://chromium-review.googlesource.com/955427 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51876}
-
- 09 Mar, 2018 6 commits
-
-
Leszek Swirski authored
This was a shim for the non-I+TF codepath, which is now the only codepath (that still uses this tier-up mechanism anyway). There were a couple of places we were accidentally using it due to CompileLazy or deopts, so this also fixes those. Reland of https://chromium-review.googlesource.com/951490 Change-Id: I1101eeda7b16651610c6f120062771bdc3c8a49f Reviewed-on: https://chromium-review.googlesource.com/957032Reviewed-by:
Mythri Alle <mythria@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#51849}
-
Peter Marshall authored
Previously we used a FixedArray for the FeedbackMetadata, packing bits of information into Smi fields. On 64-bit platforms, we waste at least half of the available memory by using the Smi representation. Given that this is just raw data (no pointers), we can just use a new type that uses the existing packing scheme to store the data in int32 format instead. This CL changes FeedbackMetadata to a new subclass of HeapObject. This is to reduce the API surface exposed, in comparison to extending/using a more general purpose data structure like ByteArray, which is also just raw data. FeedbackMetadata only exposes general purpose methods for accessing slots, but hides the implementation detail of packing bits into int32 fields. This CL also introduces a sentinal EmptyFeedbackMetadata, because there are ~750 empty FeedbackMetadata objects when running an empty program in V8. These are probably for builtins. Bug: v8:7500 Change-Id: Ic85563153abbd71a22854cee8519260c32b1e9ab Reviewed-on: https://chromium-review.googlesource.com/945730 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#51842}
-
jgruber authored
This is a reland of 6afd25ff Original change's description: > [builtins] Execute binary-embedded builtin code > > This CL creates trampolines into binary-embedded builtins on > isolate-creation, if --stress-off-heap-code is passed. > > Note that this still overwrites existing code objects with the > off-heap trampoline, and that off-heap builtins still exist both in > the snapshot and the binary. Addressing these points are the next > steps. > > Drive-by-change: More efficient off-heap code lookups now that the > off-heap memory area has a contiguous and static layout. > > Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng > Bug: v8:6666 > Change-Id: I7e7ef0aa2cd7b8184ae3a13fa02bdcbb4f2c9f86 > Reviewed-on: https://chromium-review.googlesource.com/947969 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51809} TBR=mstarzinger@chromium.org Bug: v8:6666 Change-Id: I4e0684de90733e5f18f6f0ea4832e327d03dfbf7 Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng Reviewed-on: https://chromium-review.googlesource.com/955595Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51835}
-
jgruber authored
This is a reland of 491d5a81 Original change's description: > [builtins] Embed builtins into the binary > > This embeds code for off-heap-safe builtins into the binary. Actual > execution of embedded code is not implemented yet. > > The embedded file has the following format: > > namespace v8 { > namespace internal { > > namespace { > > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_) > __asm__( /* builtin offsets and lengths */ ); > __asm__(V8_ASM_LABEL("Builtins_RecordWrite")); > __asm__( /* binary instruction stream */ ); > /* Repeat for other builtins. */ > > extern "C" const uint8_t v8_embedded_blob_[]; > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */; > > } // namespace > > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; } > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; } > > } // namespace internal > } // namespace v8 > > Bug: v8:6666 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864 > Reviewed-on: https://chromium-review.googlesource.com/946011 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51759} TBR=yangguo@chromium.org Bug: v8:6666 Change-Id: I89b0498f22b4ce573723748d55d86a82ba285a88 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng Reviewed-on: https://chromium-review.googlesource.com/957024Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51832}
-
Leszek Swirski authored
This reverts commit daa224d4. Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=819873 Original change's description: > [builtins] Remove CheckOptimizationMarker builtin > > This was a shim for the non-I+TF codepath, which is now the only > codepath (that still uses this tier-up mechanism anyway). There were a > couple of places we were accidentally using it due to CompileLazy or > deopts, so this also fixes those. > > Change-Id: I00a7fdf9fb5cf74844138dac62d01ceaaf192e17 > Reviewed-on: https://chromium-review.googlesource.com/951490 > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51786} TBR=rmcilroy@chromium.org,machenbach@chromium.org,leszeks@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I80765eb18aaf5086e6db5d5df96f608a317c999f Reviewed-on: https://chromium-review.googlesource.com/957022Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#51829}
-
Jakob Gruber authored
This reverts commit 36b32aa2. Reason for revert: https://build.chromium.org/p/client.v8.fyi/builders/Win%20V8%20FYI%20Release%20%28NVIDIA%29/builds/208 Original change's description: > Reland "[builtins] Embed builtins into the binary" > > This is a reland of 491d5a81 > > Original change's description: > > [builtins] Embed builtins into the binary > > > > This embeds code for off-heap-safe builtins into the binary. Actual > > execution of embedded code is not implemented yet. > > > > The embedded file has the following format: > > > > namespace v8 { > > namespace internal { > > > > namespace { > > > > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_) > > __asm__( /* builtin offsets and lengths */ ); > > __asm__(V8_ASM_LABEL("Builtins_RecordWrite")); > > __asm__( /* binary instruction stream */ ); > > /* Repeat for other builtins. */ > > > > extern "C" const uint8_t v8_embedded_blob_[]; > > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */; > > > > } // namespace > > > > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; } > > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; } > > > > } // namespace internal > > } // namespace v8 > > > > Bug: v8:6666 > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng > > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864 > > Reviewed-on: https://chromium-review.googlesource.com/946011 > > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > > Reviewed-by: Yang Guo <yangguo@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#51759} > > TBR=yangguo@chromium.org > > Bug: v8:6666 > Change-Id: I741554cb080b6811dfbcb0913c6e1594e74c0432 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng > Reviewed-on: https://chromium-review.googlesource.com/955084 > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51804} TBR=yangguo@chromium.org,jgruber@chromium.org Change-Id: I0e21f958f18b0e4d7edebece5e4a2a3ea094cdd3 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6666 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng Reviewed-on: https://chromium-review.googlesource.com/956185Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51828}
-
- 08 Mar, 2018 5 commits
-
-
Jakob Gruber authored
This reverts commit 6afd25ff. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug%20-%20fyi/builds/1437 Original change's description: > [builtins] Execute binary-embedded builtin code > > This CL creates trampolines into binary-embedded builtins on > isolate-creation, if --stress-off-heap-code is passed. > > Note that this still overwrites existing code objects with the > off-heap trampoline, and that off-heap builtins still exist both in > the snapshot and the binary. Addressing these points are the next > steps. > > Drive-by-change: More efficient off-heap code lookups now that the > off-heap memory area has a contiguous and static layout. > > Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng > Bug: v8:6666 > Change-Id: I7e7ef0aa2cd7b8184ae3a13fa02bdcbb4f2c9f86 > Reviewed-on: https://chromium-review.googlesource.com/947969 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51809} TBR=mstarzinger@chromium.org,jgruber@chromium.org Change-Id: I18276541b468b9d2b2a1366ccd287822e96b6df7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6666 Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng Reviewed-on: https://chromium-review.googlesource.com/956042Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51816}
-
Camillo Bruni authored
Bug: chr:81499 Change-Id: I5a18b9ec061d426e21c08747a8c18a36bf5ca194 Reviewed-on: https://chromium-review.googlesource.com/950724 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#51812}
-
jgruber authored
This CL creates trampolines into binary-embedded builtins on isolate-creation, if --stress-off-heap-code is passed. Note that this still overwrites existing code objects with the off-heap trampoline, and that off-heap builtins still exist both in the snapshot and the binary. Addressing these points are the next steps. Drive-by-change: More efficient off-heap code lookups now that the off-heap memory area has a contiguous and static layout. Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng Bug: v8:6666 Change-Id: I7e7ef0aa2cd7b8184ae3a13fa02bdcbb4f2c9f86 Reviewed-on: https://chromium-review.googlesource.com/947969 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#51809}
-
jgruber authored
This is a reland of 491d5a81 Original change's description: > [builtins] Embed builtins into the binary > > This embeds code for off-heap-safe builtins into the binary. Actual > execution of embedded code is not implemented yet. > > The embedded file has the following format: > > namespace v8 { > namespace internal { > > namespace { > > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_) > __asm__( /* builtin offsets and lengths */ ); > __asm__(V8_ASM_LABEL("Builtins_RecordWrite")); > __asm__( /* binary instruction stream */ ); > /* Repeat for other builtins. */ > > extern "C" const uint8_t v8_embedded_blob_[]; > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */; > > } // namespace > > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; } > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; } > > } // namespace internal > } // namespace v8 > > Bug: v8:6666 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864 > Reviewed-on: https://chromium-review.googlesource.com/946011 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51759} TBR=yangguo@chromium.org Bug: v8:6666 Change-Id: I741554cb080b6811dfbcb0913c6e1594e74c0432 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng Reviewed-on: https://chromium-review.googlesource.com/955084Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51804}
-
Igor Sheludko authored
... and use Smi Map::kPrototypeChainValid for the cases where direct receiver's prototype is not JSObject instead of creating a new valid cell for each such case. This will make a validity cell checking code simpler. Bug: v8:5988 Change-Id: I52cf55797171cc8021d80e4e441615d0c8fc8bd4 Reviewed-on: https://chromium-review.googlesource.com/951384 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#51803}
-
- 07 Mar, 2018 2 commits
-
-
Marja Hölttä authored
The next CL will add an actual WeakFixedArray which contains in-place weak references. Also removes FLAG_trace_weak_arrays which is not super useful. BUG=v8:7308 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I016880ecc66b03b406f7184b7f72ab514cb65428 Reviewed-on: https://chromium-review.googlesource.com/951730 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#51789}
-
Leszek Swirski authored
This was a shim for the non-I+TF codepath, which is now the only codepath (that still uses this tier-up mechanism anyway). There were a couple of places we were accidentally using it due to CompileLazy or deopts, so this also fixes those. Change-Id: I00a7fdf9fb5cf74844138dac62d01ceaaf192e17 Reviewed-on: https://chromium-review.googlesource.com/951490 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#51786}
-
- 06 Mar, 2018 4 commits
-
-
Ross McIlroy authored
This reverts commit 75d19b5b. Reason for revert: Breaking Mac: https://build.chromium.org/p/client.v8.fyi/builders/Mac%20V8%20FYI%20Release%20%28Intel%29/builds/290 Original change's description: > Reland "[builtins] Embed builtins into the binary" > > This is a reland of 491d5a81 > > Original change's description: > > [builtins] Embed builtins into the binary > > > > This embeds code for off-heap-safe builtins into the binary. Actual > > execution of embedded code is not implemented yet. > > > > The embedded file has the following format: > > > > namespace v8 { > > namespace internal { > > > > namespace { > > > > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_) > > __asm__( /* builtin offsets and lengths */ ); > > __asm__(V8_ASM_LABEL("Builtins_RecordWrite")); > > __asm__( /* binary instruction stream */ ); > > /* Repeat for other builtins. */ > > > > extern "C" const uint8_t v8_embedded_blob_[]; > > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */; > > > > } // namespace > > > > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; } > > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; } > > > > } // namespace internal > > } // namespace v8 > > > > Bug: v8:6666 > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng > > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864 > > Reviewed-on: https://chromium-review.googlesource.com/946011 > > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > > Reviewed-by: Yang Guo <yangguo@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#51759} > > TBR=yangguo@chromium.org > > Bug: v8:6666 > Change-Id: Iba245976ce46c62474dcba94a99ab4a217b2e20e > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng > Reviewed-on: https://chromium-review.googlesource.com/950983 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51769} TBR=yangguo@chromium.org,jgruber@chromium.org Change-Id: If2560e5ea57585421ba5c3da35717abb9b31766f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6666 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng Reviewed-on: https://chromium-review.googlesource.com/951562Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#51772}
-
jgruber authored
This is a reland of 491d5a81 Original change's description: > [builtins] Embed builtins into the binary > > This embeds code for off-heap-safe builtins into the binary. Actual > execution of embedded code is not implemented yet. > > The embedded file has the following format: > > namespace v8 { > namespace internal { > > namespace { > > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_) > __asm__( /* builtin offsets and lengths */ ); > __asm__(V8_ASM_LABEL("Builtins_RecordWrite")); > __asm__( /* binary instruction stream */ ); > /* Repeat for other builtins. */ > > extern "C" const uint8_t v8_embedded_blob_[]; > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */; > > } // namespace > > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; } > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; } > > } // namespace internal > } // namespace v8 > > Bug: v8:6666 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864 > Reviewed-on: https://chromium-review.googlesource.com/946011 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51759} TBR=yangguo@chromium.org Bug: v8:6666 Change-Id: Iba245976ce46c62474dcba94a99ab4a217b2e20e Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng Reviewed-on: https://chromium-review.googlesource.com/950983Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51769}
-
Jakob Gruber authored
This reverts commit 491d5a81. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Mac64/builds/20696 Original change's description: > [builtins] Embed builtins into the binary > > This embeds code for off-heap-safe builtins into the binary. Actual > execution of embedded code is not implemented yet. > > The embedded file has the following format: > > namespace v8 { > namespace internal { > > namespace { > > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_) > __asm__( /* builtin offsets and lengths */ ); > __asm__(V8_ASM_LABEL("Builtins_RecordWrite")); > __asm__( /* binary instruction stream */ ); > /* Repeat for other builtins. */ > > extern "C" const uint8_t v8_embedded_blob_[]; > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */; > > } // namespace > > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; } > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; } > > } // namespace internal > } // namespace v8 > > Bug: v8:6666 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864 > Reviewed-on: https://chromium-review.googlesource.com/946011 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51759} TBR=yangguo@chromium.org,jgruber@chromium.org Change-Id: I36f5ee173fca565327b7f3e0ea20503ceef451fe No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6666 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng Reviewed-on: https://chromium-review.googlesource.com/950982Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51760}
-
jgruber authored
This embeds code for off-heap-safe builtins into the binary. Actual execution of embedded code is not implemented yet. The embedded file has the following format: namespace v8 { namespace internal { namespace { V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_) __asm__( /* builtin offsets and lengths */ ); __asm__(V8_ASM_LABEL("Builtins_RecordWrite")); __asm__( /* binary instruction stream */ ); /* Repeat for other builtins. */ extern "C" const uint8_t v8_embedded_blob_[]; static const uint32_t v8_embedded_blob_size_ = /* size in bytes */; } // namespace const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; } uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; } } // namespace internal } // namespace v8 Bug: v8:6666 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864 Reviewed-on: https://chromium-review.googlesource.com/946011 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#51759}
-
- 05 Mar, 2018 2 commits
-
-
Camillo Bruni authored
- Only show ElementsKind for JSObject Maps - Display non-variable instance-size for non-JSObject Maps Change-Id: I224b6ca2985f9c51635cc44ab5faa4cb977695ba Reviewed-on: https://chromium-review.googlesource.com/946489 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#51744}
-
Benedikt Meurer authored
This changes the JSArrayIterator to always have only a single instance type, instead of the zoo of instance types that we had before, and which became less useful with the specification update to when "next" is loaded from the iterator now. This greatly simplifies the baseline implementation of the array iterator, which now only looks at the iterated object during %ArrayIteratorPrototype%.next invocations. In TurboFan we introduce a new JSCreateArrayIterator operator, that holds the IterationKind and get's the iterated object as input. When optimizing %ArrayIteratorPrototype%.next in the JSCallReducer, we check whether the receiver is a JSCreateArrayIterator, and if so, we try to infer maps for the iterated object from there. If we find any, we speculatively assume that these won't have changed during iteration (as we did before with the previous approach), and generate fast code for both JSArray and JSTypedArray iteration. Drive-by-fix: Drop the fast_array_iteration protector, it's not necessary anymore since we have the deoptimization guard bit in the JSCallReducer now. This addresses the performance cliff noticed in webpack 4. The minimal repro on the tracking bug goes from console.timeEnd: mono, 124.773000 console.timeEnd: poly, 670.353000 to console.timeEnd: mono, 118.709000 console.timeEnd: poly, 141.393000 so that's a 4.7x improvement. Also make presubmit happy by adding the missing #undef's. Bug: v8:7510, v7:7514 Change-Id: I79a46bfa2cd0f0710e09365ef72519b1bbb667b5 Reviewed-on: https://chromium-review.googlesource.com/946098Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51725}
-
- 02 Mar, 2018 3 commits
-
-
Camillo Bruni authored
Bug: v8:7266 Change-Id: I2835ec79aaa2821aca288685a3f230a7f8029186 Reviewed-on: https://chromium-review.googlesource.com/941948 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#51696}
-
Camillo Bruni authored
This CL removes the last method taking a raw callback as argument. Bug: chromium:782550 Change-Id: Ia7f19120be7dcb2648f11cd3cdb8880f8818490d Reviewed-on: https://chromium-review.googlesource.com/822198 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#51695}
-
Benedikt Meurer authored
Previously the array iterator protector only guarded the lookup of the @@iterator symbol on the initial Array.prototype, and we had to use an additional map check on the %ArrayIteratorPrototype% to ensure that no one messed with the next() method. This CL extends the array iterator protector to also guard the lookup of %ArrayIteratorPrototype%.next. This simplifies the code quite a bit and makes it more robust for cases where someone has to install additional methods on the iterator prototype, i.e. a custom async iterator. Bug: v8:7510, v8:7514 Change-Id: Ie6080bb837a91a2b60b224597121470614210660 Reviewed-on: https://chromium-review.googlesource.com/945728Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51684}
-
- 01 Mar, 2018 1 commit
-
-
Igor Sheludko authored
This is a first step towards using Maps as store transition handlers. It is expected for this CL to noticeably regress memory consumption but most of it should be recovered by the next CL. Bug: v8:5988 Change-Id: Ic2e301f9ccebc36e699383ded8c8cd284a906ce1 Reviewed-on: https://chromium-review.googlesource.com/928646 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#51663}
-
- 28 Feb, 2018 1 commit
-
-
Georg Neis authored
For namespace objects, [[GetOwnProperty]] on an uninitialized property throws a ReferenceError. This was not implemented everywhere. This CL fixes all such issues I'm aware of. Bug: v8:7470 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I5f024450005c4f4dcb3f41c844ef055f67a9a869 Reviewed-on: https://chromium-review.googlesource.com/937341Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#51638}
-