- 02 Feb, 2018 1 commit
-
-
jgruber authored
This check verifies that all .h files in the src/ directory have an include guard of the form #ifndef V8_PATH_TO_FILE_H_ #define V8_PATH_TO_FILE_H_ // ... #endif // V8_PATH_TO_FILE_H_ The check can be skipped with a magic comment: // PRESUBMIT_INTENTIONALLY_MISSING_INCLUDE_GUARD Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I0a7b96abec289ad60f64ba8418f1892a6969596d Reviewed-on: https://chromium-review.googlesource.com/897487Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51079}
-
- 16 Jan, 2018 1 commit
-
-
Clemens Hammacher authored
Both tables are always updated together and are always accessed together. Thus merge them, reducing code complexity, but also code space and overhead for accessing them during runtime. Instead of two weak global handles, we only need one, which also means one less load for each indirect call. Merging them also improves cache locality, since signature and code address are not stored next to each other in memory, so they will very likely end up in the same cache line. R=titzer@chromium.org Change-Id: I862df7de93a98aa602a3895796610c2c520d6f21 Reviewed-on: https://chromium-review.googlesource.com/866868 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#50623}
-
- 20 Dec, 2017 1 commit
-
-
Mircea Trofin authored
Bug: chromium:796584 Change-Id: Ib6a62d616d36344f35cad0b0a177f8f07c7fd2ac Reviewed-on: https://chromium-review.googlesource.com/836849Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#50244}
-
- 18 Dec, 2017 2 commits
-
-
Clemens Hammacher authored
The interface of {WasmCompiledModule} currently mostly receives and provides handles to the contained data. Other interfaces don't (see {object-macros.h}. This leads to performance and memory overhead for chained accesses like {instance->compiled_module()->shared()->script()}, because intermediate accessors allocate Handles for no reason. It also breaks the constraints that lower-case accessors should be trivial to execute, but allocating a handle is not trivial (should not be done in a loop if not needed). It also silences gcmole errors, as documented in https://crrev.com/c/832268. R=ahaas@chromium.org, mtrofin@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ib82fb295977a47b4a8ab9bae9c9b6e2b235ad5e5 Reviewed-on: https://chromium-review.googlesource.com/832387 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#50173}
-
Clemens Hammacher authored
We had a number of accessors defined on {WasmCompiledModule}, which redirected to {WasmSharedModuleData}. This is uncommon in the code base and hides where information is really stored. This CL removes them and accesses information directly from the {WasmSharedModuleData} instead. R=ahaas@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I54fce75dbf7dcb2f16dcf13e4634b5618225a429 Reviewed-on: https://chromium-review.googlesource.com/831510Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50157}
-
- 25 Oct, 2017 1 commit
-
-
Ben L. Titzer authored
R=clemensh@chromium.org Bug: Change-Id: I0c92aa07e10dcd1e9d9fd34dcaf23885076721b0 Reviewed-on: https://chromium-review.googlesource.com/735724 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#48922}
-
- 16 Oct, 2017 1 commit
-
-
Ben L. Titzer authored
This CL removes the code specialization for WASM functions that access globals. Previously, we were embedding the start address of the globals memory (globals_start) as a constant in the code, which required patching for every instance. We now put this base in to the WasmContext, which is available as a parameter to every WasmFunction. R=ahaas@chromium.org, CC=mtrofin@chromium.org Bug: Change-Id: I04bb739e898cc5a3b7dd081cc166483022d113fd Reviewed-on: https://chromium-review.googlesource.com/712595 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#48581}
-
- 28 Sep, 2017 1 commit
-
-
Enrico Bacis authored
The WasmContext struct introduced in this CL is used to store the mem_size and mem_start address of the wasm memory. These variables can be accessed at C++ level at graph build time (e.g., initialized during instance building). When the GrowMemory runtime is invoked, the context variables can be changed in the WasmContext at C++ level so that the generated code will load the correct values. This requires to insert a relocatable pointer only in the JSToWasmWrapper (and in the other wasm entry points), the value is then passed from function to function as an automatically added additional parameter. The WasmContext is then dropped when creating an Interpreter Entry or when invoking a JavaScript function. This removes the need of patching the generated code at runtime (i.e., when the memory grows) with respect to WASM_MEMORY_REFERENCE and WASM_MEMORY_SIZE_REFERENCE. However, we still need to patch the code at instance build time to patch the JSToWasmWrappers; in fact the address of the WasmContext is not known during compilation, but only when the instance is built. The WasmContext address is passed as the first parameter. This has the advantage of not having to move the WasmContext around if the function does not use many registers. This CL also changes the wasm calling convention so that the first parameter register is different from the return value register. The WasmContext is attached to every WasmMemoryObject, to share the same context with multiple instances sharing the same memory. Moreover, the nodes representing the WasmContext variables are cached in the SSA environment, similarly to other local variables that might change during execution. The nodes are created when initializing the SSA environment and refreshed every time a grow_memory or a function call happens, so that we are sure that they always represent the correct mem_size and mem_start variables. This CL also removes the WasmMemorySize runtime (since it's now possible to directly retrieve mem_size from the context) and simplifies the GrowMemory runtime (since every instance now has a memory_object). R=ahaas@chromium.org,clemensh@chromium.org CC=gdeepti@chromium.org Change-Id: I3f058e641284f5a1bbbfc35a64c88da6ff08e240 Reviewed-on: https://chromium-review.googlesource.com/671008 Commit-Queue: Enrico Bacis <enricobacis@google.com> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#48209}
-
- 08 Sep, 2017 2 commits
-
-
Aseem Garg authored
This is revert of commit aee1e1fb with the fix for A1 and N6 jetstream failure. R=bradnelson@chromium.org,mtrofin@chromium.org,clemensh@chromium.org Bug: chromium:750828 Change-Id: Id38896af51315f76a0667ace32c77a2ba7287eec Reviewed-on: https://chromium-review.googlesource.com/607092 Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#47910}
-
Mircea Trofin authored
The previous design assumed we can't possibly have a cycle involving an instance, however, we can. For example: a script can reference an instance, which ends up referencing the native context because of how we generate wasm-to-js wrappers; that references the global object, which then references the script. A global handle to the indirect function table can then root such a cycle. That means the instance is never collected, which never deletes the global handle. This change addresses that by making the handles weak. Bug: Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ief7263af83974bf96505a4fba65d162474fe7c7c Reviewed-on: https://chromium-review.googlesource.com/653852 Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Reviewed-by:
Aseem Garg <aseemgarg@chromium.org> Cr-Commit-Position: refs/heads/master@{#47909}
-
- 31 Aug, 2017 1 commit
-
-
Michael Lippautz authored
heap-inl.h exposes the whole world, which is fine from other inline files but not from regular headers. Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I09ec67c6558682cb0d5181031bc39341a3f4c5bf Reviewed-on: https://chromium-review.googlesource.com/643294Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47729}
-