- 17 Dec, 2020 11 commits
-
-
Mike Stanton authored
Bug: chromium:1158124 Change-Id: Ic23f4b2ffb9436771afcc0090f2179b48851c39d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2596336Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#71829}
-
Patrick Thier authored
When we know a value passed to BytecodeArrayBuilder::LoadLiteral(double) can be encoded as a Smi, we create LdaSmi instead of LdaConstant. Driven by a forgotten Smi::FromInt() in BytecodeGenerator, also fixed in this CL. Bug: v8:11278 Change-Id: I4a1ad48e2c9aff8391113812e34dae838a1a38d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595437Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/master@{#71827}
-
Nico Hartmann authored
This reverts commit 860fcb1b. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm%20-%20sim%20-%20lite/13831/overview Original change's description: > Faster JS-to-Wasm calls > > This replaces https://chromium-review.googlesource.com/c/v8/v8/+/2376165/. > > Currently JS-to-Wasm calls go through a wrapper/trampoline, built on > the basis of the signature of a Wasm function to call, and whose task > is to: > - set "thread_in_wasm_flag" to true > - convert the arguments from tagged types into Wasm native types > - calculate the address of the Wasm function to call and call it > - convert back the result from Wasm native types into tagged types > - reset "thread_in_wasm_flag" to false. > > This CL tries to improve the performance of JS-to-Wasm calls by > inlining the code of the JS-to-Wasm wrappers in the call site. > > It introduces a new IR operand, JSWasmCall, which replaces JSCall for > this kind of calls. A 'JSWasmCall' node is associated to > WasmCallParameters, which contain information about the signature of > the Wasm function to call. > > WasmWrapperGraphBuilder::BuildJSToWasmWrapper is modified to avoid generating code to convert the types for the arguments > of the Wasm function, when the conversion is not necessary. > The actual inlining of the graph generated for this wrapper happens in > the simplified-lowering phase. > > A new builtin, JSToWasmLazyDeoptContinuation, is introduced to manage > lazy deoptimizations that can happen if the Wasm function callee calls > back some JS code that invalidates the compiled JS caller function. > > Bug: v8:11092 > Change-Id: I3174c1c1f59b39107b333d1929ecc0584486b8ad > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2557538 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Georg Neis (ooo until January 5) <neis@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Paolo Severini <paolosev@microsoft.com> > Cr-Commit-Position: refs/heads/master@{#71824} TBR=neis@chromium.org,ahaas@chromium.org,jgruber@chromium.org,tebbi@chromium.org,ishell@chromium.org,mslekova@chromium.org,nicohartmann@chromium.org,paolosev@microsoft.com Change-Id: I214cbdee74c1a2aaad907ffc84662ed25631983e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:11092 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595438Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#71825}
-
Paolo Severini authored
This replaces https://chromium-review.googlesource.com/c/v8/v8/+/2376165/. Currently JS-to-Wasm calls go through a wrapper/trampoline, built on the basis of the signature of a Wasm function to call, and whose task is to: - set "thread_in_wasm_flag" to true - convert the arguments from tagged types into Wasm native types - calculate the address of the Wasm function to call and call it - convert back the result from Wasm native types into tagged types - reset "thread_in_wasm_flag" to false. This CL tries to improve the performance of JS-to-Wasm calls by inlining the code of the JS-to-Wasm wrappers in the call site. It introduces a new IR operand, JSWasmCall, which replaces JSCall for this kind of calls. A 'JSWasmCall' node is associated to WasmCallParameters, which contain information about the signature of the Wasm function to call. WasmWrapperGraphBuilder::BuildJSToWasmWrapper is modified to avoid generating code to convert the types for the arguments of the Wasm function, when the conversion is not necessary. The actual inlining of the graph generated for this wrapper happens in the simplified-lowering phase. A new builtin, JSToWasmLazyDeoptContinuation, is introduced to manage lazy deoptimizations that can happen if the Wasm function callee calls back some JS code that invalidates the compiled JS caller function. Bug: v8:11092 Change-Id: I3174c1c1f59b39107b333d1929ecc0584486b8ad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2557538Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Georg Neis (ooo until January 5) <neis@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Paolo Severini <paolosev@microsoft.com> Cr-Commit-Position: refs/heads/master@{#71824}
-
Jakob Kummerow authored
This is a reland of dc369749 Changes: relaxed --liftoff-only mode to still allow bailing out due to missing CPU support. Original change's description: > [wasm-gc] Liftoff support part 4: subtyping > > This adds support for the following instructions: > struct.new_default, rtt.sub, ref.test, ref.cast > > Bug: v8:7748 > Change-Id: I7423ddd7a83c80cb1e82c620780c27bec59ec762 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593341 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71805} Bug: v8:7748 Change-Id: If31fcee5e7e173d7c2a6e1c624f4ff04cec7fe9c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2596338 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71823}
-
Zhi An Ng authored
- Add the appropriate cpuid checks to detect AVX2 in base/cpu - Add FLAG_enable_avx2 AVX2 depends on AVX support, + a cpuid check with eax=7. This is similar to chromium/src/base/cpu.cc check for AVX2. Bug: v8:11258 Change-Id: Ia547c22e51b03fec823f5e48ebb055139632c942 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2589050Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71821}
-
Zhi An Ng authored
These instructions have been accepted into the proposal. Bug: v8:11262 Change-Id: Iec0bb9b9b1b0f8ed76ed78e254c64b96981a5f2f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2589433Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71819}
-
Zhi An Ng authored
Bug: v8:11262 Change-Id: Ic83cf2752ebaffb589ac72206c25005145b0b8c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2589067Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71814}
-
Zhi An Ng authored
We can have more optimizations for this instruction, they leave some junk in the top lanes of dst, but that doesn't matter: - when lane is 1: we use movshdup, this is 4 bytes long - when lane is 2: use movhlps, this is 3 bytes long - otherwise use shufps (4 bytes) or pshufd (5 bytes) All of which are better than insertps (6 bytes). Change-Id: I0e524431d1832e297e8c8bb418d42382d93fa691 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2591850 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#71813}
-
Zhi An Ng authored
Bug: v8:11262 Change-Id: Iefe32dbf20e4c511a3f1d56ce7dc53c2bc2da112 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2589066Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71812}
-
Jakob Kummerow authored
This reverts commit a3ce2f6d. Reason for revert: speculative revert due to waterfall unhappiness (looks like bot weirdness though?) Original change's description: > [wasm-gc] Liftoff support part 5: i31 > > This implements support for i31.get_s and i31.get_u. > > Bug: v8:7748 > Change-Id: Icbfddbc2ff46b4eb6bf3edf7b3a794f9797361d4 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595309 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71808} TBR=jkummerow@chromium.org,clemensb@chromium.org Change-Id: I5050f16fdaf355d178935f523a9bec516302d2a1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7748 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2596337Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#71810}
-
- 16 Dec, 2020 18 commits
-
-
Jakob Kummerow authored
This implements support for i31.get_s and i31.get_u. Bug: v8:7748 Change-Id: Icbfddbc2ff46b4eb6bf3edf7b3a794f9797361d4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595309 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71808}
-
Shu-yu Guo authored
This reverts commit dc369749. Reason for revert: nosse variant failures: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20debug/33279/overview Original change's description: > [wasm-gc] Liftoff support part 4: subtyping > > This adds support for the following instructions: > struct.new_default, rtt.sub, ref.test, ref.cast > > Bug: v8:7748 > Change-Id: I7423ddd7a83c80cb1e82c620780c27bec59ec762 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593341 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71805} TBR=jkummerow@chromium.org,clemensb@chromium.org Change-Id: I06bb493852223aecf221c9149bc7b034b1fb13ad No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7748 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2596497Reviewed-by:
Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#71806}
-
Jakob Kummerow authored
This adds support for the following instructions: struct.new_default, rtt.sub, ref.test, ref.cast Bug: v8:7748 Change-Id: I7423ddd7a83c80cb1e82c620780c27bec59ec762 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593341 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71805}
-
Ross McIlroy authored
Concurrent inlining is enabled for TurboProp compiles, but we don't enable the --concurrent-inlining flag so don't also set the implied turbo_direct_heap_access flag. This CL fixes this. BUG=v8:9684 Change-Id: I298febdf7c466385047f420d4c33ca0162778210 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593344 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Auto-Submit: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#71804}
-
Ross McIlroy authored
This is a reland of b2a611d8 Original change's description: > [Turboprop] Move dynamic check maps immediate args to deopt exit. > > Rather than loading the immediate arguments required by the > dynamic check maps builtin into registers in the fast-path, > instead insert them into the instruction stream in the deopt > exit and have the builtin load them into registers itself. > > BUG=v8:10582 > > Change-Id: I66716570b408501374eed8f5e6432df64c6deb7c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2589736 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71790} TBR=tebbi@chromium.org,gsathya@chromium.org Bug: v8:10582 Change-Id: Ieda0295ee135bff983c67c3f04bb47115f0a2739 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595311Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#71803}
-
Sathya Gunasekaran authored
Instead of looking up the specific maps in every native context, just check against the instance type. Bug: v8:11256 Change-Id: Ib50d599c014c95b03ba3260014dfcbd9ec82982c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593337Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#71802}
-
Sathya Gunasekaran authored
Previously, we were looking up the prototype of the receiver and checking that against %TypedArrayPrototype% before invalidating the protector cell. This is incorrect as it's possible to patch the prototype and then change the constructor property, bypassing this check. This CL adds a new instance type to prototype of all TypedArray constructors and checks the receiver against this instance type. TBR: tebbi@chromium.org Bug: v8:11274, v8:11256 Change-Id: I2ff6280e4cf820b06c5593fe4addd36f7ac656c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2594776 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#71799}
-
Manos Koukoutos authored
LoopExitValue nodes can be used as inputs to Phis in loop optimizations. To do this, we need to know the machine representation that needs to be passed to the new Phi node. This CL adds a MachineRepresentation argument to LoopExitValue nodes, as well as a helper to extract it. Since the MachineRepresentation is not used by JS compilation, nodes generated during JS compilation are passed kTagged as a default value. Change-Id: I925f382d5e6988d8fad3de7a6db231e871d6ed36 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2578983 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Georg Neis (ooo until January 5) <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#71798}
-
Peter Marshall authored
There is a race in the way we handle deopts that made this test flaky. The race is not hugely important to fix, and is difficult without breaking something else. The best thing to do here is update the test to reflect reality so we can get the test coverage back. This updates the test so that the deopt reason can be found either on the first or second level function. The test assumed it would always be available on the second level function in the profile, but if we get a regular profile tick at the exact wrong time, we could end up with the deopt info getting attached to the first level function. So we accept either. Bug: v8:5193 Change-Id: Ia43880ebafd1341a514b3143dc215514b5dccf15 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2594775Reviewed-by:
Simon Zünd <szuend@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#71797}
-
Jakob Kummerow authored
This adds support for the following instructions: ref.eq, array.new_with_rtt, array.new_default_with_rtt, array.get, array.set, array.len. Bug: v8:7748 Change-Id: I93c4a6676acc8b0ac035dd50762be6a1cc545a57 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593340 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71796}
-
Clemens Backes authored
This reverts commit b2a611d8. Reason for revert: Several failures on https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20CFI/3743/overview Original change's description: > [Turboprop] Move dynamic check maps immediate args to deopt exit. > > Rather than loading the immediate arguments required by the > dynamic check maps builtin into registers in the fast-path, > instead insert them into the instruction stream in the deopt > exit and have the builtin load them into registers itself. > > BUG=v8:10582 > > Change-Id: I66716570b408501374eed8f5e6432df64c6deb7c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2589736 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71790} TBR=rmcilroy@chromium.org,gsathya@chromium.org,tebbi@chromium.org Change-Id: I4c56bee156ffcea8de0aeaff9ac1bf03e03134c9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10582 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2595308Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71793}
-
Ross McIlroy authored
Rather than loading the immediate arguments required by the dynamic check maps builtin into registers in the fast-path, instead insert them into the instruction stream in the deopt exit and have the builtin load them into registers itself. BUG=v8:10582 Change-Id: I66716570b408501374eed8f5e6432df64c6deb7c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2589736 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#71790}
-
Milad Fa authored
Change-Id: I1109da446b53179b366a30db3ddc1cd1973d0d28 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593647Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/master@{#71789}
-
Dominik Inführ authored
Test creates out-of-memory condition. Running that test in the stress_concurrent_allocation variant might lead to "ineffective GCs" failure before going OOM. Simply do not run this test for that variant. Bug: v8:11272 Change-Id: I114686ec345f7a38f871347b62983d7591dc6ba3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2594769 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#71788}
-
Andreas Haas authored
Registers are spilled differently on arm and intel platforms. Additionally, on arm64 registers are spilled with padding. Therefore the code for safepoint information for spilled registers is platform- dependent now. Additionally the alignment of the frame size is done before the out-of-line code now, so that the safepoint indices can be calculated correctly for spilled registers in out-of-line code. Finally, some code was unimplemented on ia32 and arm, which I added now. R=thibaudm@chromium.org Bug: v8:7581, v8:10929 Change-Id: Ia9b824dfc74cafa9ec3cc0d308fb18b485afd715 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2584952 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#71786}
-
Clemens Backes authored
We were storing the pointer to the WasmModule both as a shared_ptr and as a raw pointer. Maybe this had historical reasons, but now it's just redundant. R=thibaudm@chromium.org Change-Id: Id72d102b6df804f93e3ab0235eeceef91a6dd8fb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593334Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71782}
-
Clemens Backes authored
This moves some fields and methods from the WasmRunner template to the WasmRunnerBase base class. This avoids repeated compilation for the different instantiations of the WasmRunner template. Additional changes: - SetUpTrapCallback, SetThreadInWasmFlag, and ClearThreadInWasmFlag are static now. - CheckUsedExecutionTier is unused, and did not even compile any more. In the template class this was OK, because it's only compiled on first use. R=thibaudm@chromium.org Change-Id: I485729cf4a1fd93fe6abb0be269694f0179fc4ea Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593331Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71781}
-
Daniel Clark authored
Implement the HostGetSupportedImportAssertions, whose purpose is to filter the list of import assertions exposed to the embedder to only those assertion with keys that the embedder recognizes. See https://tc39.es/proposal-import-assertions/#sec-hostgetsupportedimportassertions. This change doesn't actually implement it as a callback, but instead passes the supported assertions during creation of the Isolate via CreateParams. This expresses clearly the requirement that the supported assertions must never change for the lifetime of the Isolate. Note that we still need to maintain all assertions in a map while parsing the import assertions clause, because duplicate keys for an unsupported assertion still needs to be detected as a parse error. So, the filtering is done later during SourceTextModuleDescriptor::AstModuleRequest::Serialize. The actual filtering algorithm simply iterates the assertions and the supported assertion keys in a nested loop. There's currently only one assertion in use ("type"), so there should be no reason to get too clever here unless at least several more assertions are generally supported. Bug: v8:10958 Change-Id: I9a2d965e9d452718d0ddfe9dca55b7b4ed963019 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2572173Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Dan Clark <daniec@microsoft.com> Cr-Commit-Position: refs/heads/master@{#71776}
-
- 15 Dec, 2020 11 commits
-
-
Jakob Kummerow authored
This adds support for the following instructions: br_on_null, ref.as_non_null, br_on_cast, i31.new Bug: v8:7748 Change-Id: I210b8979327ea0031f89748b71b51abbac10bb8b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2590041 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71773}
-
Mike Stanton authored
ReduceJSToNumeric() can fail to update the node type after changing it's operator to JSToNumeric. BUG=chromium:1158049 Change-Id: Iaabb3676f8ad9563903b81de2e7eecdcc92cbc0b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593336Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#71771}
-
Dominik Inführ authored
NewSpace::Grow shouldn't be invoked when the maximum semi space size was already reached. Bug: v8:11199 Change-Id: I78ba71b7a043f0a515be188f2023e301d6bc6eed Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2584864Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#71769}
-
Thibaud Michaud authored
Drive-by: remove reference to BrOnExnNull in wasm-module-builder.js. R=clemensb@chromium.org CC=aheejin@chromium.org Bug: v8:8091 Change-Id: I42821b21c32fe8bf3410e75cf81bbff9678d3fa9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575059 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71766}
-
bcoe authored
The SourceRangeScope helper was consuming too many characters, instead explicitly create SourceRange, based on scanner position. Bug: v8:11231 Change-Id: I852d211227abacf867e8f1ab3e3ab06dbdba2a9b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2576006Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#71765}
-
Marja Hölttä authored
It's not "(new super).x" but "new (super.x)". Bug: v8:11261 Change-Id: Ifc9cae038c1dc8fcdb096e213b4ac79ea20e9238 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593248 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Auto-Submit: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#71763}
-
Jakob Kummerow authored
This is a reland of bee5992a. Fixes a TSan race report by replacing a FlagScope in tests with direct assignment to the flag in question. Original change's description: > [wasm-gc] Initial Liftoff support > > This CL implements Liftoff support for struct.get/set, > struct.new_with_rtt, rtt.canon, and ref.is_null, which > is enough to make the first testcase pass. > > Bug: v8:7748 > Change-Id: Id09e9872d2126127192c852b3cb6d57ff9417582 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2584951 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71744} Bug: v8:7748 Change-Id: I17de6803c23a88209102385010dfdf9b88e25ace Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593254 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71762}
-
Clemens Backes authored
If memory64 is used, the offset expression in data segments needs to have type i64 too. This CL extends the implementation to enforce that, and adds a unittest. R=manoskouk@chromium.org Bug: v8:10949 Change-Id: I849483fc96849e83950f09637e62d427a19094f0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2589733Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71759}
-
Peter Marshall authored
https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Win32%20-%20debug/28831/overview Bug: v8:10107 Change-Id: I73367ce82af37bde55ea5b6943d76c5ae3440b79 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2593327 Auto-Submit: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#71758}
-
Clemens Backes authored
Since the compile job can always be reused after creation (even if it runs out of work), we do not need the logic to (re-)initialize it. In fact, it will always only be initialized once already. This allows us to initialize it once during construction of the compilation state (or right after the initialization), and then access it without locks later. In addition, this CL 1) renames "current_compile_job_" to "compile_job_", since there will always only be one now; 2) removes the {ScheduleCompileJobForNewUnits} method, and just does a {compile_job_->NotifyConcurrencyIncrease()} instead; 3) removes the {has_priority_} field and just directly does a {compile_job_->UpdatePriority} call. The streaming test platform needed to be fixed to avoid calling {Join} on the job handle, which would invalidate the handle afterwards. Instead, we just run all tasks as long as there are any. R=thibaudm@chromium.org CC=etiennep@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Change-Id: I7094231e86d5f54cfca5e971b96fd81e994c874a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2584946 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#71757}
-
Zhi An Ng authored
Codegen is identical to x64. Tweaked a macro definition to do a dst == src1 check when AVX is not supported, and updated a single caller in LiftOff. Bug: v8:11086 Change-Id: Ic9645f3d1bf1c26a1aa6db6bc2fa67fc991f8bbb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2579928 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#71756}
-