- 29 May, 2017 3 commits
-
-
Clemens Hammacher authored
For lazy compilation, we encode information about table exports in the deoptimization data. This information is rebuilt on each instantiation, so we need to reset it when reusing code objects from another instance. R=ahaas@chromium.org BUG=chromium:727219 Change-Id: I90557ef06e692d0a8323223cac26679efcfa408b Reviewed-on: https://chromium-review.googlesource.com/517945Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45559}
-
Clemens Hammacher authored
It happens frequently that unrelated compiler errors lead to the instantiation of {read_leb_tail} with an invalid {byte_index}, which again triggers compiler errors. This change fixes this, such that illegal instantiation just triggers a static_assert and nothing more. This helps to spot the actual error. Drive-by: Mark {Min} and {Max} constexpr, such that they can produce constexpr results. Note that the result will only be constexpr if both arguments are constexpr. R=ahaas@chromium.org Change-Id: I35d6865a7f569d72ace0debb045ac615cfd87d92 Reviewed-on: https://chromium-review.googlesource.com/518005Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45558}
-
Clemens Hammacher authored
Parallel compilation should only be chosen if there are background threads available. Otherwise, the overhead of orchestrating (non-)parallel work can be omitted by just compiling synchronously. R=ahaas@chromium.org Change-Id: I333fb87e07fdb3260ab4c9c2c1885a1df4c5e4ef Reviewed-on: https://chromium-review.googlesource.com/513062Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45555}
-
- 26 May, 2017 1 commit
-
-
Clemens Hammacher authored
This removes a lot of special handling for the predictable platform. Instead of executing spawned foreground and background tasks immediately (i.e. inside the scope that spawns the tasks), just add both to the foreground task queue. This avoids existing special handling for predictable mode in wasm async compilation, and should fix current failures on the predictable bot. BUG=v8:6427 Change-Id: Idbaa764a3dc8c230c29f3937d885e12174691ac4 Reviewed-on: https://chromium-review.googlesource.com/509694Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45538}
-
- 24 May, 2017 3 commits
-
-
kschimpf authored
Creates a new class StatsCounterThreadSafe to be used by counters that can be updated when compiling/decoding etc. are done using workers. Does this by using a mutex on all opreations. Also updates the StatsCounterThreadSafe constructor to force counter initialization, as well as method Reset(). In addition, whenever the method StatsTable::SetCounterFunction() is called (from the main thread), it forces counter initialization for all thread safe stats counters. BUG=v8:6361 Review-Url: https://codereview.chromium.org/2887193002 Cr-Commit-Position: refs/heads/master@{#45526}
-
Mircea Trofin authored
This reverts commit ee3729d2. Reason for revert: The initial commit required https://chromium-review.googlesource.com/c/510021/ also land on the Blink side. I mistakenly thought it did. Original change's description: > Revert "[wasm] Remove override-ability from async compile and instantiate." > > This reverts commit 2869dd55. > > Reason for revert: Breaks: > https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/15850 > > See also: > https://github.com/v8/v8/wiki/Blink-layout-tests > > Original change's description: > > [wasm] Remove override-ability from async compile and instantiate. > > > > We're now using explicit APIs. > > > > Bug: > > Change-Id: I4a4248e44543f6e7dfcbdc66456e610fb98ff5ee > > Reviewed-on: https://chromium-review.googlesource.com/513406 > > Commit-Queue: Brad Nelson <bradnelson@chromium.org> > > Reviewed-by: Brad Nelson <bradnelson@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#45500} > > TBR=bradnelson@chromium.org,mtrofin@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Bug: > Change-Id: Ie7c2db40279bd07c535c20afaa1cea51b680fe65 > Reviewed-on: https://chromium-review.googlesource.com/513862 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45502} TBR=bradnelson@chromium.org,machenbach@chromium.org,mtrofin@chromium.org,v8-reviews@googlegroups.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: Change-Id: Ib826b590b5d362d005460fcebdc6800c8d6c5f63 Reviewed-on: https://chromium-review.googlesource.com/513496Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45519}
-
Michael Achenbach authored
This reverts commit 2869dd55. Reason for revert: Breaks: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/15850 See also: https://github.com/v8/v8/wiki/Blink-layout-tests Original change's description: > [wasm] Remove override-ability from async compile and instantiate. > > We're now using explicit APIs. > > Bug: > Change-Id: I4a4248e44543f6e7dfcbdc66456e610fb98ff5ee > Reviewed-on: https://chromium-review.googlesource.com/513406 > Commit-Queue: Brad Nelson <bradnelson@chromium.org> > Reviewed-by: Brad Nelson <bradnelson@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45500} TBR=bradnelson@chromium.org,mtrofin@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: Change-Id: Ie7c2db40279bd07c535c20afaa1cea51b680fe65 Reviewed-on: https://chromium-review.googlesource.com/513862Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#45502}
-
- 23 May, 2017 6 commits
-
-
Mircea Trofin authored
We're now using explicit APIs. Bug: Change-Id: I4a4248e44543f6e7dfcbdc66456e610fb98ff5ee Reviewed-on: https://chromium-review.googlesource.com/513406 Commit-Queue: Brad Nelson <bradnelson@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#45500}
-
jgruber authored
BUG=v8:5402 Review-Url: https://codereview.chromium.org/2900713004 Cr-Commit-Position: refs/heads/master@{#45486}
-
Michael Starzinger authored
This makes sure that property lookups on the provided imports object are non-observable to JavaScript. It allows instantiation failures to fall back to JavaScript proper without accidentally calling accessors twice. Also accessors might invalidate previous checks done during linking or throw exceptions. R=clemensh@chromium.org TEST=mjsunit/regress/regress-crbug-719384 BUG=chromium:719384 Change-Id: I3db2672d2a496110f705d02b82878e70cd5d701f Reviewed-on: https://chromium-review.googlesource.com/509552Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45481}
-
Clemens Hammacher authored
Validation normally happens while generating the turbofan graph of a wasm function. For lazy compilation (behind the flag --wasm-lazy-compilation), we skip this graph generation step during module generation. Thus we need to validate explicitely. R=ahaas@chromium.org BUG=chromium:724851 Change-Id: Ic70887c0d823460a272d0bb636dc98b2b7a7e55e Reviewed-on: https://chromium-review.googlesource.com/509574Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45478}
-
Andreas Haas authored
The validation of utf8 strings in WebAssembly modules used the character kBadChar = 0xFFFD to indicate a validation error. However, this character can appear in a valid utf8 string. This CL fixes this problem by duplicating some of the code in {Utf8::CalculateValue} and inlining it directly into Utf8::Validate. Note that Utf8::Validate is used only for WebAssembly. Tests for this change are in the WebAssembly spec tests, which I will update in a separate CL. R=vogelheim@chromium.org Change-Id: I8697b9299f3e98a8eafdf193bff8bdff90efd7dc Reviewed-on: https://chromium-review.googlesource.com/509534Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45476}
-
Mircea Trofin authored
Security feature: pick compiled functions randomly Bug: v8:6417 Change-Id: Ibcef9ba94e3730a47cd43d2a59b23d5cee3fad40 Reviewed-on: https://chromium-review.googlesource.com/511842 Commit-Queue: Brad Nelson <bradnelson@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#45472}
-
- 22 May, 2017 5 commits
-
-
Clemens Hammacher authored
If the maximum number of memory pages is raised using --wasm-max-mem-pages, we might allocate more than kMaxInt bytes for wasm memory. The byte length is stored as int in JSArrayBuffer, hence this can lead to failures. Thus, we now additially check against kMaxInt, and fail instantiation if this check fails. Drive-by: Add/fix more bounds checks. R=ahaas@chromium.org BUG=chromium:724846 Change-Id: Id8e1a1e13e15f4aa355ab9414b4b950510e5e88a Reviewed-on: https://chromium-review.googlesource.com/509255Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45465}
-
Clemens Hammacher authored
It was used before as a placeholder in Result<DecodeStruct*> to communicate that no value was returned. We actually only created a Results holding {nullptr} when returning such values. Thus, the whole struct is not needed, and we return Result<nullptr_t> instead, which clearly communicates that this result does not hold any value. An alternative would be to use Result<void>, but this would require partial specialization of the Result template, which would be overkill here. R=ahaas@chromium.org Change-Id: Ib07d2c4fe716c735839675d11146c47f97997d40 Reviewed-on: https://chromium-review.googlesource.com/509551Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45464}
-
Wiktor Garbacz authored
Change-Id: I20ed35a7fb5104a9cc66bb54fa8966589c43d7f9 Reviewed-on: https://chromium-review.googlesource.com/507287Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Daniel Clifford <danno@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Jochen Eisinger <jochen@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45458}
-
Andreas Haas authored
With this CL we do not spawn a FinishCompilationUnit foreground task for every WebAssembly function we compile, but instead spawn one foreground task which finishes all existing compilation units (FinishCompilationUnits). A new FinishCompilationUnits task is spawned whenever a compilation task sees that there in no FinishCompilationUnits to finish its compilation unit. In addition the FinishCompilationUnits task gets a time limit. Whenever it is executed for longer than 1ms (this value is also used by the GC), then the task stops and reschedules itself. Thereby we make sure that we do not block the main thread for too long. Change-Id: Ib4f2aed91c60f9c8952b6ba4dd7e5052301417a3 Reviewed-on: https://chromium-review.googlesource.com/508708 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45449}
-
Jochen Eisinger authored
R=danno@chromium.org CC=sshruthi@chromium.org TBR=verwaest@chromium.org,bmeurer@chromium.org,yangguo@chromium.org,rossberg@chromium.org Change-Id: I32e09193fa6e847ac3336eab62b6d85c46d71164 Reviewed-on: https://chromium-review.googlesource.com/509508 Commit-Queue: Jochen Eisinger <jochen@chromium.org> Reviewed-by:
Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#45447}
-
- 19 May, 2017 3 commits
-
-
Eric Holk authored
The WebAssembly code now uses these new APIs to allocate memory with guard regions. Guarded array buffers are no longer always external, which eliminates a lot of special cases around WebAssembly memory. Bug: chromium:720302 Change-Id: I355b74ac30a05a18c8b363bd256d57458742849f Reviewed-on: https://chromium-review.googlesource.com/505715Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Commit-Queue: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#45436}
-
Michael Starzinger authored
This fixes crashes during validation when trying to construct modules with excessively large function tables. The {WasmModuleBuilder} now gracefully checks against existing WebAssembly implementation limits. R=clemensh@chromium.org TEST=mjsunit/regress/regress-crbug-715455 BUG=chromium:715455 Change-Id: Ia9738cb0b49a1eb4caf073b75301c0303f295699 Reviewed-on: https://chromium-review.googlesource.com/509530 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45429}
-
Michael Starzinger authored
This simplifies the growing strategy used in {ZoneBuffer} and also tunes the initial sizes used for various instances of these buffers. Note that such a {ZoneBuffer} is used for entire modules and individual function bodies. R=clemensh@chromium.org Change-Id: I99a0898589984e1830c681845fabb0ed5f8317ab Reviewed-on: https://chromium-review.googlesource.com/508711 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45419}
-
- 18 May, 2017 1 commit
-
-
Mircea Trofin authored
As per spec, (https://github.com/WebAssembly/design/pull/1068), we don't have compile/instantiate overloads anymore, instead, we have explicitly named members. This change introduces the new APIs, implements instantiateStreaming based on compileStreaming, and uses the existing embedder mechanism. It does not yet remove the functionality from compile/instantiate - we do that after we adopt the new APIs on the blink side. Also, it temporarily handles exceptions on the v8 side, which is also something we'll move to the blink side. Bug: Change-Id: I77673b1c0d395dfcf13b2f25464fd5dfd99c8d82 Reviewed-on: https://chromium-review.googlesource.com/508852 Commit-Queue: Brad Nelson <bradnelson@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#45411}
-
- 17 May, 2017 4 commits
-
-
Andreas Haas authored
This CL refactors the module decoder so that it can process a list of section buffers instead of one module buffer. This change is needed for streaming compilation. Streaming compilation may require additional changes. This CL introduces the following interface to the module decoder: StartDecoding -- starts the decoding DecodeModuleHeader -- decodes the module header DecodeSection -- decodes the section FinishDecoding -- finishes the decoding and returns the WasmModule Aside from the different interface the biggest change to the module decoder is the introduction of a buffer_offset, which is the offset of the current section buffer of the module decoder in the module bytes. This buffer_offset is used to translate from section offsets to module offsets and back. Another nice change is that the module decoder does not have a zone anymore. Instead the zone is stored directly in the WasmModule where it belongs. Zone ownership is also more obvious now. R=mtrofin@chromium.org, clemensh@chromium.org Change-Id: I815d777ec380f4c617c39e828ea0c9746c0bae20 Reviewed-on: https://chromium-review.googlesource.com/505490 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45374}
-
Michael Starzinger authored
R=ahaas@chromium.org Change-Id: If0001d1b829540d76a3cef54a495322ca624d030 Reviewed-on: https://chromium-review.googlesource.com/507227Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45373}
-
Clemens Hammacher authored
The underlying issue is that TF Nodes cannot handle input counts outside the integer range. On an illegal br_table instruction, we generated a switch node with a control output count >kMaxInt. Operator::ControlOutputCount turned this into a negative integer later, leading to a failing DCHECK. Since such large numbers cannot occur in any valid wasm function anyway, we just add an additional check to the br table count. There is already a TODO in the code to change Operator::ControlOutputCount to size_t. R=ahaas@chromium.org BUG=chromium:722445 Change-Id: I1975072226e073dee6c8da3b9fa9a050a4695917 Reviewed-on: https://chromium-review.googlesource.com/505496Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45365}
-
Clemens Hammacher authored
The interpreter does not implement all asm.js specific opcodes. Thus the combination of --validate-asm and --wasm-interpret-all might crash. The interpreter does not need to execute asm.js modules, as they are debugged by executing them in turbofan instead of the wasm interpreter. This CL thus excludes asm.js modules from --wasm-interpret-all. R=ahaas@chromium.org BUG=chromium:719175 Change-Id: I14228ea11ee3ea8a229cfa6e4179338a442b6cca Reviewed-on: https://chromium-review.googlesource.com/506160 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45364}
-
- 15 May, 2017 1 commit
-
-
Clemens Hammacher authored
Speed up LEB decoding by forcing the decoding loop to be unrolled. Even though the compiler was free to unroll the loop before, clang did not do so. We now manually unroll by using a template function which calls itself recursively, passing the byte index to be decoded next. For efficient execution, we still depend on the compiler to inline the recursive calls (which clang does). This optimization speeds up interpreted execution of the Jetstream benchmarks by 15 percent. Speedup on module decoding is negligible though. Drive-by: Change "unsigned" to "uint32_t". R=ahaas@chromium.org BUG=v8:5822 Change-Id: I06d4230f92bfb2a80cdc5029d965fc3bf84ca1cc Reviewed-on: https://chromium-review.googlesource.com/506188 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45308}
-
- 12 May, 2017 4 commits
-
-
ivica.bogosavljevic authored
TEST=wasm-spec-tests/tests/set_local,wasm-spec-tests/tests/imports BUG= Review-Url: https://codereview.chromium.org/2859223004 Cr-Commit-Position: refs/heads/master@{#45279}
-
Michael Starzinger authored
This makes sure that the order of exports as they appear in asm.js modules is maintained globally (not just per function) while being translated to a WASM module. R=clemensh@chromium.org TEST=mjsunit/asm/asm-validation BUG=chromium:720586 Change-Id: I8b26d717ae2f88467d41670bced901f196c7b3fc Reviewed-on: https://chromium-review.googlesource.com/503708 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45277}
-
Mircea Trofin authored
Bug: Change-Id: Ic5b96bfb6b8b468434c06aed5e12b4ddb278dd08 Reviewed-on: https://chromium-review.googlesource.com/503440 Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Commit-Queue: Brad Nelson <bradnelson@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#45270}
-
Mircea Trofin authored
Conf. c++ coding guide (https://chromium.googlesource.com/chromium/src/+/master/styleguide/c++/c++.md#Types), we may use size_t for vector indices, etc. Bug: Change-Id: I578fb4199c061b006d03e1cc68e745868b40c227 Reviewed-on: https://chromium-review.googlesource.com/503590 Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#45267}
-
- 11 May, 2017 4 commits
-
-
Andreas Haas authored
The error_pc was only used to calculated the relative error offset. Switching to an error_offset directly will allow us later to give the decoder a base offset. Thereby we can get correct error positions even when the decoder is executed on multiple memory chunks, which will happen with streaming compilation. With this change I also had to provide "kind of" reasonable error position in the StreamingDecoder. R=clemensh@chromium.org Change-Id: I736fa082c51c64334d23771061acf97e2c47778e Reviewed-on: https://chromium-review.googlesource.com/502909 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45264}
-
Clemens Hammacher authored
std::vector can never store const types, as the stored type has to be either copy-constructable or move-constructable. std::vector<const X> does not compile and makes no sense if you think about it. Thus remove the TODO to use such a vector. R=ahaas@chromium.org Change-Id: Ieb00a31872f04c720d2ef90b70452c18e79f0a5d Reviewed-on: https://chromium-review.googlesource.com/503148 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#45260}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: I5c37cdf4f11ff7062e6af8c7af5b6eabf1baedad Reviewed-on: https://chromium-review.googlesource.com/503207Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45253}
-
Andreas Haas authored
This CL implements a streaming decoder which takes the bytes of a wasm module as an input, potentially split into multiple chunks, and decodes them into segments. Each segment either contains the payload of a whole section, or the code of a single function. The goal is that the streaming decoder is used for streaming compilation. That's where the interface comes from, see (https://cs.chromium.org/chromium/src/v8/include/v8.h?q=OnBytesReceived&sq=package:chromium&l=4060) Error positions are not reported correctly at the moment. I plan to do this in a separate CL. Change-Id: I6e3df6a91945c7baec2dc4f5de2e5f47636083df Reviewed-on: https://chromium-review.googlesource.com/471350 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45250}
-
- 10 May, 2017 1 commit
-
-
gdeepti authored
- Currently if GrowMemory is called with pages = 0, an attempt is made to unregister the ArrayBuffer even if it is external. Cleanup so all Detaching of ArrayBuffer is centralized to one method, and can only be called fromJS. - Gate creating WeakHandles to the memory on the buffer having guard pages enabled. Currently creating a WeakHandle is gated only on if the buffer is_external true. If a buffer is marked is_external = true to begin with, the WeakHandle is created and the Finalizer is run causing the program to crash. BUG=chromium:717647 Review-Url: https://codereview.chromium.org/2867233002 Cr-Commit-Position: refs/heads/master@{#45238}
-
- 09 May, 2017 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: Ifa9f0f510bc5b864ebba199603919adb6a35d3a1 Reviewed-on: https://chromium-review.googlesource.com/500267Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45190}
-
- 08 May, 2017 3 commits
-
-
kschimpf authored
The code for UMA stats (in counters.h) is not thread safe, and can lead to using pointers with uninitialized values. Therefore, this CL turns them off when compiling asynchronously. It also turns back on several UMA stats that were previously turned off, but no longer need to because the code now knows if it is running synchronously. BUG=v8:6361 Review-Url: https://codereview.chromium.org/2864583004 Cr-Commit-Position: refs/heads/master@{#45168}
-
Clemens Hammacher authored
Another fix for more explicit management of ownership. The CompilationHelper now always owns the WasmModule, and transfers ownership to the generated WasmModuleWrapper (a Managed<WasmModule>) once that object is created. Since the stored uniqe_ptr cannot be accessed any more after this transfer, the creation of the WasmModuleWrapper is delayed until it is really needed (step 5 in async compilation). R=ahaas@chromium.org Change-Id: I22dea2e14a364ddf76751d97bd0d736a4c0ceff4 Reviewed-on: https://chromium-review.googlesource.com/498507Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45164}
-
Clemens Hammacher authored
Since the wasm module is verified before starting execution with lazy compilation, the compilation of individual functions should not fail later. This CL changes the implementation to check this condition earlier and removes unused error paths. R=ahaas@chromium.org, mstarzinger@chromium.org BUG=chromium:719286 Change-Id: If4bab457a47f214b457b2e2bc8570cba8c8bbcfd Reviewed-on: https://chromium-review.googlesource.com/497755Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45161}
-