- 24 Jan, 2019 10 commits
-
-
Daniel Bratell authored
After the v8:8689 "Split compilation in three stages" commit landed, WasmCompilationUnit::result_ was left dangling. In builds that noticed this (in particular certain jumbo builds), the -Wunused-private-field warning triggered which broke the build. Bug: v8:8689 Change-Id: Iafc56b3dc6bb53e2e8417cabce540c2fcfd3431a Reviewed-on: https://chromium-review.googlesource.com/c/1433780 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59059}
-
Anna Henningsen authored
Other platforms besides ARM64 Windows may also have alignment requirements, e.g. PPC and s390. These requirements may affect both the code pointer field and the size field, and so they each need alignment directives because they are stored in different sections. Since aligning wastes a handful of bytes at most, not making alignment conditional on the platform type seems like a good idea. Refs: https://github.com/nodejs/node/pull/24875 Change-Id: I1f58606af294be65e74a1f107cd05fc21e032704 Reviewed-on: https://chromium-review.googlesource.com/c/1433778 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59058}
-
Maya Lekova authored
This CL implements handling of Call/ConstructWithSpread bytecodes by passing empty hints for the parameters mapped to the spread argument. R=neis@chromium.org Bug: v8:7790 Change-Id: I00f4e87e7bf62c3f387ee92d9aa4d252bdf79838 Reviewed-on: https://chromium-review.googlesource.com/c/1429864 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59057}
-
Tamer Tas authored
loading every test up-front into the processing queue costs about 224MB for a x64 testsuite run. This CL eliminates that overhead by utilizing generators and threading. LoadingProc now loads test after receiving the results of the loaded tests. R=machenbach@chromium.org CC=yangguo@chromium.org,sergiyb@chromium.org Bug: v8:8174 Change-Id: I8f4e6de38430c54fe126e4504b52851866769efb Reviewed-on: https://chromium-review.googlesource.com/c/1420678 Commit-Queue: Tamer Tas <tmrts@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#59056}
-
Michael Lippautz authored
v8::Global may be used as a weak reference. In the case this reference is a simple phantom reference, we need to update the internal state to be able to clear the right slot once the object referred to is dead. This reverts commit 18f32ca8. Bug: chromium:924220 Change-Id: I3caec77448b0c5fcb461c8f8b5015de2978b3931 Reviewed-on: https://chromium-review.googlesource.com/c/1430015Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#59055}
-
Yang Guo authored
R=machenbach@chromium.org NOTRY=true Change-Id: I8c861a051c8b75d3c631e7dedded5746ea9151d7 Reviewed-on: https://chromium-review.googlesource.com/c/1430066 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#59054}
-
Daniel Bratell authored
If __FILE__ contained a backslash (which happened in jumbo builds on Windows), then the generated embedded.S could contain broken strings. This replaces backslashes with forward slashes before writing the paths to embedded.S. Bug: v8:8418,chromium:924454 Change-Id: I32134e9cd8acd2437f61a8f74c14583fa87a4bdf Reviewed-on: https://chromium-review.googlesource.com/c/1430699Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Daniel Bratell <bratell@opera.com> Cr-Commit-Position: refs/heads/master@{#59053}
-
Daniel Clifford authored
This requires honoring the instance size of the object stored in the map for JSObject. To do this, allocation is now split into two instrinsics, one that calculates the base size of the allocated object (%GetAllocationBaseSize) and one that actually allocates (%Allocate). In the process, remove objects.tq, which only existed to contain a macro to fetch the default JSObject map, which is functionality that is now in the JSObject class constructor. Bug: v8:7793 Change-Id: I426a7943aac67eacad46d4ff39f5c821489a04bc Reviewed-on: https://chromium-review.googlesource.com/c/1426959 Commit-Queue: Daniel Clifford <danno@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59052}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/f2ca77c..59bf3c6 Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/dd2de38..b9dbf6c Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/f797143..695e7cf TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org Change-Id: Iaf4ffdc4bfb57cff57fc7de3d83a143c5b3e45fd Reviewed-on: https://chromium-review.googlesource.com/c/1432649Reviewed-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@{#59051}
-
Frank Tang authored
Bug: v8:8704 Change-Id: Ib0548a6aa9f4b148d412de5632c1652f529371fa Reviewed-on: https://chromium-review.googlesource.com/c/1424021 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#59050}
-
- 23 Jan, 2019 30 commits
-
-
Farazmand authored
using add insetad of addi when Operand is more than 16 bits long Change-Id: I7f9452381ed8b321ec71e68d0d90485508b69885 Reviewed-on: https://chromium-review.googlesource.com/c/1430619 Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#59049}
-
peterwmwong authored
This is part of an effort to improve the performance of TA#subarray. Bug: v8:7161 Change-Id: I1579ee45a810e1f2d0279fef9e18bad09e1fc3d9 Reviewed-on: https://chromium-review.googlesource.com/c/1426107Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59048}
-
Junliang Yan authored
Need to zero/sign-ext input register before comparison R=joransiu@ca.ibm.com Change-Id: I3e2909d76d54c6ad5ae55114d0c501615f89184a Reviewed-on: https://chromium-review.googlesource.com/c/1430620Reviewed-by: Joran Siu <joransiu@ca.ibm.com> Commit-Queue: Junliang Yan <jyan@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#59047}
-
Maya Lekova authored
This reverts commit 584f0b43. Reason for revert: Breaks MSAN build - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/24872 Original change's description: > [api, global-handles] Fix moving weak Global<T> > > v8::Global may be used as a weak reference. In the case this reference is a > simple phantom reference, we need to update the internal state to be able to > clear the right slot once the object refered to is dead. > > Bug: chromium:924220 > Change-Id: I2ab7c3afcbe22988791faef406c284db03a43caf > Reviewed-on: https://chromium-review.googlesource.com/c/1430101 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59040} TBR=ulan@chromium.org,mlippautz@chromium.org Change-Id: I19c3e929962203df4e1f24191d054180723b1c9d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:924220 Reviewed-on: https://chromium-review.googlesource.com/c/1430833Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#59046}
-
Tamer Tas authored
Testrunner has ancient support for JUnit compatible XML output. This CL removes this old feature. R=mstarzinger@chromium.org,jgruber@chromium.org,jkummerow@chromium.org CC=machenbach@chromium.org Bug: v8:8728 Change-Id: I7e1beb011dbaec3aa1a27398a5c52abdd778eaf0 Reviewed-on: https://chromium-review.googlesource.com/c/1430065Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Tamer Tas <tmrts@chromium.org> Cr-Commit-Position: refs/heads/master@{#59045}
-
Toon Verwaest authored
Also insert NestedVariableDeclarations in the preparser if they occur. This should be uncommon enough to not hurt preparser performance. This will also allow us to stop checking for conflicts on already preparsed code. Since the preparser itself will mainly run off the main thread, this can allow us to free some main-thread time. Bug: v8:7829, v8:8706 Change-Id: I03f2690eb7b22e941995d6f2697e64211ddbeffb Reviewed-on: https://chromium-review.googlesource.com/c/1430069Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59044}
-
Andreas Haas authored
For the reference types anyref, anyfunc, and nullref, there exist sub-typing rules. The spec says A reference type reftype1 matches a reference type reftype2 if and only if: * Either both reftype1 and reftype2 are the same. * Or reftype1 is nullref. * Or reftype2 is anyref. This CL introduces the type nullref for ref-null, and implements the sub-typing rules in the function-body-decoder. Note that because of the sub-typing check validation performance may regresses. In that case we can optimize the sub-typing check. R=titzer@chromium.org, clemensh@chromium.org Bug: v8:7581 Change-Id: I55bab72a109f3374da3770d141b0fc8067aad8b2 Reviewed-on: https://chromium-review.googlesource.com/c/1430061 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59043}
-
Mike Stanton authored
Change-Id: I3a60be25b9c7daadcad6078447348b790b249e1c Reviewed-on: https://chromium-review.googlesource.com/c/1402774 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59042}
-
Jakob Gruber authored
For jitless mode, we must be able to switch between the native regexp engine and interpreted regexps at runtime since --jitless is itself a runtime flag. This CL unconditionally compiles in the regexp interpreter in all builds. It can be toggled through the --regexp-interpret-all flag. Bug: v8:7777, v8:8678 Change-Id: Iadd21a152de7c07586d5af32bee5fdf9931f1a01 Reviewed-on: https://chromium-review.googlesource.com/c/1408929 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#59041}
-
Michael Lippautz authored
v8::Global may be used as a weak reference. In the case this reference is a simple phantom reference, we need to update the internal state to be able to clear the right slot once the object refered to is dead. Bug: chromium:924220 Change-Id: I2ab7c3afcbe22988791faef406c284db03a43caf Reviewed-on: https://chromium-review.googlesource.com/c/1430101 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#59040}
-
Tobias Tebbi authored
This reverts commit c5154eea. Reason for revert: Broke ASAN bot Original change's description: > [build][torque] remove workarounds for clang bug > > Now that https://bugs.llvm.org/show_bug.cgi?id=40118 has been fixed and > rolled into V8, we can remove the workarounds for this Clang bug. > > This also effectively reverts > https://chromium-review.googlesource.com/c/v8/v8/+/1280222 > > Bug: chromium:893437 > Change-Id: Ia0d6d8ebdafafbc380b1b7a7809ef16effe50d71 > Reviewed-on: https://chromium-review.googlesource.com/c/1425519 > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58987} TBR=jarin@chromium.org,tebbi@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:893437 chromium:924534 Change-Id: Idfc266c11e3413334a12694dd573bdecf5427890 Reviewed-on: https://chromium-review.googlesource.com/c/1430067Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59039}
-
Andreas Haas authored
The implementation already exists, but the test doesn't. R=titzer@chromium.org Bug: v8:7581 Change-Id: I42e1b0a1c930ec4cc1f1701d5613828acab4fc30 Reviewed-on: https://chromium-review.googlesource.com/c/1426123Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#59038}
-
Ben L. Titzer authored
The table.init bytecode copies a range of elements from an element segment into a table, trapping if the segment is not passive, is dropped, or would cause out-of-bounds accesses. R=mstarzinger@chromium.org CC=binji@chromium.org BUG=v8:7747 Change-Id: Ib27af9cca45a464fd1f876ddd092e99941481896 Reviewed-on: https://chromium-review.googlesource.com/c/1430063 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59037}
-
Camillo Bruni authored
Directly access the std::vector buffer backing store to write bytes. By reserving enough space upfront we can avoid many superflous bounds checks that were previously necessary when using push_back. Change-Id: I9b2fb467809e40743b0d9409c9cccb0c6f36f8c1 Reviewed-on: https://chromium-review.googlesource.com/c/1425910 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59036}
-
Clemens Hammacher authored
This is a reland of 92d9b09c. Patch unchanged, errors fixed by https://crrev.com/c/1430059. Original change's description: > [wasm] Decouple background compile jobs from NativeModule > > Background compile jobs should not keep the NativeModule alive, for two > reasons: > 1) We sometimes have to wait for background compilation to finish (from > a foreground task!). This introduces unnecessary latency. > 2) Giving the background compile tasks shared ownership of the > NativeModule causes the NativeModule (and the CompilationState) to > be freed from background tasks, which is error-prone (see > https://crrev.com/c/1400420). > > Instead, this CL introduces a BackgroundCompileToken which is held > alive by the NativeModule and all background compile jobs. The initial > and the final phase of compilation (getting and submitting work) > synchronize on this token to check and ensure that the NativeModule is > and stays alive. During compilation itself, the mutex is released, such > that the NativeModule can die. > The destructor of the NativeModule cancels the BackgroundCompileToken. > Immediately afterwards, the NativeModule and the CompilationState can > die. > > This change allows to remove two hacks introduced previously: The atomic > {aborted_} flag and the {FreeCallbacksTask}. > > R=mstarzinger@chromium.org > CC=titzer@chromium.org > > Bug: v8:8689, v8:7921 > Change-Id: I42e06eab3c944b0988286f2ce18e3c294535dfb6 > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel > Reviewed-on: https://chromium-review.googlesource.com/c/1421364 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59020} TBR=mstarzinger@chromium.org Bug: v8:8689, v8:7921 Change-Id: Iead972ef77c8503da7246cab48e7693b176d8f02 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/1429862Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59035}
-
Andreas Haas authored
R=titzer@chromium.org Change-Id: I45693c7bc7600dde4d01d1130f3be1641c5e9250 Reviewed-on: https://chromium-review.googlesource.com/c/1430102Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#59034}
-
Michael Starzinger authored
This implements support for the "throw" operation in the interpreter. Note that support for catching/handling exceptions is still missing from the interpreter in will be done separately. This also introduces a {WasmExceptionPackage} class to the object model that acts as an interface for allocating and accessing exceptions that originate from WebAssembly. It does not represent a new instance type however as exceptions are instances of {WebAssembly.RuntimeError} for now. R=clemensh@chromium.org TEST=mjsunit/wasm/exceptions BUG=v8:8091 Change-Id: I1f0cb548efb798e3c1488d42e4a31421c3c1aada Reviewed-on: https://chromium-review.googlesource.com/c/1430099Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59033}
-
Clemens Hammacher authored
This was disabled in 2014 (https://crrev.com/267383002), together with a comment about a broken serializer. The conditional v8 initialization was since then moved back to be unconditional, but the TearDown was never restored. Now we need it for wasm, since during tear down the wasm engine synchronizes on all background compile jobs. Omitting this leads to uses of the disposed platform (see https://crrev.com/c/1429861). R=mstarzinger@chromium.org Bug: v8:8689, v8:7921, v8:8725 Change-Id: Ia24f746094f38fc6ce349532587b622384379125 Reviewed-on: https://chromium-review.googlesource.com/c/1430059 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59032}
-
Ulan Degenbaev authored
Bug: chromium:852420 Change-Id: Idc8104e0617a22586aa5d3bf1bf2618caaacacc1 Reviewed-on: https://chromium-review.googlesource.com/c/1430060Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#59031}
-
Sigurd Schneider authored
- Output from console.timeEnd is now supported - The final result is printed in table format with ; separator, making it easy to copy/paste into a spreadsheet. - Various style improvements. Change-Id: Iba00ee54720344765262b5cc44c1e939278b03a4 Notry: true Reviewed-on: https://chromium-review.googlesource.com/c/1405030 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#59030}
-
Andreas Haas authored
R=titzer@chromium.org Bug: v8:7581 Change-Id: I153b09ac1676c75590f37c4b7d1f8659c37bbe96 Reviewed-on: https://chromium-review.googlesource.com/c/1421837 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59029}
-
Toon Verwaest authored
This allows us to remove the PatternRewriter. Change-Id: I54ec74ed3bd31e76e38c69f9b0b2a78f8620cd89 Reviewed-on: https://chromium-review.googlesource.com/c/1429863 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#59028}
-
Camillo Bruni authored
Get rid of yet another ZoneChunkList. Change-Id: If63b1b87e007f4d146532b2c66f101280d3fcf2f Reviewed-on: https://chromium-review.googlesource.com/c/1421319Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#59027}
-
Georg Neis authored
Otherwise we might come across invalid locations. Bug: chromium:923675 Change-Id: I0b01ba4b11cc7270744ec438bedb0b8ada2aa29d Reviewed-on: https://chromium-review.googlesource.com/c/1426126 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59026}
-
Camillo Bruni authored
- Inline single-call-site functions - Pull out pre-check from AllocateVariablesRecursively Change-Id: Ieceaf2d5b3ef6902b293d09e6fa63e58e60f3607 Reviewed-on: https://chromium-review.googlesource.com/c/1426696Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#59025}
-
Stephan Herhut authored
The Assembler class (or some of them at least) have a CodeTargetAlign method that aligns the code to a target specific value (16 byte on x86, 8 byte on arm). However, these were not used. Instead we always aligned to 16 byte boundaries, hence wasting up to 8 bytes on arm. Change-Id: Iee7d24ebc13a9a58002a9d7d0ce53955bee7d628 Reviewed-on: https://chromium-review.googlesource.com/c/1426125 Commit-Queue: Stephan Herhut <herhut@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59024}
-
Jakob Gruber authored
Code object iteration was missing logic for RELATIVE_CODE_TARGET reloc entries. Garbage collection could thus miss objects that were referenced only as targets of pc-relative calls or jumps. RELATIVE_CODE_TARGETs are only used on arm, mips, and s390 and only at mksnapshot-time. This exposed another issue in that the interpreter entry trampoline copy we generate for profiling *did* contain relative calls in runtime-accessible code. This is a problem, since code space on arm is, by default, too large to be fully addressable through pc-relative calls. This CL thus also disables the related FLAG_interpreted_frames_native_stack feature on arm. Drive-by: Ensure the builtins constants table does not contain Code objects. Bug: v8:8713,v8:6666 Change-Id: Idd914b46970ad08f9091fc72113fa7aed2732e71 Reviewed-on: https://chromium-review.googlesource.com/c/1424866Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59023}
-
Clemens Hammacher authored
This reverts commit 92d9b09c. Reason for revert: Crashes on several bots, e.g. https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20UBSan/4237 Original change's description: > [wasm] Decouple background compile jobs from NativeModule > > Background compile jobs should not keep the NativeModule alive, for two > reasons: > 1) We sometimes have to wait for background compilation to finish (from > a foreground task!). This introduces unnecessary latency. > 2) Giving the background compile tasks shared ownership of the > NativeModule causes the NativeModule (and the CompilationState) to > be freed from background tasks, which is error-prone (see > https://crrev.com/c/1400420). > > Instead, this CL introduces a BackgroundCompileToken which is held > alive by the NativeModule and all background compile jobs. The initial > and the final phase of compilation (getting and submitting work) > synchronize on this token to check and ensure that the NativeModule is > and stays alive. During compilation itself, the mutex is released, such > that the NativeModule can die. > The destructor of the NativeModule cancels the BackgroundCompileToken. > Immediately afterwards, the NativeModule and the CompilationState can > die. > > This change allows to remove two hacks introduced previously: The atomic > {aborted_} flag and the {FreeCallbacksTask}. > > R=mstarzinger@chromium.org > CC=titzer@chromium.org > > Bug: v8:8689, v8:7921 > Change-Id: I42e06eab3c944b0988286f2ce18e3c294535dfb6 > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel > Reviewed-on: https://chromium-review.googlesource.com/c/1421364 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59020} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: I724f460f5aa654a9e75d3ce73d351214e69e2d96 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8689, v8:7921 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/1429861Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59022}
-
Maya Lekova authored
The receiver is now passed around as the first argument in the Hints array. This allows for Construct bytecodes to not supply it at all. Bug: v8:7790 Change-Id: Iae57095526dbc52ed12e0f884875ceb07280c371 Reviewed-on: https://chromium-review.googlesource.com/c/1426118 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59021}
-
Clemens Hammacher authored
Background compile jobs should not keep the NativeModule alive, for two reasons: 1) We sometimes have to wait for background compilation to finish (from a foreground task!). This introduces unnecessary latency. 2) Giving the background compile tasks shared ownership of the NativeModule causes the NativeModule (and the CompilationState) to be freed from background tasks, which is error-prone (see https://crrev.com/c/1400420). Instead, this CL introduces a BackgroundCompileToken which is held alive by the NativeModule and all background compile jobs. The initial and the final phase of compilation (getting and submitting work) synchronize on this token to check and ensure that the NativeModule is and stays alive. During compilation itself, the mutex is released, such that the NativeModule can die. The destructor of the NativeModule cancels the BackgroundCompileToken. Immediately afterwards, the NativeModule and the CompilationState can die. This change allows to remove two hacks introduced previously: The atomic {aborted_} flag and the {FreeCallbacksTask}. R=mstarzinger@chromium.org CC=titzer@chromium.org Bug: v8:8689, v8:7921 Change-Id: I42e06eab3c944b0988286f2ce18e3c294535dfb6 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/1421364 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59020}
-