- 20 Mar, 2019 2 commits
-
-
Ben Smith authored
WasmRunner provides CheckCallViaJS, which calls a wasm function through JS and checks its result. There are currently two overloads, one that takes a variable number of arguments, and another more general 4-argument version that takes an array of arguments. This means if you run code like: r.CheckCallViaJS(0, 0, 0, 0); The overload resolution kicks in, and chooses the general version, which will always segfault. This CL renames the general version to `CheckCallApplyViaJS` so the above example will call the variable-argument version instead. Change-Id: I14a742c467692e09e84f03504cec2306a794fc24 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529990Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#60345}
-
Z Duong Nguyen-Huu authored
This is a follow-up CL from https://chromium-review.googlesource.com/c/v8/v8/+/1432597 Indices of first and last symbol properties are recorded and used on a second iteration of DescriptorArrayForEach() to potentially reduce the iteration range Bug: v8:6705 Change-Id: Iac73909d138214d1128e935eff686f2f058e17f7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1516021 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#60344}
-
- 19 Mar, 2019 31 commits
-
-
Michael Achenbach authored
NOTRY=true Bug: v8:8964 Change-Id: I63e2ab53f3466a86b498c56fac1b296f1bd4d904 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530818 Auto-Submit: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#60343}
-
Deepti Gandluri authored
Change-Id: I94ae52c609c591d95ef0f71cba45e25ef80c9a77 Bug: v8:9008 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529931Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#60342}
-
Andreas Haas authored
R=mstarzinger@chromium.org Bug: v8:7581 Change-Id: I93044dc0065d1d0146ec9b5190e50ca63ce94f4e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530808Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#60341}
-
Deepti Gandluri authored
This reverts commit 4f051fd5. Reason for revert: Fails with custom snapshot on GC stress - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/24855 Original change's description: > Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64" > > This is a reland of 589d1a6b > > Relanding after fixing TSan and UBSan issues. > > Original change's description: > > [ptr-compr][x64] Temporarily enable pointer compression on x64 > > > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without > > pointer compression in order to keep testing the full pointer mode. > > > > Bug: v8:7703 > > Change-Id: Iee725deda813425a6f0722948b54976154f50909 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139 > > Reviewed-by: Michael Hablich <hablich@chromium.org> > > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#60230} > > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel > Bug: v8:7703 > Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327 > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Auto-Submit: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60339} TBR=machenbach@chromium.org,hablich@chromium.org,leszeks@chromium.org,ishell@chromium.org,verwaest@chromium.org Change-Id: Ia06829e9dfdf09501ceebc0eef175d3261969d1f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7703 Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1531120Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#60340}
-
Igor Sheludko authored
This is a reland of 589d1a6b Relanding after fixing TSan and UBSan issues. Original change's description: > [ptr-compr][x64] Temporarily enable pointer compression on x64 > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without > pointer compression in order to keep testing the full pointer mode. > > Bug: v8:7703 > Change-Id: Iee725deda813425a6f0722948b54976154f50909 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139 > Reviewed-by: Michael Hablich <hablich@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60230} Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel Bug: v8:7703 Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327 Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60339}
-
Igor Sheludko authored
Bug: v8:7703 Change-Id: I497fe7e4ba81acbda8564142959f823c5195c5eb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529008Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#60338}
-
Milad Farazmand authored
Due to ppc having a fixed 4 byte instruction length, changing ByteChunk length from 8 to 4 bytes will fix any padding issues while generating the "embed.S" file. Change-Id: Ide799908effd88d5387e97627917b095fcc3051c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524720 Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60337}
-
Michael Lippautz authored
Bug: v8:8997 Change-Id: If47a9c4d580b29f67eaadc4b129279b085e428b2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530812 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60336}
-
Leszek Swirski authored
This reverts commit 89a5dd36. Reason for revert: android_sdk tool path change breaks our build Original change's description: > Update V8 DEPS. > > Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/e8b8ab7..874a2b0 > > Rolling v8/buildtools: https://chromium.googlesource.com/chromium/src/buildtools/+log/a14f996..a2a4845 > > Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/4e9bccd..d8c847c > > Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/24b5f90..b542cca > > Rolling v8/third_party/googletest/src: https://chromium.googlesource.com/external/github.com/google/googletest/+log/efecb0b..8b6d3f9 > > Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/3dd606a..e110dc2 > > TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org > > Change-Id: I2138e400fecdd7467664ea51ce02b8602f7d7a11 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530199 > Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> > Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> > Cr-Commit-Position: refs/heads/master@{#60333} TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org,v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com Change-Id: I48efece3b21d40c841f3c3d291f86652281a1772 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530813Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#60335}
-
Igor Sheludko authored
Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Bug: v8:7703 Change-Id: I3511710cead1c18b75783f71af3127693e7f17fd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529007 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60334}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/e8b8ab7..874a2b0 Rolling v8/buildtools: https://chromium.googlesource.com/chromium/src/buildtools/+log/a14f996..a2a4845 Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/4e9bccd..d8c847c Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/24b5f90..b542cca Rolling v8/third_party/googletest/src: https://chromium.googlesource.com/external/github.com/google/googletest/+log/efecb0b..8b6d3f9 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/3dd606a..e110dc2 TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org Change-Id: I2138e400fecdd7467664ea51ce02b8602f7d7a11 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530199Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#60333}
-
Junliang Yan authored
Port 1c154540 Original Commit Message: On LoadCodeObjectEntry check for IsOffHeapTrampoline instead of BuiltinIndexOffset so LoadCodeObjectEntry can correctly jump to the on-heap trampoline when we use --interpreted-frames-native-stack. R=mat@mmarchini.me, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, miladfar@ca.ibm.com BUG= LOG=N Change-Id: I12cb669743bc674bd4f151f4348f763c5bd73647 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529258Reviewed-by: Milad Farazmand <miladfar@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#60332}
-
Michael Lippautz authored
This way d8 can use a read-only mapping for its input file. Otherwise, it would require write access for reading the sources. Bug: v8:8997 Change-Id: I8e117f0a3d9c125ffd1dc1682d5af04b3f6287c2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530804 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60331}
-
Paolo Severini authored
On 64 bit Windows, the OS stack walking does not work because the V8 x64 backend doesn't emit unwinding info and also because it doesn't emit ABI compliant stack frames. See https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit for more details. This problem can be fixed by observing that V8 frames usually all have the same prolog and epilog: push rbp, mov rbp, rsp ... pop rbp ret N and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows should walk through V8 frames. Furthermore, since V8 Code objects are all allocated in the same code-range for an Isolate, it is possible to register a single PDATA/XDATA entry to cover stack walking for all the code generated inside that code-range. This PR contains changes required to enable stack walking on Win64: EmbeddedFileWriter now adds assembler directives to the builtins snapshot source file (embedded.cc) to emit additional entries in the .pdata and in the .xdata section of the V8 executable. This takes care of stack walking for embedded builtins. (The case of non-embedded builtins is not supported). The x64 Assembler has been modified to collect the information required to emit this unwind info for builtins. Stack walking for jitted code is handled is Isolate.cpp, by registering dynamically PDATA/XDATA for the whole code-range address space every time a new Isolate is initialized, and by unregistering them when the Isolate is destroyed. Stack walking for WASM jitted code is handled is the same way in wasm::NativeModule (wasm/wasm-code-manager.cpp). It is important to note that Crashpad and Breakpad are already registering PDATA/XDATA to manage and report unhandled exceptions (but not for embedded builtins). Since it is not possible to register multiple PDATA entries for the same address range, a new function is added to the V8 API: SetUnhandledExceptionCallback() can be used by an embedder to register its own unhandled exception handler for exceptions that arise in v8-generated code. V8 embedders should be modified accordingly (code for this is in a separate PR in the Chromium repository: https://chromium-review.googlesource.com/c/chromium/src/+/1474703). All these changes are experimental, behind: the 'v8_win64_unwinding_info' build flag, and the '--win64-unwinding-info' runtime flag. Bug: v8:3598 Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Paolo Severini <paolosev@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60330}
-
Ulan Degenbaev authored
This is a reland of 8f1c985c Original change's description: > [heap] Reduce page size to 256KB > > The page size of PPC is kept unchanged because PPC has larger > physical pages (64KB). > > Bug: chromium:852420 > > Change-Id: Ib888ea00a476ff103e00211dbb439186148ef81e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1481631 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Junliang Yan <jyan@ca.ibm.com> > Cr-Commit-Position: refs/heads/master@{#60296} Bug: chromium:852420 Change-Id: Id0fbe4759f6fa750bc00100ca521453317dff9ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529006 Auto-Submit: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60329}
-
Hannes Payer authored
Change-Id: I878bc11ac8d4988b608507bced1363129c29a179 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528993 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60328}
-
Michael Starzinger authored
This extends the support for the "except_ref" type on global variables to support mutable globals, as well as importing and exporting such globals. Test coverage is also increased. R=ahaas@chromium.org TEST=mjsunit/wasm/exceptions-global BUG=v8:8091 Change-Id: I816406e322ffb574a4f054947682491e7b40335f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530802Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60327}
-
Sigurd Schneider authored
Change-Id: I46eb94e58fc4da55cb1b2adb9ffdbb09e5e33a5d Bug: v8:8557 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530800Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60326}
-
Clemens Hammacher authored
This makes it easier to publish them in batches. Function index and requested compilation tier are duplicated from the WasmCompilationUnit. R=titzer@chromium.org Bug: v8:8916 Change-Id: I87852670be029b1d729f98f01729362ca379fb50 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529009Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60325}
-
Leszek Swirski authored
This reverts commit b1769313. Reason for revert: Flag access breaks TSAN (not an issue with this CL as such, but we need to revert to re-open the tree). Original change's description: > [regalloc] Introduce deferred fixed ranges > > Fixed ranges are used to express register constraints in the > allocator. This change splits these fixed ranges into one for > normal code and deferred code. The former are handeled as before > whereas the latter are only made visible while allocating > registers for deferred code. > > This prevents forward looking decisions in normal code to be > impacted by register constraints from deferred code. > > Change-Id: I67d562bb41166194e62765d5ab051bc961054fc7 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1477742 > Commit-Queue: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60322} TBR=jarin@chromium.org,sigurds@chromium.org,herhut@chromium.org Change-Id: I5675a96acf0b5e5f7d63c60a742d2971b6d0d34d No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530803Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#60324}
-
Yu Yin authored
We should use 'constant pool' to allow concurrent patching of the jump table like arm. For now just skip the test to make CI mips bot green. Bug: v8:8974 Change-Id: Iaf2b0245128fdcf2c8ed964f796781134570c889 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524755 Commit-Queue: Yu Yin <xwafish@gmail.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60323}
-
Stephan Herhut authored
Fixed ranges are used to express register constraints in the allocator. This change splits these fixed ranges into one for normal code and deferred code. The former are handeled as before whereas the latter are only made visible while allocating registers for deferred code. This prevents forward looking decisions in normal code to be impacted by register constraints from deferred code. Change-Id: I67d562bb41166194e62765d5ab051bc961054fc7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1477742 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60322}
-
Igor Sheludko authored
When pointer compression is enabled the [u]intptr_t and double fields are only kTaggedSize aligned so in order to avoid undefined behavior in C++ code we have to access these values in an unaligned pointer friendly way although both x64 and arm64 architectures (where pointer compression is supported) allow unaligned access. These changes will be removed once v8:8875 is fixed and all the kSystemPointerSize fields are properly aligned. Bug: v8:7703 Change-Id: I4df477cbdeab806303bb4f675d52b61c06342c8e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528996 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60321}
-
Peter Marshall authored
This was unimplemented but is needed for Perfetto which posts delayed tasks on worker threads e.g. drain the trace buffer into a file every x seconds. This is implemented by adding a second queue which holds the delayed tasks in chronological order of 'next-to-execute'. We use an std::multimap for the queue so that we can easily get the next delayed task with begin(). The implementation will move delayed tasks into the main task queue when their deadline expires. Drive-by cleanup of the runner destructor which can just use = default. Bug: v8:8339 Change-Id: I3629c5d6e15ced2fc47eb1b7519a2dbbf8461fce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521114 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60320}
-
Igor Sheludko authored
... which can be used with STL algorithms. When pointer compression is enabled the [u]intptr_t and double fields are only kTaggedSize aligned so in order to avoid undefined behavior in C++ code we have to access these values in an unaligned pointer friendly way although both x64 and arm64 architectures (where pointer compression is supported) allow unaligned access. These changes will be removed once v8:8875 is fixed and all the kSystemPointerSize fields are properly aligned. Bug: v8:7703 Change-Id: If581fc00d63ae759c73b2a0f115331eea336605f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528995Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60319}
-
Benedikt Meurer authored
This change significantly improves the performance of string concatenation in optimized code for the case where the resulting string is represented as a ConsString. On the relevant test cases we go from serializeNaive: 10762 ms. serializeClever: 7813 ms. serializeConcat: 10271 ms. to serializeNaive: 10278 ms. serializeClever: 5533 ms. serializeConcat: 10310 ms. which represents a 30% improvement on the "clever" benchmark, which tests specifically the ConsString creation performance. This was accomplished via a couple of different steps, which are briefly outlined here: 1. The empty_string gets its own map, so that we can easily recognize and handle it appropriately in the TurboFan type system. This allows us to express (and assert) that the inputs to NewConsString are non-empty strings, making sure that TurboFan no longer creates "crippled ConsStrings" with empty left or right hand sides. 2. Further split the existing String types in TurboFan to be able to distinguish between OneByte and TwoByte strings on the type system level. This allows us to avoid having to dynamically lookup the resulting ConsString map in case of ConsString creation (i.e. when we know that both input strings are OneByte strings or at least one of the input strings is TwoByte). 3. We also introduced more finegrained feedback for the Add bytecode in the interpreter, having it collect feedback about ConsStrings, specifically ConsOneByteString and ConsTwoByteString. This feedback can be used by TurboFan to only inline the relevant code for what was seen so far. This allows us to remove the Octane/Splay specific magic in JSTypedLowering to detect ConsString creation, and instead purely rely on the feedback of what was seen so far (also making it possible to change the semantics of NewConsString to be a low-level operator, which is only introduced in SimplifiedLowering by looking at the input types of StringConcat). 4. On top of the before mentioned type and interpreter changes we added new operators CheckNonEmptyString, CheckNonEmptyOneByteString, and CheckNonEmptyTwoByteString, which perform the appropriate (dynamic) checks. There are several more improvements that are possible based on this, but since the change was already quite big, we decided not to put everything into the first change, but do some follow up tweaks to the type system, and builtin optimizations later. Tbr: mstarzinger@chromium.org Bug: v8:8834, v8:8931, v8:8939, v8:8951 Change-Id: Ia24e17c6048bf2b04df966d3cd441f0edda05c93 Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Doc: https://bit.ly/fast-string-concatenation-in-javascript Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1499497 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60318}
-
Michael Starzinger authored
This adds basic support and tests for having global variables of type "except_ref" that are default initialized to "null". The functionality is part of the exception handling proposal and solely enabled by the corresponding feature flag. R=ahaas@chromium.org TEST=mjsunit/wasm/exceptions-global BUG=v8:8091 Change-Id: I581bc942fbe6688a5c58790a842fb024de22d924 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528439 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#60317}
-
v8-ci-autoroll-builder authored
Rolling v8/test/wasm-js/data: https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+log/2f5d8e7..d51ec1b Reject the promise if reading the imports fails. (Ms2ger) https://chromium.googlesource.com/external/github.com/WebAssembly/spec/+/d51ec1b TBR=ahaas@chromium.org,clemensh@chromium.org Change-Id: I1af73510bc61e7c5cc9a68ed866a0cc7ef86e4d4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530193Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60316}
-
Michael Achenbach authored
This ports: https://crrev.com/c/1526276 TBR=tmrts@chromium.org Bug: chromium:855791 Change-Id: I1370b4f72a1aa22d3ec1c5c7ca4ff07fad306501 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528999Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Tamer Tas <tmrts@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60315}
-
Michael Achenbach authored
This is to mitigate current resource shortage on win7. TBR=tmrts@chromium.org Bug: chromium:943411 Change-Id: I9fae1c3ffe13d5e6c4318d63ddabd2e0d807d941 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529003Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Tamer Tas <tmrts@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60314}
-
Mike Stanton authored
If pointer compression is on, it makes sense to embed the map as a 32-bit constant, for direct comparison. No need to uncompress the receiver map. Bug: v8:8982 Change-Id: I285ca4d5b49b26536873776d298e18bcbf84b23e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518182Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#60313}
-
- 18 Mar, 2019 7 commits
-
-
Sven Sauleau authored
According to WebAssembly's thread proposal, the memory type is decided at the Object's creation and don't change over time. When growing a shared memory and the old buffer was marked as shared; setup the new buffer as shared as well. Bug: v8:8564 Change-Id: I7e59071d11b41315429232ae0c90436c6810bd0e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526012Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Sven Sauleau <ssauleau@igalia.com> Auto-Submit: Sven Sauleau <ssauleau@igalia.com> Cr-Commit-Position: refs/heads/master@{#60312}
-
Z Duong Nguyen-Huu authored
This is a part of effort to port Proxy-related builtins to Torque. Spec: https://tc39.github.io/ecma262/#sec-proxy-revocation-functions Bug: v8:6664 Change-Id: I283a4d8109a31c7e91f1cea8eb7a6e819e60b1cc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521921 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#60311}
-
Sathya Gunasekaran authored
This implements the behavior discussed and specified here: https://github.com/tc39/ecma262/issues/1461 https://github.com/tc39/ecma262/pull/1470 As part of making this change, I realized that we didn't actually toggle the behavior between the optimized and unoptimized version based on the --harmony-await-optimization flag at all and just the unoptimized version by default. This patch removes the unoptimized version and uses the optimized version as the default. The other builtins that use this flag are not touched as part of this CL, they will be updated separately. Bug: v8:8998 Change-Id: I315e1b39dda91d0127b5e567986485d713eaa78d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1525872 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#60310}
-
Andrew Comminos authored
Consumers can use this to derive the full stack from sampled leaf nodes without having to flatten the tree. Bug: v8:8999 Change-Id: I42c638dd2c757837b0c03514c204be0182653291 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1525877Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Alexei Filippov <alph@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#60309}
-
Ulan Degenbaev authored
Bug: chromium:852420 Change-Id: I9fd2353a3120c6d1566c1f74a581d005fd34ddae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528438Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60308}
-
Z Duong Nguyen-Huu authored
Bug: v8:8952 Change-Id: I07b3491e644634f9712e89d1566718084a3686d4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1518812Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Cr-Commit-Position: refs/heads/master@{#60307}
-
Pierre Langlois authored
Bug: v8:7327 Change-Id: I2a140cf79d3be83a34401f5e4a8033fd9d89568b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526011 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60306}
-