searching for reviewer(lth)
49e76abe9cf9a0c0c51cf3ecbfda5f0d24c97a71: Bug 1736041 - [wasm] Fix i32x4.trunc_f32x4_u inaccurate conversion. r=lth
Yury Delendik <ydelendik@mozilla.com> - Mon, 18 Oct 2021 13:09:07 +0000 - rev 596182
Push 38891 by csabou@mozilla.com at Mon, 18 Oct 2021 21:44:42 +0000
Bug 1736041 - [wasm] Fix i32x4.trunc_f32x4_u inaccurate conversion. r=lth Differential Revision: https://phabricator.services.mozilla.com/D128613
fcd4b04439240248422f646d075ba3696d4db6d6: Bug 1727698 - Ion: centralise definition of spill slot size. r=lth.
Julian Seward <jseward@acm.org> - Mon, 11 Oct 2021 11:52:35 +0000 - rev 595328
Push 38868 by mlaza@mozilla.com at Mon, 11 Oct 2021 21:46:13 +0000
Bug 1727698 - Ion: centralise definition of spill slot size. r=lth. The `Architecture-*.h` file on each platform ought to define the spill slot size -- it should not be hidden down in the move emitter like it is now. This patch does that, defining it as `max(sizeof(Registers::RegisterContent), sizeof(FloatRegisters::RegisterContent))`. For maximum safety and detection of misunderstandings, it also statically asserts the expected value for each architecture. Differential Revision: https://phabricator.services.mozilla.com/D125960
3825b2767e34dc2900cec4519230cbc5fe745fdd: Bug 1731852 - Prototype relaxed-SIMD laneselect instructions. r=lth
Yury Delendik <ydelendik@mozilla.com> - Fri, 08 Oct 2021 22:04:15 +0000 - rev 595262
Push 38863 by mlaza@mozilla.com at Sat, 09 Oct 2021 08:25:33 +0000
Bug 1731852 - Prototype relaxed-SIMD laneselect instructions. r=lth Differential Revision: https://phabricator.services.mozilla.com/D127697
d453591e1259e169247c0872d59967049f40622f: Bug 1710882 - Optimizations for SIMD reverse bytes ops. r=lth
Yury Delendik <ydelendik@mozilla.com> - Fri, 08 Oct 2021 20:14:53 +0000 - rev 595257
Push 38863 by mlaza@mozilla.com at Sat, 09 Oct 2021 08:25:33 +0000
Bug 1710882 - Optimizations for SIMD reverse bytes ops. r=lth Differential Revision: https://phabricator.services.mozilla.com/D127899
061991db30de2511a5162b366222c63e9e042f27: Bug 1700319 - Avoid PSHUFD for i32->i64 widening operations. r=lth
Yury Delendik <ydelendik@mozilla.com> - Fri, 08 Oct 2021 14:24:41 +0000 - rev 595227
Push 38862 by ctuns@mozilla.com at Fri, 08 Oct 2021 21:42:24 +0000
Bug 1700319 - Avoid PSHUFD for i32->i64 widening operations. r=lth Differential Revision: https://phabricator.services.mozilla.com/D127849
ee2bc38e681e6ae48982e91d570bb97f4b8a6d85: Bug 1690483 - Use saturating add for mask of SIMD swizzle. r=lth
Yury Delendik <ydelendik@mozilla.com> - Thu, 07 Oct 2021 15:55:35 +0000 - rev 595097
Push 38857 by nerli@mozilla.com at Thu, 07 Oct 2021 21:51:52 +0000
Bug 1690483 - Use saturating add for mask of SIMD swizzle. r=lth Differential Revision: https://phabricator.services.mozilla.com/D127746
4ea0edff703f99706e5137f58b138792a56ac23a: Bug 1727698 - Ion: centralise definition of spill slot size. r=lth.
Julian Seward <jseward@acm.org> - Thu, 07 Oct 2021 11:37:12 +0000 - rev 595046
Push 38857 by nerli@mozilla.com at Thu, 07 Oct 2021 21:51:52 +0000
Bug 1727698 - Ion: centralise definition of spill slot size. r=lth. The `Architecture-*.h` file on each platform ought to define the spill slot size -- it should not be hidden down in the move emitter like it is now. This patch does that, defining it as `max(sizeof(Registers::RegisterContent), sizeof(FloatRegisters::RegisterContent))`. For maximum safety and detection of misunderstandings, it also statically asserts the expected value for each architecture. Differential Revision: https://phabricator.services.mozilla.com/D125960
56b34efcc7245d99184352e424a2422af88dfb61: Bug 1734334 - Use correct pointer type to store address of barrier flag r=lth
Jon Coppeard <jcoppeard@mozilla.com> - Wed, 06 Oct 2021 09:35:43 +0000 - rev 594865
Push 38853 by smolnar@mozilla.com at Wed, 06 Oct 2021 15:52:17 +0000
Bug 1734334 - Use correct pointer type to store address of barrier flag r=lth Differential Revision: https://phabricator.services.mozilla.com/D127621
d79ffb376248bde1452d0cbee73fbc32b926f557: Bug 1731855 - Prototype relaxed-SIMD i8x16.swizzle instruction. r=lth
Yury Delendik <ydelendik@mozilla.com> - Thu, 30 Sep 2021 18:41:16 +0000 - rev 593853
Push 38836 by ctuns@mozilla.com at Fri, 01 Oct 2021 09:33:23 +0000
Bug 1731855 - Prototype relaxed-SIMD i8x16.swizzle instruction. r=lth See https://github.com/WebAssembly/relaxed-simd/issues/22 Differential Revision: https://phabricator.services.mozilla.com/D126704
d28173c8c65c2e5c844174d67ca381ca49fdb7b6: Bug 1733095 - Guard RelaxedConvertF64x2ToI32x4 with ENABLE_WASM_RELAXED_SIMD. r=lth
Yury Delendik <ydelendik@mozilla.com> - Thu, 30 Sep 2021 13:13:53 +0000 - rev 593815
Push 38835 by ncsoregi@mozilla.com at Thu, 30 Sep 2021 21:50:26 +0000
Bug 1733095 - Guard RelaxedConvertF64x2ToI32x4 with ENABLE_WASM_RELAXED_SIMD. r=lth Differential Revision: https://phabricator.services.mozilla.com/D126990
b957df6ae6cccddacebb62ecfe457b6018fe1c5f: Bug 1731853 - Prototype relaxed-SIMD i32x4.trunc_sat_fXXX instructions. r=lth
Yury Delendik <ydelendik@mozilla.com> - Tue, 28 Sep 2021 18:14:10 +0000 - rev 593488
Push 38829 by ctuns@mozilla.com at Wed, 29 Sep 2021 09:46:07 +0000
Bug 1731853 - Prototype relaxed-SIMD i32x4.trunc_sat_fXXX instructions. r=lth See https://github.com/WebAssembly/relaxed-simd/issues/21 Differential Revision: https://phabricator.services.mozilla.com/D126513
1a73cfde72e8f4d19bdcfdbffa9fbc78bba01e24: Bug 1639153 - Introduce indirect stubs to optimize call_indirect. r=lth
Dmitry Bezhetskov <dbezhetskov@igalia.com> - Tue, 28 Sep 2021 05:24:15 +0000 - rev 593393
Push 38827 by ctuns@mozilla.com at Tue, 28 Sep 2021 09:54:33 +0000
Bug 1639153 - Introduce indirect stubs to optimize call_indirect. r=lth This patch introduces indirect stubs. An indirect stub is a stub that takes care of any switching activities needed for call_indirect. Before this patch, we have to conservatively assume that any call_indirect's target can be from a foreign instance, but now we don't need to do this because now Table[i].code is replaced with the address of the corresponding indirect stub. There is one optimization - if we 100% sure that call_indirect's target belongs to our instance then we can omit indirect stub and use raw function call with signature check of course. We 100% sure that call_indirect's target is the same instance iff Table is private and we don't export it. However, even if a table is exported but not used we can still use the optimization but this logic for some next patch. Differential Revision: https://phabricator.services.mozilla.com/D117123
4681a4a355bbad9c7bc85ca017587b64a30aa34e: Bug 1731856 - Prototype relaxed-SIMD min/max instructions. r=lth
Yury Delendik <ydelendik@mozilla.com> - Mon, 27 Sep 2021 20:31:41 +0000 - rev 593342
Push 38827 by ctuns@mozilla.com at Tue, 28 Sep 2021 09:54:33 +0000
Bug 1731856 - Prototype relaxed-SIMD min/max instructions. r=lth See https://github.com/WebAssembly/relaxed-simd/issues/33 Differential Revision: https://phabricator.services.mozilla.com/D126390
76609866dcad6c88039ccacd710b544ba0d2e95a: Bug 1731599 - wasm: Fix cranelift bustage. r=lth
Ryan Hunt <rhunt@eqrion.net> - Wed, 22 Sep 2021 16:07:07 +0000 - rev 592941
Push 38815 by ccozmuta@mozilla.com at Wed, 22 Sep 2021 21:53:01 +0000
Bug 1731599 - wasm: Fix cranelift bustage. r=lth Differential Revision: https://phabricator.services.mozilla.com/D126294
9ad1733e113bc06f36eb6321861cde33d51f8e91: Bug 1731291 - wasm: Hide .type property of imports/exports behind compile-time flag. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 21 Sep 2021 21:36:23 +0000 - rev 592863
Push 38811 by nbeleuzu@mozilla.com at Wed, 22 Sep 2021 04:09:13 +0000
Bug 1731291 - wasm: Hide .type property of imports/exports behind compile-time flag. r=lth The pre-existing code for printing a function type to string used a check behind 'fuzzingSafe' and I cannot find a reason for this in any commit history. Searchfox thinks it came from the original commit for the imports/exports feature from luke, but it's not present in the commits he landed, nor in the bug. I don't think it's necessary, so I think we should remove it while we're fixing this bug. Differential Revision: https://phabricator.services.mozilla.com/D125979
ce92432790779f544502ef93e87f6b4b38579e68: Bug 1337723 - wasm: Report tier-2 warnings and errors to stderr. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 21 Sep 2021 18:11:21 +0000 - rev 592833
Push 38811 by nbeleuzu@mozilla.com at Wed, 22 Sep 2021 04:09:13 +0000
Bug 1337723 - wasm: Report tier-2 warnings and errors to stderr. r=lth Tier-2 tasks are finished on a helper thread and don't have a JSContext* to report errors/warnings to. It may be useful for end-users or engine developers to be notified when a tier-2 task fails and why. This commit implements logging of errors and warnings by printing to stderr. An alternative approach would be to get a runnable on the originating JS thread that reports the errors/warnings using that *JSContext. I'm not sure the best way to do this, so I went with the simpler approach for now. Differential Revision: https://phabricator.services.mozilla.com/D125585
2ba372fbca763e738888410ad46ebfd975d2abd5: Bug 1337723 - wasm: Warn about executable memory allocation failure. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 21 Sep 2021 18:11:21 +0000 - rev 592832
Push 38811 by nbeleuzu@mozilla.com at Wed, 22 Sep 2021 04:09:13 +0000
Bug 1337723 - wasm: Warn about executable memory allocation failure. r=lth This commit causes ModuleGenerator to report a warning when we fail to allocate executable memory for a ModuleSegment. This will get reported in the JS console in addition to the OOM error. The one tricky change is that entry points to module compilation needed to be reworked so that they could report warnings even if an error or OOM was encountered. Differential Revision: https://phabricator.services.mozilla.com/D125230
0cf96895f20cc52cfc3dca89f7b3f023028e7796: Bug 1282063 - wasm: Unify max frame size and report overflow as an error. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 17 Sep 2021 22:07:48 +0000 - rev 592408
Push 38800 by abutkovits@mozilla.com at Sat, 18 Sep 2021 09:46:57 +0000
Bug 1282063 - wasm: Unify max frame size and report overflow as an error. r=lth Baseline has a limit to the size of the stack frame allowed for an individual function. I saw comments that wasm-Ion had a similar restriction but I couldn't find any such restriction. This commit takes the hardcoded stack frame limit and makes it an implementation limit in WasmConstants, and uses it explicitly in wasm-Ion. (Open to discussion if there's an argument for different limits or no limit in wasm-Ion) For both stack frame checks, surpassing the limit is reported as a hard error with a message instead of an OOM. This should provide better debuggability to users who stumble into this. I think re-using errors for this makes sense, but if not we could try to re-use the warning machinery, although it would be a larger change. Differential Revision: https://phabricator.services.mozilla.com/D125229
959de44518b13be23fee0cfb1d49ecd7be853651: Bug 1731121 - wasm: Store raw pointer to TypeDef instead of index in RttValue. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 17 Sep 2021 21:19:25 +0000 - rev 592396
Push 38800 by abutkovits@mozilla.com at Sat, 18 Sep 2021 09:46:57 +0000
Bug 1731121 - wasm: Store raw pointer to TypeDef instead of index in RttValue. r=lth The direct pointer to TypeDef* is needed far more often, and can be used to map back to the index whenever required. Differential Revision: https://phabricator.services.mozilla.com/D125893
743c6ee17c287d301618f82c17613e299436e9a2: Bug 1731121 - wasm: Drop TypedProto. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 17 Sep 2021 21:19:24 +0000 - rev 592395
Push 38800 by abutkovits@mozilla.com at Sat, 18 Sep 2021 09:46:57 +0000
Bug 1731121 - wasm: Drop TypedProto. r=lth While we're at it, let's remove the TypedProto slot as well. This is currently unused and unlikely to match whatever is decided upon for the MVP JS-API. Differential Revision: https://phabricator.services.mozilla.com/D125892
819092ae2815fa9f9fe1b93b0467db6c8f3bf842: Bug 1731121 - wasm: Drop duplicated slots no longer needed. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 17 Sep 2021 21:19:24 +0000 - rev 592394
Push 38800 by abutkovits@mozilla.com at Sat, 18 Sep 2021 09:46:57 +0000
Bug 1731121 - wasm: Drop duplicated slots no longer needed. r=lth RttValue::Size,Kind were required when a JSContext* was needed to access the TypeDef object. This is no longer a requirement and so we can just directly get those fields. Differential Revision: https://phabricator.services.mozilla.com/D125891
7ce33df6f26db358672eaf722ff9e04dbc726439: Bug 1731121 - wasm: Drop implicit global type context and refer to explicit TypeContext in RttValue. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 17 Sep 2021 21:19:24 +0000 - rev 592393
Push 38800 by abutkovits@mozilla.com at Sat, 18 Sep 2021 09:46:57 +0000
Bug 1731121 - wasm: Drop implicit global type context and refer to explicit TypeContext in RttValue. r=lth Drop the global type context from WasmContext. RttValue's now hold a strong reference to their TypeContext which they can use with their pre-existing type index to get their type definition. Differential Revision: https://phabricator.services.mozilla.com/D125890
7b2661dfc414b131344a4cea008aceb056621305: Bug 1731121 - wasm: Make TypeContext refcounted and shareable. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 17 Sep 2021 21:19:23 +0000 - rev 592392
Push 38800 by abutkovits@mozilla.com at Sat, 18 Sep 2021 09:46:57 +0000
Bug 1731121 - wasm: Make TypeContext refcounted and shareable. r=lth This commit makes TypeContext refcounted/shareable. This is so that we can change RttValue's representation to be: 1. RefPtr<TypeContext> typeContext; 2. uint32_t typeIndex; Effectively adding an explicit type context field to RttValue instead of using an implicit global TypeContext, as it is now. The big change here is that as TypeContext is now refcounted, it needs to be heap-allocated, and cannot be a plain member of ModuleEnvironment, as it is now. This adds some extra indirections. If this is unacceptable, then I think we can find a workaround. The next commit will implement the changes to RttValue. Differential Revision: https://phabricator.services.mozilla.com/D125889
3137f58698a422ceff4d10a84d00acadfb165b05: Bug 1731121 - wasm: Use better names in subtype algorithms. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 17 Sep 2021 21:19:23 +0000 - rev 592391
Push 38800 by abutkovits@mozilla.com at Sat, 18 Sep 2021 09:46:57 +0000
Bug 1731121 - wasm: Use better names in subtype algorithms. r=lth Driveby fix to use a more descriptive 'subtype' 'supertype' naming scheme for the subtype algorithm and tests. Equivalence testing is changed to first/second as well. Differential Revision: https://phabricator.services.mozilla.com/D125888
c5d0338411ed996139d799136bad285b534b3ad4: Bug 1282063 - wasm: Unify max frame size and report overflow as an error. r=lth
Ryan Hunt <rhunt@eqrion.net> - Thu, 16 Sep 2021 20:53:43 +0000 - rev 592241
Push 38795 by nbeleuzu@mozilla.com at Fri, 17 Sep 2021 03:36:17 +0000
Bug 1282063 - wasm: Unify max frame size and report overflow as an error. r=lth Baseline has a limit to the size of the stack frame allowed for an individual function. I saw comments that wasm-Ion had a similar restriction but I couldn't find any such restriction. This commit takes the hardcoded stack frame limit and makes it an implementation limit in WasmConstants, and uses it explicitly in wasm-Ion. (Open to discussion if there's an argument for different limits or no limit in wasm-Ion) For both stack frame checks, surpassing the limit is reported as a hard error with a message instead of an OOM. This should provide better debuggability to users who stumble into this. I think re-using errors for this makes sense, but if not we could try to re-use the warning machinery, although it would be a larger change. Differential Revision: https://phabricator.services.mozilla.com/D125229
91e0c6d26de8ba365ec3d462f98d28c75055a89b: Bug 1730188 - wasm: Extend import/export reflection with types. r=lth
Ryan Hunt <rhunt@eqrion.net> - Thu, 16 Sep 2021 20:53:18 +0000 - rev 592240
Push 38795 by nbeleuzu@mozilla.com at Fri, 17 Sep 2021 03:36:17 +0000
Bug 1730188 - wasm: Extend import/export reflection with types. r=lth Module.imports/exports gives reflection of the imports and exports of a module. We had a non-standard .signature property for function types that is now superseded with the JS-type proposal [1]. The implementation of creating a type object for the various kinds of definitions had to be refactored to be shared. [1] https://github.com/WebAssembly/js-types/issues/19 Differential Revision: https://phabricator.services.mozilla.com/D125274
435e207844d76c74171cf6bde4d81b94ac3b9362: Bug 1730188 - wasm: Check input function to WA.Function constructor. r=lth
Ryan Hunt <rhunt@eqrion.net> - Thu, 16 Sep 2021 20:53:18 +0000 - rev 592239
Push 38795 by nbeleuzu@mozilla.com at Fri, 17 Sep 2021 03:36:17 +0000
Bug 1730188 - wasm: Check input function to WA.Function constructor. r=lth The input function to WA.Function is currently restricted to not be an exported wasm function. This is being debated in the proposal, but is currently being asserted in our code and so should be checked for explicitly. In addition, some OOM checking, standardized naming, and general cleanup was added to WA.Function. Differential Revision: https://phabricator.services.mozilla.com/D125228
c072c96cc349756cf76ce4cb3437465321a2f439: Bug 1730188 - wasm: Fix type() method implementations for OOM safety. r=lth
Ryan Hunt <rhunt@eqrion.net> - Thu, 16 Sep 2021 20:53:17 +0000 - rev 592238
Push 38795 by nbeleuzu@mozilla.com at Fri, 17 Sep 2021 03:36:17 +0000
Bug 1730188 - wasm: Fix type() method implementations for OOM safety. r=lth The type() method implementations didn't accurately report OOM's upon allocation failure. A drive by fix was done to make the ValTypesToArray method idiomatic and return the array instead of defining it upon a properties array. Some potential rooting issues were also addressed. Differential Revision: https://phabricator.services.mozilla.com/D125227
1309f4739dfce8ca490c52b05f1701d9bed2db9d: Bug 1730188 - wasm: Fix Table.type method to report type as RefType instead of TableRepr. r=lth
Ryan Hunt <rhunt@eqrion.net> - Thu, 16 Sep 2021 20:53:17 +0000 - rev 592237
Push 38795 by nbeleuzu@mozilla.com at Fri, 17 Sep 2021 03:36:17 +0000
Bug 1730188 - wasm: Fix Table.type method to report type as RefType instead of TableRepr. r=lth We should report the precise RefType that a table has, not the flattened TableRepr. Differential Revision: https://phabricator.services.mozilla.com/D125226
83fbc7aed06b14fbbc4273534b69eaf6018e1eb2: Bug 1730188 - wasm: Fix WA.Function constructor name. r=lth
Ryan Hunt <rhunt@eqrion.net> - Thu, 16 Sep 2021 20:53:16 +0000 - rev 592236
Push 38795 by nbeleuzu@mozilla.com at Fri, 17 Sep 2021 03:36:17 +0000
Bug 1730188 - wasm: Fix WA.Function constructor name. r=lth The name of WA.Function constructor is "WasmFunction", but should be "Function". Differential Revision: https://phabricator.services.mozilla.com/D125225
a0e51f584680a017fc4d8124c58a51f3caadfade: Bug 1639153 - Introduce indirect stubs to optimize call_indirect. r=lth
Dmitry Bezhetskov <dbezhetskov@igalia.com> - Thu, 16 Sep 2021 05:09:24 +0000 - rev 592128
Push 38791 by smolnar@mozilla.com at Thu, 16 Sep 2021 09:43:03 +0000
Bug 1639153 - Introduce indirect stubs to optimize call_indirect. r=lth This patch introduces indirect stubs. An indirect stub is a stub that takes care of any switching activities needed for call_indirect. Before this patch, we have to conservatively assume that any call_indirect's target can be from a foreign instance, but now we don't need to do this because now Table[i].code is replaced with the address of the corresponding indirect stub. There is one optimization - if we 100% sure that call_indirect's target belongs to our instance then we can omit indirect stub and use raw function call with signature check of course. We 100% sure that call_indirect's target is the same instance iff Table is private and we don't export it. However, even if a table is exported but not used we can still use the optimization but this logic for some next patch. Differential Revision: https://phabricator.services.mozilla.com/D117123
d6506b5ee07b5c65f889ce7c2214b0172f205898: Bug 1639153 - Introduce indirect stubs to optimize call_indirect. r=lth
Dmitry Bezhetskov <dbezhetskov@igalia.com> - Wed, 15 Sep 2021 11:10:15 +0000 - rev 592034
Push 38791 by smolnar@mozilla.com at Thu, 16 Sep 2021 09:43:03 +0000
Bug 1639153 - Introduce indirect stubs to optimize call_indirect. r=lth This patch introduces indirect stubs. An indirect stub is a stub that takes care of any switching activities needed for call_indirect. Before this patch, we have to conservatively assume that any call_indirect's target can be from a foreign instance, but now we don't need to do this because now Table[i].code is replaced with the address of the corresponding indirect stub. There is one optimization - if we 100% sure that call_indirect's target belongs to our instance then we can omit indirect stub and use raw function call with signature check of course. We 100% sure that call_indirect's target is the same instance iff Table is private and we don't export it. However, even if a table is exported but not used we can still use the optimization but this logic for some next patch. Differential Revision: https://phabricator.services.mozilla.com/D117123
165bc67e941de60efa3378362f26b30fa22644bc: Bug 1439578 - wasm: Don't emit OOL code if it's not used. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 14 Sep 2021 20:46:59 +0000 - rev 591961
Push 38789 by ccozmuta@mozilla.com at Wed, 15 Sep 2021 09:24:53 +0000
Bug 1439578 - wasm: Don't emit OOL code if it's not used. r=lth This commit implements the simple approach of not emitting an OOL stub for baseline if it's entry label is not used. Differential Revision: https://phabricator.services.mozilla.com/D125231
2bed6e1ca9742991ac9c3b83917217092ed733f9: Bug 1730188 - wasm: Extend import/export reflection with types. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 14 Sep 2021 20:45:59 +0000 - rev 591957
Push 38789 by ccozmuta@mozilla.com at Wed, 15 Sep 2021 09:24:53 +0000
Bug 1730188 - wasm: Extend import/export reflection with types. r=lth Module.imports/exports gives reflection of the imports and exports of a module. We had a non-standard .signature property for function types that is now superseded with the JS-type proposal [1]. The implementation of creating a type object for the various kinds of definitions had to be refactored to be shared. [1] https://github.com/WebAssembly/js-types/issues/19 Differential Revision: https://phabricator.services.mozilla.com/D125274
ff58a6be4b4dc68a78235087bc7a12d9a8b1f2b8: Bug 1730188 - wasm: Check input function to WA.Function constructor. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 14 Sep 2021 20:45:58 +0000 - rev 591956
Push 38789 by ccozmuta@mozilla.com at Wed, 15 Sep 2021 09:24:53 +0000
Bug 1730188 - wasm: Check input function to WA.Function constructor. r=lth The input function to WA.Function is currently restricted to not be an exported wasm function. This is being debated in the proposal, but is currently being asserted in our code and so should be checked for explicitly. In addition, some OOM checking, standardized naming, and general cleanup was added to WA.Function. Differential Revision: https://phabricator.services.mozilla.com/D125228
5c3b5a3073818db017fe813da9de44f9b01627bc: Bug 1730188 - wasm: Fix type() method implementations for OOM safety. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 14 Sep 2021 20:45:58 +0000 - rev 591955
Push 38789 by ccozmuta@mozilla.com at Wed, 15 Sep 2021 09:24:53 +0000
Bug 1730188 - wasm: Fix type() method implementations for OOM safety. r=lth The type() method implementations didn't accurately report OOM's upon allocation failure. A drive by fix was done to make the ValTypesToArray method idiomatic and return the array instead of defining it upon a properties array. Some potential rooting issues were also addressed. Depends on D125226 Differential Revision: https://phabricator.services.mozilla.com/D125227
86b39494212eca481a208740075ca7ed2582bb51: Bug 1730188 - wasm: Fix Table.type method to report type as RefType instead of TableRepr. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 14 Sep 2021 20:45:58 +0000 - rev 591954
Push 38789 by ccozmuta@mozilla.com at Wed, 15 Sep 2021 09:24:53 +0000
Bug 1730188 - wasm: Fix Table.type method to report type as RefType instead of TableRepr. r=lth We should report the precise RefType that a table has, not the flattened TableRepr. Depends on D125225 Differential Revision: https://phabricator.services.mozilla.com/D125226
64e7d6e00c8a34643aaa15a88b0927b687ceae2a: Bug 1730188 - wasm: Fix WA.Function constructor name. r=lth
Ryan Hunt <rhunt@eqrion.net> - Tue, 14 Sep 2021 20:45:57 +0000 - rev 591953
Push 38789 by ccozmuta@mozilla.com at Wed, 15 Sep 2021 09:24:53 +0000
Bug 1730188 - wasm: Fix WA.Function constructor name. r=lth The name of WA.Function constructor is "WasmFunction", but should be "Function". Differential Revision: https://phabricator.services.mozilla.com/D125225
76871d3e68890242fc54e2f5576c704cad961362: Bug 1727284 - wasm: Test for bug 1727284. r=lth
Ryan Hunt <rhunt@eqrion.net> - Mon, 13 Sep 2021 19:47:41 +0000 - rev 591797
Push 38787 by nbeleuzu@mozilla.com at Tue, 14 Sep 2021 14:35:56 +0000
Bug 1727284 - wasm: Test for bug 1727284. r=lth Differential Revision: https://phabricator.services.mozilla.com/D125233
682739fe4e8389c68b78e4cf2677bfb602a499eb: Bug 1672343 - Ignore one of the SIMD shuffle operands if it is not used. r=lth
Yury Delendik <ydelendik@mozilla.com> - Thu, 09 Sep 2021 16:40:44 +0000 - rev 591534
Push 38775 by mlaza@mozilla.com at Thu, 09 Sep 2021 21:27:46 +0000
Bug 1672343 - Ignore one of the SIMD shuffle operands if it is not used. r=lth Differential Revision: https://phabricator.services.mozilla.com/D124382
a88e0331539675340a0e91836b3e8f8f244ceae6: Bug 1672343 - Move shuffle analysis to the MIR. r=lth
Yury Delendik <ydelendik@mozilla.com> - Thu, 09 Sep 2021 16:40:44 +0000 - rev 591533
Push 38775 by mlaza@mozilla.com at Thu, 09 Sep 2021 21:27:46 +0000
Bug 1672343 - Move shuffle analysis to the MIR. r=lth Differential Revision: https://phabricator.services.mozilla.com/D124245
f655a49fb58f1984ebf5f89019dd27b7fd8530f9: Bug 1729266 - Add missing null check in WasmFunctionCreate; r=lth
Ms2ger <Ms2ger@gmail.com> - Tue, 07 Sep 2021 13:25:29 +0000 - rev 591186
Push 38770 by nerli@mozilla.com at Tue, 07 Sep 2021 21:47:56 +0000
Bug 1729266 - Add missing null check in WasmFunctionCreate; r=lth Differential Revision: https://phabricator.services.mozilla.com/D124618
eac40293649628d32911c909219d514bebb8ce63: Bug 1729124 - [MIPS64][ARM64] Fix gcc build issue. r=lth
Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> - Tue, 07 Sep 2021 07:44:09 +0000 - rev 591162
Push 38768 by ctuns@mozilla.com at Tue, 07 Sep 2021 09:48:49 +0000
Bug 1729124 - [MIPS64][ARM64] Fix gcc build issue. r=lth The SpecificRegs struct needs a constructor. Differential Revision: https://phabricator.services.mozilla.com/D124535
3f2f788cc2707a587de408459a77218c7218a782: Bug 1729029 - Ensure test fails when feature is off; r=lth
Ms2ger <Ms2ger@gmail.com> - Mon, 06 Sep 2021 09:32:59 +0000 - rev 591079
Push 38767 by ccozmuta@mozilla.com at Mon, 06 Sep 2021 21:42:43 +0000
Bug 1729029 - Ensure test fails when feature is off; r=lth Differential Revision: https://phabricator.services.mozilla.com/D124601
fc7e4f88c1ab93b6b9299167e6d7550d35510c11: Bug 1694191 - Improve codegen for extractLaneIntXXX. r=lth
Yury Delendik <ydelendik@mozilla.com> - Tue, 31 Aug 2021 16:13:45 +0000 - rev 590339
Push 38752 by malexandru@mozilla.com at Wed, 01 Sep 2021 03:48:05 +0000
Bug 1694191 - Improve codegen for extractLaneIntXXX. r=lth Use movq for extractLaneInt64x2 and lane=0. Differential Revision: https://phabricator.services.mozilla.com/D123992
51454ee5ad201c86769509589d6e6b102272d128: Bug 1727284 - wasm: Correctly mark WasmAnyRefFromJSObject as not a call. r=lth
Ryan Hunt <rhunt@eqrion.net> - Mon, 30 Aug 2021 18:27:53 +0000 - rev 590228
Push 38748 by mlaza@mozilla.com at Tue, 31 Aug 2021 03:18:05 +0000
Bug 1727284 - wasm: Correctly mark WasmAnyRefFromJSObject as not a call. r=lth I don't see any other wasm LIR nodes that are marked incorrectly. Differential Revision: https://phabricator.services.mozilla.com/D123967
340109ff1e247d77dadf82891f01db0a35241169: Bug 1725638. r=lth.
Julian Seward <jseward@acm.org> - Tue, 24 Aug 2021 11:51:45 +0000 - rev 589736
Push 38732 by smolnar@mozilla.com at Tue, 24 Aug 2021 21:59:48 +0000
Bug 1725638. r=lth. Differential Revision: https://phabricator.services.mozilla.com/D123101
580b8b38a565d52ddf2de287e9b422a42504f87c: Bug 1726497 - Fix include and forward declaration in WasmCode.h for ScriptSource and some others. r=lth
Tooru Fujisawa <arai_a@mac.com> - Thu, 19 Aug 2021 08:03:04 +0000 - rev 589291
Push 38719 by ccozmuta@mozilla.com at Thu, 19 Aug 2021 21:49:42 +0000
Bug 1726497 - Fix include and forward declaration in WasmCode.h for ScriptSource and some others. r=lth Differential Revision: https://phabricator.services.mozilla.com/D123045
5e2c1fa0ea106827c0b0cfc84d0044844574376d: Bug 1717914 - wasm: Introduce sourceMaxPages and clampedMaxPages for memories. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 16 Jul 2021 20:58:11 +0000 - rev 585762
Push 38619 by smolnar@mozilla.com at Sat, 17 Jul 2021 09:36:16 +0000
Bug 1717914 - wasm: Introduce sourceMaxPages and clampedMaxPages for memories. r=lth Wasm memory objects contain a maxPages field which is ambiguous. It is usually the maximum specified in the module source, but may be clamped on 32-bit systems. We use this maximum for linking and type reflection which is not correct. This commit splits the dual uses out into two separate variables. - sourceMaxPages: The original maximum pages from the module, may not be present. Used for linking and reflection. - clampedMaxPages: The computed maximum pages the memory may grow to. Always present, even if the memory does not specify a max. Used for limiting what size a memory may grow to, while still respecting both the source maximum and implementation limits. The SMDOC for linear memory is updated with the invariants that these variables hold. Differential Revision: https://phabricator.services.mozilla.com/D118649
4554af03e7c8ff4f642d131e15d1b7c76c9f6d18: Bug 1717914 - wasm: Rename MaxMemory32* to MaxMemory*. r=lth
Ryan Hunt <rhunt@eqrion.net> - Fri, 16 Jul 2021 20:58:11 +0000 - rev 585761
Push 38619 by smolnar@mozilla.com at Sat, 17 Jul 2021 09:36:16 +0000
Bug 1717914 - wasm: Rename MaxMemory32* to MaxMemory*. r=lth The MaxMemory(Pages,Bytes,BoundsCheckLimit) methods are named to be only applicable for memory32. Currently they are used for both memory32 and memory64 and I would expect that to stay that way for a while. So this commit renames them to be general purpose. Differential Revision: https://phabricator.services.mozilla.com/D118648