- 27 Sep, 2018 1 commit
-
-
Jaroslav Sevcik authored
Instead attribute them properly as Bultin or BytecodeHandler. Bug: v8:6240 Change-Id: I773a533b318afe52d63152edf5b16463801db8e9 Reviewed-on: https://chromium-review.googlesource.com/1249202Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#56262}
-
- 26 Sep, 2018 1 commit
-
-
Igor Sheludko authored
Bug: v8:8015 Change-Id: I2f407c5ffaed96b90b9ead452a98a19ef1700b75 Reviewed-on: https://chromium-review.googlesource.com/1240336 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56233}
-
- 25 Sep, 2018 3 commits
-
-
Yang Guo authored
This is a reland of bcb8d49b TBR=petermarshall@chromium.org Original change's description: > [snapshot] add checksum to startup snapshot > > We already had checksumming for code cache data. We now extend > checksumming to the startup snapshot to catch data corruption early. > > The performance impact for deserialization is a regression of 1-2%, > which should be acceptable. > > Sample output for the included test with --profile-deserialization: > > [Verifying snapshot checksum took 0.023 ms] > [Deserializing isolate (134348 bytes) took 1.891 ms] > [Verifying snapshot checksum took 0.024 ms] > [Deserializing isolate (134348 bytes) took 1.654 ms] > [Deserializing context #0 (47208 bytes) took 0.331 ms] > Deserialization will reserve: > 208168 bytes per isolate > 123368 bytes per context #0 > Snapshot blob consists of: > 134492 bytes in 6 chunks for startup > 115272 bytes for builtins > 47152 bytes in 31 chunks for context #0 > [Verifying snapshot checksum took 0.048 ms] > [Verifying snapshot checksum took 0.043 ms] > > R=peria@chromium.org, petermarshall@chromium.org > > Bug: chromium:881417 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: Ibc57520d459c86be8972f731aa35045b5e3751d7 > Reviewed-on: https://chromium-review.googlesource.com/1241874 > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56217} Bug: chromium:881417 Change-Id: I037f378fc2d45c3e0fa670bf538df68cbba5c53c Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1243191Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56224}
-
Clemens Hammacher authored
This reverts commit bcb8d49b. Reason for revert: MSan compile error: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/23025 Original change's description: > [snapshot] add checksum to startup snapshot > > We already had checksumming for code cache data. We now extend > checksumming to the startup snapshot to catch data corruption early. > > The performance impact for deserialization is a regression of 1-2%, > which should be acceptable. > > Sample output for the included test with --profile-deserialization: > > [Verifying snapshot checksum took 0.023 ms] > [Deserializing isolate (134348 bytes) took 1.891 ms] > [Verifying snapshot checksum took 0.024 ms] > [Deserializing isolate (134348 bytes) took 1.654 ms] > [Deserializing context #0 (47208 bytes) took 0.331 ms] > Deserialization will reserve: > 208168 bytes per isolate > 123368 bytes per context #0 > Snapshot blob consists of: > 134492 bytes in 6 chunks for startup > 115272 bytes for builtins > 47152 bytes in 31 chunks for context #0 > [Verifying snapshot checksum took 0.048 ms] > [Verifying snapshot checksum took 0.043 ms] > > R=peria@chromium.org, petermarshall@chromium.org > > Bug: chromium:881417 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: Ibc57520d459c86be8972f731aa35045b5e3751d7 > Reviewed-on: https://chromium-review.googlesource.com/1241874 > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56217} TBR=peria@chromium.org,yangguo@chromium.org,petermarshall@chromium.org Change-Id: Iccb82092858ab68a5d6ae9552fa716108eda354b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:881417 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1243190Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56221}
-
Yang Guo authored
We already had checksumming for code cache data. We now extend checksumming to the startup snapshot to catch data corruption early. The performance impact for deserialization is a regression of 1-2%, which should be acceptable. Sample output for the included test with --profile-deserialization: [Verifying snapshot checksum took 0.023 ms] [Deserializing isolate (134348 bytes) took 1.891 ms] [Verifying snapshot checksum took 0.024 ms] [Deserializing isolate (134348 bytes) took 1.654 ms] [Deserializing context #0 (47208 bytes) took 0.331 ms] Deserialization will reserve: 208168 bytes per isolate 123368 bytes per context #0 Snapshot blob consists of: 134492 bytes in 6 chunks for startup 115272 bytes for builtins 47152 bytes in 31 chunks for context #0 [Verifying snapshot checksum took 0.048 ms] [Verifying snapshot checksum took 0.043 ms] R=peria@chromium.org, petermarshall@chromium.org Bug: chromium:881417 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ibc57520d459c86be8972f731aa35045b5e3751d7 Reviewed-on: https://chromium-review.googlesource.com/1241874Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56217}
-
- 24 Sep, 2018 3 commits
-
-
Yang Guo authored
This is a reland of 33fa357b TBR=mvstanton@chromium.org Original change's description: > Do not use FixedDoubleArray to store RNG state > > Also: > - replace runtime call with cheaper C call > - change state to double conversion > > R=mvstanton@chromium.org > > Bug: v8:8212 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: If4bfe0f5fb1864c89f4acd871cb8b74c7cd7ab09 > Reviewed-on: https://chromium-review.googlesource.com/1240116 > Commit-Queue: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56165} Bug: v8:8212 Change-Id: Iccc9128034ce7b65801a04a54982219b5a4fe84e Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1238551Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56175}
-
Maya Lekova authored
This reverts commit 33fa357b. Reason for revert: Breaking the V8 Linux - arm64 - sim - MSAN bot. Please see here: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/23001 Original change's description: > Do not use FixedDoubleArray to store RNG state > > Also: > - replace runtime call with cheaper C call > - use xor instead of addition to remove bias > > R=mvstanton@chromium.org > > Bug: v8:8212 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: If4bfe0f5fb1864c89f4acd871cb8b74c7cd7ab09 > Reviewed-on: https://chromium-review.googlesource.com/1240116 > Commit-Queue: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56165} TBR=yangguo@chromium.org,mvstanton@chromium.org Change-Id: I05f23f0b52a706233bbc1a1877cc15691ed9f40a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8212 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1238549Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#56167}
-
Yang Guo authored
Also: - replace runtime call with cheaper C call - use xor instead of addition to remove bias R=mvstanton@chromium.org Bug: v8:8212 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: If4bfe0f5fb1864c89f4acd871cb8b74c7cd7ab09 Reviewed-on: https://chromium-review.googlesource.com/1240116 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#56165}
-
- 21 Sep, 2018 2 commits
-
-
Florian Sattler authored
Fixing clang-tidy warning. Replace 0 with nullptr. Add NOLINT for special cases. Add default/override to methods. Bug: v8:8015 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Iff483356ace471d816051c6dd06ca08809ae1c09 Reviewed-on: https://chromium-review.googlesource.com/1238333Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#56129}
-
Jakob Gruber authored
Handlers were recently moved to the builtins table, and we never added full support for this flag. It doesn't add much value and lazy deserialization is scheduled for mid-term removal anyways, so let's just delete it. --lazy-deserialization now controls both builtin- and handler-deserialization behavior. Bug: v8:6624 Change-Id: Iffb7286a00157966abf99158ba629ce4765536d6 Reviewed-on: https://chromium-review.googlesource.com/1238235 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#56117}
-
- 20 Sep, 2018 3 commits
-
-
Igor Sheludko authored
and introduce RootsTable - a V8 heap roots storage. So, the renaming part looks like this: Heap::RootListIndex -> RootIndex Heap::kBlahBlahRootIndex -> RootIndex::kBlahBlah Bug: v8:8015, v8:8182 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I38e1f3e3f6813ef35e37b0bed35e9ae14a62134f Reviewed-on: https://chromium-review.googlesource.com/1234613Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#56067}
-
Dan Elphick authored
This always creates the bytecode handlers as part of the builtins table regardless of the V8_EMBEDDED_BYTECODE_HANDLERS definition. Lazy deserialization of bytecode handlers is enabled for this flow by moving the three lazy bytecode deserializers from the strong roots into the builtins table (ensuring that they not marked lazy themselves). To simplify lazy deserialization, the illegal bytecode handler is made non-lazy so that GetAndMaybeDeserializeBytecodeHandler doesn't to know about it. Since the bytecode handlers are now always part of the builtins table, many bytecode specific methods are removed, including logging and in BuiltinsSerializer and BuiltinsDeserializer. Removes setup-interpreter.h, setup-interpreter-internal.cc and builtin-snapshot-utils.*. Change-Id: Ie421aa897a04f7b3bcb964c476eb7ab149388d53 Reviewed-on: https://chromium-review.googlesource.com/1220046Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#56063}
-
Michael Achenbach authored
This reverts commit 46573e51. Reason for revert: Speculative revert for breaking chromium integration. Might break gpu tests and linux debug: https://ci.chromium.org/p/v8/builders/luci.v8.ci/Mac%20V8%20FYI%20Release%20(Intel)/2554 Also blocks the roll: https://chromium-review.googlesource.com/c/chromium/src/+/1234328 Original change's description: > [es2015] Introduce JSDataView::external_pointer. > > This adds a new external_pointer field to every JSDataView instance > which points directly into the backing store at the given view's > byte_offset. This was the DataView performance is now almost on > par with the TypedArray performance for accessing aligned memory > (with appropriate endianess). This also serves as prepatory work > to enable full 64-bit addressing of DataView backing stores in > optimized code (soonish). > > This change optimizes the bounds checking sequence in TurboFan in > such a way that it further improves the DataView set/get performance > by around 10%, almost closing the remaining gap between DataViews > and TypedArrays. > > Drive-by-fix: Get rid of the code duplication around DataView inlining > in the JSCallReducer and have only a single bottleneck method now. > > Bug: chromium:225811, v8:4153, v8:7881, v8:8171 > Change-Id: I9118efd4d19e93f0e51c931a9bec1a56a0f4593e > Reviewed-on: https://chromium-review.googlesource.com/1231994 > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56042} TBR=yangguo@chromium.org,mlippautz@chromium.org,tebbi@chromium.org,bmeurer@chromium.org Change-Id: I614a90043b1574b19936c37987db94806cac3bd7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:225811, v8:4153, v8:7881, v8:8171 Reviewed-on: https://chromium-review.googlesource.com/1234417Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#56059}
-
- 19 Sep, 2018 3 commits
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Change-Id: I829fe79b95a0275ccc94e32fea2cdc74affef714 Reviewed-on: https://chromium-review.googlesource.com/1228066Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#56050}
-
Benedikt Meurer authored
This adds a new external_pointer field to every JSDataView instance which points directly into the backing store at the given view's byte_offset. This was the DataView performance is now almost on par with the TypedArray performance for accessing aligned memory (with appropriate endianess). This also serves as prepatory work to enable full 64-bit addressing of DataView backing stores in optimized code (soonish). This change optimizes the bounds checking sequence in TurboFan in such a way that it further improves the DataView set/get performance by around 10%, almost closing the remaining gap between DataViews and TypedArrays. Drive-by-fix: Get rid of the code duplication around DataView inlining in the JSCallReducer and have only a single bottleneck method now. Bug: chromium:225811, v8:4153, v8:7881, v8:8171 Change-Id: I9118efd4d19e93f0e51c931a9bec1a56a0f4593e Reviewed-on: https://chromium-review.googlesource.com/1231994 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#56042}
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Change-Id: Ibc5a81aea25f797e90db891e90b2977f27e13990 Reviewed-on: https://chromium-review.googlesource.com/1224410 Commit-Queue: Florian Sattler <sattlerf@google.com> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#56015}
-
- 18 Sep, 2018 2 commits
-
-
Benedikt Meurer authored
This is the next step to support large array buffers. On 64-bit archs the full safe integer range is available (up to 2^53-1 bytes in theory). On 32-bit platforms the full Unsigned31 range is allowed, so that we can continue to use CheckBounds for typed arrays and data views in the optimizing compiler (it's generally unlikely that the kernel will give you more than 1GiB of contiguous memory anyways). Drive-by-fix: This introduces proper chokepoints for the byte_offset and byte_length accesses in the CSA code, and also does some renaming for consistency. Bug: v8:4153, v8:7881, v8:8171 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I92a767638532ca9f86084398ce72556c5180cc6e Reviewed-on: https://chromium-review.googlesource.com/1228377Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#56008}
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I2204967cff3e50d967a9c6f4685f0df5a6ba84af Reviewed-on: https://chromium-review.googlesource.com/1226793Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#55976}
-
- 17 Sep, 2018 1 commit
-
-
Marja Hölttä authored
E.g., "ToWeakHeapObject" was misleading, since it didn't convert to a weak heap object, instead returned a weakly pointed heap object. Change the function names (in this case, to "GetHeapObjectIfWeak") to reflect this. Also make casts explicit, if a MaybeObject is an Object, we can call cast<Object>(). Previous version: https://chromium-review.googlesource.com/1219025 BUG=v8:7308 TBR=ishell@chromium.org, ulan@chromium.org, ahaas@chromium.org, yangguo@chromium.org, tebbi@chromium.org Change-Id: I503d4a2a3a68f85e9e02e1c2f9fc1c4187c8e9a1 Reviewed-on: https://chromium-review.googlesource.com/1226800Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#55934}
-
- 14 Sep, 2018 3 commits
-
-
Marja Hölttä authored
This reverts commit ad72d195. Reason for revert: Build failures on *san Original change's description: > [in-place weak refs] Fix MaybeObject function names > > E.g., "ToWeakHeapObject" was misleading, since it didn't convert to a weak heap > object, instead returned a weakly pointed heap object. Change the function names > (in this case, to "GetHeapObjectIfWeak") to reflect this. > > Also make casts explicit, if a MaybeObject is an Object, we can call cast<Object>(). > > BUG=v8:7308 > > Change-Id: I4ef078572b4f4415afe7e2e706d3bd684e16e47d > Reviewed-on: https://chromium-review.googlesource.com/1219025 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Marja Hölttä <marja@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55906} TBR=ulan@chromium.org,marja@chromium.org,yangguo@chromium.org,ahaas@chromium.org,tebbi@chromium.org,ishell@chromium.org Change-Id: I054b578518e3f6fd7dbcddf0b56cc018726c1e7a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7308 Reviewed-on: https://chromium-review.googlesource.com/1226874Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#55918}
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I5404f0b94c7badce2c59d8eac2c32810f4fa2c3c Reviewed-on: https://chromium-review.googlesource.com/1224317Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#55914}
-
Marja Hölttä authored
E.g., "ToWeakHeapObject" was misleading, since it didn't convert to a weak heap object, instead returned a weakly pointed heap object. Change the function names (in this case, to "GetHeapObjectIfWeak") to reflect this. Also make casts explicit, if a MaybeObject is an Object, we can call cast<Object>(). BUG=v8:7308 Change-Id: I4ef078572b4f4415afe7e2e706d3bd684e16e47d Reviewed-on: https://chromium-review.googlesource.com/1219025Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#55906}
-
- 13 Sep, 2018 1 commit
-
-
Benedikt Meurer authored
Previously the [[ArrayBufferByteLength]] internal field was represented as a boxed number (i.e. either Smi or HeapNumber) in safe integer range. This is the first step to change the representation of all the array buffer and array buffer view length/offset fields to unboxed integers, to eventually support the full range of 4GiB (and potentially even more) for typed arrays and array buffers. This will allow WebAssembly memories with 4GiB to be usable. Tbr: yangguo@chromium.org Bug: v8:7881, v8:8015, v8:8171 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ic6c6c8fe087afee898254cd903e82a55bfc173a9 Reviewed-on: https://chromium-review.googlesource.com/1222309Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55877}
-
- 10 Sep, 2018 1 commit
-
-
Dan Elphick authored
Previously the builtins table had a value for every single OperandScale/Bytecode combination regardless of whether it was valid. This change makes it so that only valid bytecode handlers are stored in the builtins table. This prevents placeholders being serialized into the snapshot (and embedded into the binary) saving 9KB in CODE_SPACE/OLD_SPACE and 2.5KB in the embedded data as well as 66 entries in the builtins table. To do this, it generates a new header file bytecodes-builtins-list.h which is created from the BYTECODE_LIST and OPERAND_SCALE_LIST macros. Since list macros cannot be used to conditionally generate elements in the C-preprocessor, this is done by generator executable, compiled from interpreter/generate-flat-headers.cc. Additionally the generator creates the flat bytecode list so that it is transposed from the previous result, i.e. the results are grouped by bytecode and then operand scale rather than operand scale then bytecode. This should give better locality for commonly used bytecodes and may allow less commonly used ExtraWide bytecodes to never be mapped into memory at all. The cost to storing the handlers densely is that looking up a handler now requires a binary search through the builtins table, but this should only happen during debugging. It is also fixable at least for non-wide handlers and could be improved for wide ones if the need arises. Bug: v8:8068 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Iaad22a952e2858f508030c5ddc082f91bf59f667 Reviewed-on: https://chromium-review.googlesource.com/1209304 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#55757}
-
- 07 Sep, 2018 1 commit
-
-
Florian Sattler authored
Bug: v8:8015 Change-Id: Id459da19e009b2203b12ba04d185dc857e4913c1 Reviewed-on: https://chromium-review.googlesource.com/1209786Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#55700}
-
- 05 Sep, 2018 1 commit
-
-
Dan Elphick authored
Shrink embedded.cc by writing out octa words instead of bytes. This halves the size of the generated file from 28MB to 14MB in a debug build and reduces compile times for the file from ~2s to ~0.6s. Bug: v8:8129 Change-Id: I90893c7732d83f4eeedee964cd81958201e3b05c Reviewed-on: https://chromium-review.googlesource.com/1204111Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#55645}
-
- 03 Sep, 2018 2 commits
-
-
Dan Elphick authored
When v8_enable_embedded_bytecode_handlers is true, initialize the bytecode dispatch table from the builtins table. Also stops creating the handlers more than once as the SetupInterpreter will now always do nothing even when not starting from a snapshot. In the short term, with the flag enabled all the bytecode handlers are eagerly deserialized. Finally, the bytecode handlers are marked as non-isolate independent to prevent them being embedded in the binary until they can be converted. Bug: v8:8068 Change-Id: I9e5ef7f1dce1b2d11c7aa26526f06b53f8939697 Reviewed-on: https://chromium-review.googlesource.com/1188477Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#55581}
-
Alexander Timokhin authored
After https://chromium-review.googlesource.com/c/v8/v8/+/1101323 some AllocationSites can have dropped weak_next field, but this doesn't suported in serializer/deserializer. This CL adds support for such AllocationSites. Change-Id: Ibf495ae4effdf4e127892d906967d8e30eebfc87 Reviewed-on: https://chromium-review.googlesource.com/1183238 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#55579}
-
- 30 Aug, 2018 1 commit
-
-
jgruber authored
This reverts two CLs that were intended to show symbols for embedded builtins in chromecrash. The symbols never showed up, a part of this must still be missing. Revert "[builtins] Declare builtin symbols as globals" This reverts commit 8412353c. Revert "[builtins] Declare builtin symbols" This reverts commit 17ad3ae4. TBR=yangguo@chromium.org Bug: v8:6666, v8:7722 Change-Id: Ifcbf56a36ea51ea65de77c507886402f3663f414 Reviewed-on: https://chromium-review.googlesource.com/1195493Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55515}
-
- 27 Aug, 2018 1 commit
-
-
Benoît Lizé authored
"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/1185192Reviewed-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}
-
- 22 Aug, 2018 2 commits
-
-
Ross McIlroy authored
TBR=yangguo@chromium.org Change-Id: Iadeb5828daf4db341c58534ff2b23141f241dfb9 Reviewed-on: https://chromium-review.googlesource.com/1184841 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#55314}
-
jgruber authored
Some builtins, so-called wasm runtime stubs, are copied off-heap to ensure reachability through near jumps. These builtins must be individually position-independent. In particular, they may not contain pc-relative calls to other builtins. Drive-by: Set hard_abort mode for all wasm runtime stubs to avoid Abort calls. Bug: v8:6666 Change-Id: Ie5bc9fc539d6a043dcf7dff66c3b4643baec69ab Reviewed-on: https://chromium-review.googlesource.com/1183236 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#55296}
-
- 21 Aug, 2018 2 commits
-
-
jgruber authored
This populates the isolate-independent builtin whitelist with initial builtins that do not access any isolate-dependent data and thus don't need the root register at all. Unlike most other platforms, we can't use a scratch register in the off-heap trampoline since there's no free register available. The trampolines on ia32 are thus implemented as pc-relative jumps (thankfully we can address the entire address space). Drive-by: Made Code::IsIsolateIndependent consistent with FinalizeEmbeddedCodeTargets. Code targets are only allowed on some platforms. Bug: v8:6666 Change-Id: I0bf02eecba8a099afa7b7c892188cd377cbda840 Reviewed-on: https://chromium-review.googlesource.com/1183224Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55265}
-
Dan Elphick authored
This is a reland of 041ae1f8 The clashing method has been fixed. Original change's description: > [builtins] Start adding byte code handlers to builtins > > Adds a new build flag, v8_enable_embedded_bytecode_handlers, that adds > the bytecode handlers to the BUILTIN_LIST macros. > > Currently it's not connected up to the code-generation so it actually > does nothing except expand the builtins table. > > Bug: v8:8068 > Change-Id: Iaecc3982cf22d04e6c46169b86c9d694952fd091 > Reviewed-on: https://chromium-review.googlesource.com/1179887 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55215} Bug: v8:8068 Change-Id: Ibc98929a9ad464e9d4c9fc7d43401f0fb0df9a00 Reviewed-on: https://chromium-review.googlesource.com/1181981Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#55244}
-
- 20 Aug, 2018 3 commits
-
-
Dan Elphick authored
This reverts commit 041ae1f8. Reason for revert: Causes jumbo builds to fail because of duplicate GenerateBytecodeHandler definitions. Original change's description: > [builtins] Start adding byte code handlers to builtins > > Adds a new build flag, v8_enable_embedded_bytecode_handlers, that adds > the bytecode handlers to the BUILTIN_LIST macros. > > Currently it's not connected up to the code-generation so it actually > does nothing except expand the builtins table. > > Bug: v8:8068 > Change-Id: Iaecc3982cf22d04e6c46169b86c9d694952fd091 > Reviewed-on: https://chromium-review.googlesource.com/1179887 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55215} TBR=rmcilroy@chromium.org,jgruber@chromium.org,delphick@chromium.org Change-Id: I860b3ecf543944fd0f4fdcb8de09d21a4b784150 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8068 Reviewed-on: https://chromium-review.googlesource.com/1181301Reviewed-by:
Dan Elphick <delphick@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#55225}
-
Dan Elphick authored
Now that we don't iterate over the strong roots in the StartupSerializer twice, remove code related to skipping non-immortal immovable roots. Factor out code from Serializer::VisitRootPointers and use that method in the StartSerializer override. Also update comments that reflected the old way of serializing. Change-Id: Ieb5e63389f455b963244717cada7e5ccde8e41cb Reviewed-on: https://chromium-review.googlesource.com/1179669 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55218}
-
Dan Elphick authored
Adds a new build flag, v8_enable_embedded_bytecode_handlers, that adds the bytecode handlers to the BUILTIN_LIST macros. Currently it's not connected up to the code-generation so it actually does nothing except expand the builtins table. Bug: v8:8068 Change-Id: Iaecc3982cf22d04e6c46169b86c9d694952fd091 Reviewed-on: https://chromium-review.googlesource.com/1179887 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55215}
-
- 17 Aug, 2018 3 commits
-
-
Ulan Degenbaev authored
This moves write-barrier for writes into code to heap-write-barrier.h and adds four new functions: - WriteBarrierForCode(host, rinfo, object) - combined generational and marking write barrier. - WriteBarrierForCode(host) - combined write barrier that rescans all pointers in the host (former RecordWritesIntoCode). - GenerationalWriteBarrierForCode. - MarkingWriteBarrierForCode. Bug: v8:8054,v8:7490 Change-Id: Ib1e07cfa1d5998fca2fa44e2ad08c52305f1373f Reviewed-on: https://chromium-review.googlesource.com/1174436Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#55185}
-
Dan Elphick authored
When printing the number and size of the instance types in each snapshot, break out each line into the number for each AllocationSpace. (This removes the specific RO_SPACE path that just broke out its stats). Change-Id: I9d5bcecc4f0e8e1ec5c83409f54164f9bf83c5be Reviewed-on: https://chromium-review.googlesource.com/1175826Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#55184}
-
Ben L. Titzer authored
JSArrays and JSArrayBuffers are very different animals. As such, split the js-array.h header into two parts. R=ulan@chromium.org,mstarzinger@chromium.org Bug: v8:5402 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I82f987ecea3e2e1ceaf8f8962a2b88165558c57e Reviewed-on: https://chromium-review.googlesource.com/1177760Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55183}
-