- 23 Aug, 2018 3 commits
-
-
Ben L. Titzer authored
This is a reland of b10a967f Original change's description: > [wasm] Add feature counter for threads and shared memory > > This adds a feature counter for WASM shared memory (i.e. the presence > of the "shared" bit in a WASM module's memory section) and the usage > of WASM threads opcodes (i.e. wake/wait and atomics). > > This CL also plumbs the WasmFeatures through the compilation pipeline > to detect features as functions are being compiled. > > R=ahaas@chromium.org, ulan@chromium.org > BUG=chromium:868844 > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: I854f932d3adb16e4fd87196fe2a193950295b856 > Reviewed-on: https://chromium-review.googlesource.com/1186329 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55337} Bug: chromium:868844 Change-Id: Iac3a38d80fa71aadd7147704669a8fd671ecfae8 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1186343 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#55363}
-
Maya Lekova authored
This reverts commit b10a967f. Reason for revert: Breaks a TSAN bot - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20TSAN/22122 Original change's description: > [wasm] Add feature counter for threads and shared memory > > This adds a feature counter for WASM shared memory (i.e. the presence > of the "shared" bit in a WASM module's memory section) and the usage > of WASM threads opcodes (i.e. wake/wait and atomics). > > This CL also plumbs the WasmFeatures through the compilation pipeline > to detect features as functions are being compiled. > > R=ahaas@chromium.org, ulan@chromium.org > BUG=chromium:868844 > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: I854f932d3adb16e4fd87196fe2a193950295b856 > Reviewed-on: https://chromium-review.googlesource.com/1186329 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55337} TBR=ulan@chromium.org,titzer@chromium.org,ahaas@chromium.org Change-Id: Id011b6707b3359598621b315b87171644132b0ab No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:868844 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1186421Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#55340}
-
Ben L. Titzer authored
This adds a feature counter for WASM shared memory (i.e. the presence of the "shared" bit in a WASM module's memory section) and the usage of WASM threads opcodes (i.e. wake/wait and atomics). This CL also plumbs the WasmFeatures through the compilation pipeline to detect features as functions are being compiled. R=ahaas@chromium.org, ulan@chromium.org BUG=chromium:868844 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I854f932d3adb16e4fd87196fe2a193950295b856 Reviewed-on: https://chromium-review.googlesource.com/1186329Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55337}
-
- 21 Aug, 2018 1 commit
-
-
Ben L. Titzer authored
R=mstarzinger@chromium.org Change-Id: Iacdff28dd1383d77d7708de4ee22d9f2a77d872a Reviewed-on: https://chromium-review.googlesource.com/1183440 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#55284}
-
- 02 Aug, 2018 1 commit
-
-
Ben L. Titzer authored
The wasm/ directory is inconsistent in many places, often within the same file. For all code that exists in a v8::internal::wasm namespace, this CL removes any wasm:: qualifiers, which is especially helpful since most types are already Wasm-named, such as WasmCode, WasmModule, etc. Namespace qualifiers are redundant inside the wasm:: namespace and thus go against the main point of using namespaces. Removing the qualifiers for non Wasm-named classes also makes the code somewhat more future-proof, should we move some things that are not really WASM-specific (such as ErrorThrower and Decoder) into a higher namespace. R=clemensh@chromium.org,mstarzinger@chromium.org Change-Id: Ibff3e1e93c64c12dcb53c46c03d1bfb2fb0b7586 Reviewed-on: https://chromium-review.googlesource.com/1160232 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54862}
-
- 31 Jul, 2018 1 commit
-
-
Michael Starzinger authored
This changes recording of compilation stats (i.e. code and reloc info size) for each code object individually after it is finished, instead of for the entire module. It avoids needed to iterate the code table which would race with background tasks performing tier-up. R=clemensh@chromium.org Change-Id: Ic196fccb38b069a07e79fed4633d01dfc2639cd7 Reviewed-on: https://chromium-review.googlesource.com/1156396 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54816}
-
- 20 Jul, 2018 1 commit
-
-
Michael Starzinger authored
R=titzer@chromium.org BUG=v8:7754 Change-Id: Icf17677a3ca3c9be153b68a9a6f939259e7b7b5f Reviewed-on: https://chromium-review.googlesource.com/1143263 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#54582}
-
- 19 Jul, 2018 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: Ib4f84d9b0bb2c54d5e1743c34b4034b14cb1152a Reviewed-on: https://chromium-review.googlesource.com/1143188Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54560}
-
- 16 Jul, 2018 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org BUG=v8:7424 Change-Id: I3055d4d98c108ce6e576f7171b8fae4e6b2c3948 Reviewed-on: https://chromium-review.googlesource.com/1131132 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54470}
-
- 12 Jul, 2018 1 commit
-
-
Clemens Hammacher authored
Currently the fuzzer only tests Turbofan and Liftoff in isolation. In order to test that both tiers use the same ABI, it should also test calls from one tier to the other. This CL introduces a new flag which controls which function will be compiled by which tier, and uses that in the fuzzer. R=ahaas@chromium.org Bug: chromium:862931, v8:6600 Change-Id: I450b906700972cfdb496b1734faed9f8208d652f Reviewed-on: https://chromium-review.googlesource.com/1134775 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#54409}
-
- 05 Jul, 2018 2 commits
-
-
Clemens Hammacher authored
This avoids the need for the finisher task (running on the foreground thread) for Liftoff code. This CL just makes the simple change to call {AddCode} from the background thread. More cleanup will follow in separate CLs. R=mstarzinger@chromium.org Bug: v8:6600, v8:7921 Change-Id: I99ef29377efee5be36ba203aa7ed71e2471d86f3 Reviewed-on: https://chromium-review.googlesource.com/1126930 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54266}
-
Clemens Hammacher authored
We can actually prepare everything in the background, all that remains to do in the finisher task (on the main thread) is actually adding the code to the {NativeModule}. As a next step, even that should happen in the background. R=mstarzinger@chromium.org Bug: v8:6600 Change-Id: I570f99a9aa7dc7e324046da36cca9b4297f1bc5e Reviewed-on: https://chromium-review.googlesource.com/1126391 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54239}
-
- 29 Jun, 2018 1 commit
-
-
Clemens Hammacher authored
R=mstarzinger@chromium.org Bug: v8:7754 Change-Id: I0cbd3e82a865aa2e52019057cea796cd6a8b17e2 Reviewed-on: https://chromium-review.googlesource.com/1118560 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54106}
-
- 04 Jun, 2018 1 commit
-
-
Michael Starzinger authored
This avoids embedding the {CEntryStub} into generated {WasmCode} and instead loads it from the instance object. It is another step towards making the generated code independent of the Isolate. R=clemensh@chromium.org BUG=v8:7472 Change-Id: Ic6ab7602a77fc11e6ec4a03e1bdba647d54df5e3 Reviewed-on: https://chromium-review.googlesource.com/1084841Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53491}
-
- 25 May, 2018 1 commit
-
-
Ben L. Titzer authored
R=mstarzinger@chromium.org Change-Id: I0976bfa57b9ec48fae2b912e78bacfee4f8eeafb Reviewed-on: https://chromium-review.googlesource.com/1072654 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53368}
-
- 23 May, 2018 1 commit
-
-
Michael Starzinger authored
By now we no longer call {CodeStub} targets directly from WebAssembly code and hence can remove support for serializing and deserializing such call sites. R=clemensh@chromium.org Change-Id: Ibfea9fce178d49f4e739a049a6767031da3c9569 Reviewed-on: https://chromium-review.googlesource.com/1066013 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53299}
-
- 14 May, 2018 1 commit
-
-
Clemens Hammacher authored
Liftoff currently does not support all asm.js code, and tier-up does not work with lazy compilation. Hence, disable Liftoff for asm.js in general. We will look at this later, when we have better tier-up. R=titzer@chromium.org Bug: v8:6600 Change-Id: I00d9e27d861067b22c0738ade7070538ee8c919c Reviewed-on: https://chromium-review.googlesource.com/1047245Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53158}
-
- 07 May, 2018 1 commit
-
-
jgruber authored
Stubs and builtins are very similar. The main differences are that stubs can be parameterized and may be generated at runtime, whereas builtins are generated at mksnapshot-time and shipped with the snapshot (or embedded into the binary). My main motivation for these conversions is that we can generate faster calls and jumps to (embedded) builtins callees from (embedded) builtin callers. Instead of going through the builtins constants table indirection, we can simply do a pc-relative call/jump. This also unlocks other refactorings, e.g. removal of CallRuntimeDelayed. TBR=mlippautz@chromium.org Bug: v8:6666 Change-Id: I4cd63477f19a330ec70bbf20e2af8a42fb05fabb Reviewed-on: https://chromium-review.googlesource.com/1044245Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53027}
-
- 27 Apr, 2018 1 commit
-
-
Ben L. Titzer authored
In the case of an indirect call to an imported function, the target instance stored in the IFT was actually wrong. Bug: chromium:834619 Change-Id: Id2ac4158335ecf2b58e1983ce37df852a9ebd1b2 Reviewed-on: https://chromium-review.googlesource.com/1030174 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52831}
-
- 26 Apr, 2018 1 commit
-
-
Vincent Belliard authored
When a liftoff function bails out after generating some constant pool, this avoids to trigger a check in the Assembler destructor. Bug: v8:6600 Change-Id: I79c595605bc0add1f3f5617ac7feedf162081d8a Reviewed-on: https://chromium-review.googlesource.com/1026647Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Vincent Belliard <vincent.belliard@arm.com> Cr-Commit-Position: refs/heads/master@{#52815}
-
- 24 Apr, 2018 1 commit
-
-
Kim-Anh Tran authored
Wasm tier-up first compiles the whole module using Liftoff, and then using Turbofan. The idea is to achieve fast start-up times by first running Liftoff-compiled code. In the meantime we finish compilation with Turbofan, and replace the Liftoff-compiled code as soon as Turbofan finished compilation, thus achieving high performance. Tier-up is enabled through the flag FLAG_wasm_tier_up. Bug: v8:6600 Change-Id: I70552969c53d909a591666a1e7ce1ee1419b2f34 Reviewed-on: https://chromium-review.googlesource.com/1010422 Commit-Queue: Kim-Anh Tran <kimanh@google.com> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52759}
-
- 19 Apr, 2018 1 commit
-
-
Clemens Hammacher authored
This refactoring is a big step towards separating Turbofan-related code from backend independent code. This will allow us to include way less headers from "src/compiler" at various places. The {WasmCompilationUnit} contained information for Turbofan compilation, and for Liftoff compilation. This CL tears this apart, such that {WasmCompilationUnit} holds backend-independent information, plus a pointer to either {LiftoffCompilationUnit} or {TurbofanWasmCompilationUnit}. These pointers are opaque, so that {function-compiler.h}, defining {WasmCompilationUnit}, does not need to include any Turbofan specific or Liftoff specific headers. R=ahaas@chromium.org, titzer@chromium.org, mstarzinger@chromium.org Bug: v8:7570, v8:6600 Change-Id: I024c9a23508ee1b4b3cbe1d068c8e785d732daca Reviewed-on: https://chromium-review.googlesource.com/1016640 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#52684}
-