- 08 Nov, 2021 4 commits
-
-
Manos Koukoutos authored
Change-Id: Ibc3b7d73ce92f3d0f848e94b1266c99a78279392 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3259661 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#77761}
-
Manos Koukoutos authored
Since the indirect function table at index 0 in an instance is now represented like the other tables, the IndirectFunctionTableEntry abstraction is no more useful. We replace it with direct access to the tables and a simpler abstraction {FunctionTargetAndRef}. Bug: v8:11510 Change-Id: Iab4a6ca7eda8eb1757dbd321cb3997e98e78267e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3247030 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#77754}
-
Manos Koukoutos authored
Design doc: https://bit.ly/3jEVgzz We represent the indirect function table of a WasmInstanceObject at index 0 like the rest of the tables, i.e., as the 0th element of the instance's indirect_function_tables() field. For performance, we maintain direct links from the instance to the contents of table 0 (indirect_function_table_{size, sig_ids, refs, targets} in WasmInstanceObject). Bug: v8:11510 Change-Id: Ice49fd855109051d304ef9033cac7a495b68ab8b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3246970 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#77752}
-
Manos Koukoutos authored
The isolate root pointer in a WasmApiFuncionRef cannot be sandboxed, because we would need the isolate root in the first place to decode it. Therefore we do not use Foreign as the parent class of WasmApiFunctionRef. Bug: v8:11510 Change-Id: Idcbe654274c543ee571a335cb8e212ca3492d973 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3262134 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#77751}
-
- 05 Nov, 2021 4 commits
-
-
Thibaud Michaud authored
R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: I415c4488262a97cf04b71fd8e96071c7bff972cf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3231337Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#77740}
-
Thibaud Michaud authored
R=ahaas@chromium.org Bug: v8:12191 Change-Id: I15a5507a7dd0f02a3bbe9d3ce200206adf4d4539 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3231075 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#77734}
-
Victor Gomes authored
CodeSpaceMemoryModificationScope should only be used by the main thread and during a safepoint. This adds a check in CodeSpaceMemoryModificationScope. The reason for this is that CodeSpaceMemoryModificationScope is not thread-safe. It assumes that no other thread is modifying code space (either by setting memory permission or adding a new page). This CL also replaces CodeSpaceMemoryModificationScope to CodePageCollectionMemoryModificationScope in a few occurrences, where the former is not needed. This should not hurt performance. Bug: v8:12054 Change-Id: I2675e667782c6ad8410877a4e64374899066bcd1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3263890 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#77732}
-
Manos Koukoutos authored
We enable struct.new and array.init initializer expressions in the JS testcase generated by --wasm-fuzzer-gen-test. We needed to make some changes in the WasmInitExpr class, and to implement a new interface for the WasmFullDecoder, which constructs a WasmInitExpr. Changes: - Make WasmInitExpr a ZoneObject. Use a pointer for its operands_ field. This is needed so WasmInitExpr is trivially copiable, and thus usable as a Value type in WasmFullDecoder. - Implement a WasmFullDecoder interface in wasm-fuzzer-common that constructs a WasmInitExpr. Use it to decode initializers in the module generated by the fuzzer. - Change AppendInitExpr to take a WasmInitExpr as argument. - Fix an issue with printing of struct definitions. - Change initializer expression used for structs to struct.new_with_rtt. This is consistent with the currently used structural types. Bug: v8:11954 Change-Id: I65a87cc98701a54f32500be192b3b6eef2ff6c8c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3257712Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#77730}
-
- 04 Nov, 2021 2 commits
-
-
Andreas Haas authored
The wasm serialization format only contains TurboFan code. All other functions are only represented by placeholders. With this CL serialization fails if the serialized module does not contain any TurboFan functions and would therefore consist only of placeholders. This is a defense in depth approach, because ideally serialization only gets triggered when TurboFan code is available. However, in some scenarios like debugging it can happen that modules without TurboFan code get serialized. Bug: v8:12281 Change-Id: Ib05430ff89eb2317da80fc0d086ce1d7ab0e919d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212510 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#77715}
-
Jakob Kummerow authored
The old "gc-safe" implementation to get the off-heap type information wasn't quite as gc-safe as it needs to be. Due to parallel compaction, we shouldn't check for forwarding pointers; instead we should rely on the old location of the Foreign, but make sure not to look at its Map (which might be a forwarding pointer). Bug: v8:12185 Change-Id: I4570b00a5300a0d7ed8c042fa21d355373e0e691 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3260513 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#77707}
-
- 03 Nov, 2021 5 commits
-
-
Nico Hartmann authored
This reverts commit a3480b55. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20debug%20-%20header%20includes/22234/overview Original change's description: > Reland "[torque] Don't generate k(?:Start|End)Of\w+FieldsOffset constants" > > This is a reland of 7366f6e2 > > The test that failed after the initial commit was just flaky and has > been fixed; see https://bugs.chromium.org/p/v8/issues/detail?id=12341 > > Original change's description: > > [torque] Don't generate k(?:Start|End)Of\w+FieldsOffset constants > > > > Torque currently generates constants like kStartOfWeakFieldsOffset and > > kEndOfStrongFieldsOffset, which can be used when writing custom > > BodyDescriptors. However, these offsets have some potentially confusing > > behaviors: > > > > * They don't take inheritance into account and describe only the fields > > defined by the current class itself, so there might be (for example) > > strong fields before kStartOfStrongFieldsOffset if they were defined > > by a superclass. > > * kStartOfWeakFieldsOffset points to the first field defined in Torque > > using the keyword `weak`, which indicates fields with *custom* > > weakness semantics (those that should be visited with > > IterateCustomWeakPointers), not those that may contain standard weak > > pointers (visited with IterateMaybeWeakPointers). (As a follow-up, I'd > > like to also rename `weak` to `@customWeak`.) > > > > Given that these constants have very low usage and somewhat bizarre > > semantics, I propose that we remove them. This change does so, and > > updates the existing usages to either define the required constants > > directly in C++ or not use them. I know that defining these constants in > > C++ is more brittle, but I think that brittle and clear is better than > > automatic and incomprehensible. > > > > Bug: v8:7793 > > Change-Id: I87f8c85ccae4027f61ac73d4e7e4e2820e92003b > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3199731 > > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > > Cr-Commit-Position: refs/heads/main@{#77411} > > Bug: v8:7793 > Change-Id: Iefdd4014ce4b85b48c19ead79a0316774a5ecd45 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3258082 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Cr-Commit-Position: refs/heads/main@{#77688} Bug: v8:7793 Change-Id: I7b9667268901b7aef85a95832d40860056e61050 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3259656Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Owners-Override: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#77689}
-
Seth Brenith authored
This is a reland of 7366f6e2 The test that failed after the initial commit was just flaky and has been fixed; see https://bugs.chromium.org/p/v8/issues/detail?id=12341 Original change's description: > [torque] Don't generate k(?:Start|End)Of\w+FieldsOffset constants > > Torque currently generates constants like kStartOfWeakFieldsOffset and > kEndOfStrongFieldsOffset, which can be used when writing custom > BodyDescriptors. However, these offsets have some potentially confusing > behaviors: > > * They don't take inheritance into account and describe only the fields > defined by the current class itself, so there might be (for example) > strong fields before kStartOfStrongFieldsOffset if they were defined > by a superclass. > * kStartOfWeakFieldsOffset points to the first field defined in Torque > using the keyword `weak`, which indicates fields with *custom* > weakness semantics (those that should be visited with > IterateCustomWeakPointers), not those that may contain standard weak > pointers (visited with IterateMaybeWeakPointers). (As a follow-up, I'd > like to also rename `weak` to `@customWeak`.) > > Given that these constants have very low usage and somewhat bizarre > semantics, I propose that we remove them. This change does so, and > updates the existing usages to either define the required constants > directly in C++ or not use them. I know that defining these constants in > C++ is more brittle, but I think that brittle and clear is better than > automatic and incomprehensible. > > Bug: v8:7793 > Change-Id: I87f8c85ccae4027f61ac73d4e7e4e2820e92003b > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3199731 > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Cr-Commit-Position: refs/heads/main@{#77411} Bug: v8:7793 Change-Id: Iefdd4014ce4b85b48c19ead79a0316774a5ecd45 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3258082Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/main@{#77688}
-
Andreas Haas authored
R=manoskouk@chromium.org Bug: v8:12281 Change-Id: I7f5c231683c45e7c87c649246759f76464f4e835 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3259646 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#77687}
-
Junliang Yan authored
Change-Id: Ie46687a1af834b9c1a6c8fa5bcf5badb61cc1647 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3259645Reviewed-by:
Milad Fa <mfarazma@redhat.com> Commit-Queue: Junliang Yan <junyan@redhat.com> Cr-Commit-Position: refs/heads/main@{#77686}
-
Thibaud Michaud authored
We only expect the "wasm_exception_values_symbol" property to be a fixed array if the property actually exists. If the property is not found, JSReceiver::GetProperty returns "undefined", so skip the check in this case. R=clemensb@chromium.org Bug: chromium:1262582 Change-Id: I28d7891064bdd7632ff1a4c94ba021163401fd88 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3244416 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#77685}
-
- 02 Nov, 2021 4 commits
-
-
Manos Koukoutos authored
Design doc: https://bit.ly/3jEVgzz Summary: We change the context for WasmJSFunction and WasmCapiFunction from a tuple containing the instance to a triple WasmAPIFunctionRef = {isolate root, context, callable}. This way we do not have to maintain the correct instance at runtime. Also, a few places in the code get simplified. Changes: - In WasmGraphBuilder, support having a WasmAPIFunctionRef at parameter 0. - Remove unpacking of (instance, callable) tuple from code generators. - Remove the part in WasmGraphBuilder and LiftoffCompiler that used to set the instance field of the function reference. - Modify code that handles the 'ref' field in wasm-objects.*, factory.* and c-api.cc. - Fix the recorded safepoint address for arm when calling a C function from wasm. - (Drive-by) Remove WasmAllocatePair. Bug: v8:11510 Change-Id: I2a4ef3abaf9da36c4a2d85b434965a40a289b9ec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3236719 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/main@{#77639}
-
Andreas Haas authored
R=jkummerow@chromium.org Bug: v8:12281 Change-Id: If0ef4861d6466da211a799916e62234d458c2614 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3253357Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#77638}
-
Lu Yahan authored
Port commit 7a93bd64 Port commit afd15549 Change-Id: I7b5d59d448d210d80ee656d81c8134c780586296 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3256981Reviewed-by:
ji qiu <qiuji@iscas.ac.cn> Commit-Queue: ji qiu <qiuji@iscas.ac.cn> Auto-Submit: Yahan Lu <yahan@iscas.ac.cn> Cr-Commit-Position: refs/heads/main@{#77636}
-
Zhao Jiazhong authored
Port commit 7a93bd64 Change-Id: I3d1793154b1d69fcc0dcde7b7d731cbbb326f05d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3255208 Auto-Submit: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Reviewed-by:
Liu yu <liuyu@loongson.cn> Commit-Queue: Liu yu <liuyu@loongson.cn> Cr-Commit-Position: refs/heads/main@{#77635}
-
- 30 Oct, 2021 1 commit
-
-
Milad Fa authored
Port 7a93bd64 Original Commit Message: Temporarily behind a new flag: --new-wasm-dynamic-tiering The plan is to merge this into the existing --wasm-dynamic-tiering flag once it's been confirmed to be generally beneficial. R=jkummerow@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I1ba28b60e628dc2ded33b267be62debcf1b03099 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3250936 Commit-Queue: Milad Fa <mfarazma@redhat.com> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Junliang Yan <junyan@redhat.com> Cr-Commit-Position: refs/heads/main@{#77628}
-
- 29 Oct, 2021 2 commits
-
-
Jakob Kummerow authored
Temporarily behind a new flag: --new-wasm-dynamic-tiering The plan is to merge this into the existing --wasm-dynamic-tiering flag once it's been confirmed to be generally beneficial. Bug: v8:12281 Change-Id: I191d03170f8d5360073a45fea170f432074f7534 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3247632Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#77620}
-
Liu Yu authored
If dst.low_gp and src_op_upper.rm are the same register, then the first Ulw destroys src_op_upper.rm and the second Ulw reads the memory from bad address. Change-Id: I5e385296c9a95707ad2416124a2595af29176a61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3252869Reviewed-by:
Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Auto-Submit: Liu yu <liuyu@loongson.cn> Cr-Commit-Position: refs/heads/main@{#77604}
-
- 28 Oct, 2021 2 commits
-
-
Ng Zhi An authored
4 instructions, int32x4.trunc_f32x4_{s,u}, int32x4.trunc_f64x2_{s,u}_zero. Drive-by cleanup to wasm-interpreter to use saturated_cast. The machine ops are named <int>Trunc<float>, dropping the "sat" since these don't do any saturation anymore. Bug: v8:12284 Change-Id: I2d4d6a61b819b287fee69e3eea03dd3151cfa10d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3223166Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77598}
-
Yujie Wang authored
Implement `LiftoffAssembler::emit_i16x8_sconvert_i32x4` for riscv. Add tests for rvv integer and floating-point instructions. Add simulator support for rvv instructions, e.g. `vfmadd`, `vnclip`. Fixed order of operands for `vfdiv.vv`. Bug: v8:11976 Change-Id: I0691ac66771468533c5994be1fc8a86b09d3c738 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3225319Reviewed-by:
Yahan Lu <yahan@iscas.ac.cn> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Yahan Lu <yahan@iscas.ac.cn> Cr-Commit-Position: refs/heads/main@{#77595}
-
- 27 Oct, 2021 3 commits
-
-
Thibaud Michaud authored
Using the jslimit can race with a concurrent interrupt request. Also remove one unnecessary indirection. R=ahaas@chromium.org Bug: v8:12343 Change-Id: I8b6cc726124797e3687854b1eb2cd57d822c4769 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3247036Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#77576}
-
Manos Koukoutos authored
This object will be used for the 'ref' field of WasmCapiFunctionData and WasmJSFunctionData, replacing the currently used pair. Design doc: https://bit.ly/3jEVgzz Bug: v8:11510 Change-Id: Ic5dec88458b562883d571b3463269b2308f489c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3236718Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#77575}
-
Thibaud Michaud authored
R=ahaas@chromium.org Change-Id: Ic9d7430549fe78c5a97d551aa813bafe881a5c48 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3247193Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#77572}
-
- 26 Oct, 2021 2 commits
-
-
Thibaud Michaud authored
Recompute the spill offsets for values in the merge region, instead of reusing the offsets of the source. This ensures that spill slots stay contiguous (modulo alignment). This also solves a correctness issue where the spill offsets in the merge region could move up, thereby overwriting the source of another move. With this change, the spill offsets always move down (to fill the gap) or stay the same, such that processing them from bottom to top can only overwrite sources of already-processed moves. Since we do not reuse the current state's offsets, this might generate extra stack moves and regress generated code performance a bit. Drive-by: print spill offsets in the Liftoff trace R=clemensb@chromium.org Bug: v8:12270 Change-Id: I8d20df8fc1e80dd36b6f651de457686e9935a628 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3245115 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#77556}
-
Thibaud Michaud authored
R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: Ied9ab5fa5009e5ab268d1c9893729d8210ae62ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3220344 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#77542}
-
- 25 Oct, 2021 1 commit
-
-
Thibaud Michaud authored
R=ahaas@chromium.org Change-Id: I860cd7aebdf46f323c7f6ad0cd563246a061c4d1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3226338 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#77525}
-
- 21 Oct, 2021 1 commit
-
-
Ng Zhi An authored
Relaxed f32x4 and f64x2 min and max. These instructions only guarantee results when the inputs are non nans, and when the inputs are not 0s of opposite signs. Reuse existing float binop testing harnesses and add special checks for such constants when relaxed operations are being tested. Drive-by rename of x64 instruction codes to be Minps/Maxps/Minpd/Maxpd since they map down exactly to a single instruction. Bug: v8:12284 Change-Id: I1449dbfa87935a96d7d260db22667ab7b9e86601 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3218196Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77484}
-
- 19 Oct, 2021 1 commit
-
-
QiuJi authored
Port the rest part of 9d3c9d47 The first part is at: https://chromium-review.googlesource.com/c/v8/v8/+/3212059 Bug: v8:7748 Change-Id: I8b39deec2eee35511f56e826d92bf52e32a81daf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3226551Reviewed-by:
Yahan Lu <yahan@iscas.ac.cn> Commit-Queue: Yahan Lu <yahan@iscas.ac.cn> Cr-Commit-Position: refs/heads/main@{#77450}
-
- 18 Oct, 2021 1 commit
-
-
Manos Koukoutos authored
This CL improves wasm inlining heuristics in Turbofan, for an average 8,5% performance improvement in selected benchmarks. Changes: - In WasmInliner::Reduce(), only collect inlining candidates into a priority queue, according to WasmInliner::LexicographicOrdering. Move actual inlining to Finalize(). - Remove the InlineFirstFew heuristic. Add two limits to inlining: Maximum relative size increase (reversely proportional to the function size), and absolute size increase. - Pass information about call frequency from liftoff-collected feedback to the WasmInliner though the wasm module. - Run wasm inlining along other optimizations in the pipeline. - Split inlining and speculative inlining tests. Bug: v8:7748, v8:12166 Change-Id: Iccee22093db765981889a24451fb458dfce1f1a6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3222764Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#77428}
-
- 15 Oct, 2021 6 commits
-
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: Id09544a9f55843d2474b6114da9d42e1ec994cff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3226322 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#77417}
-
Leszek Swirski authored
This reverts commit 7366f6e2. Reason for revert: Speculative revert for cctest/test-debug-helper/GetObjectProperties failures https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket/8833300564873660401/+/u/Check/GetObjectProperties Original change's description: > [torque] Don't generate k(?:Start|End)Of\w+FieldsOffset constants > > Torque currently generates constants like kStartOfWeakFieldsOffset and > kEndOfStrongFieldsOffset, which can be used when writing custom > BodyDescriptors. However, these offsets have some potentially confusing > behaviors: > > * They don't take inheritance into account and describe only the fields > defined by the current class itself, so there might be (for example) > strong fields before kStartOfStrongFieldsOffset if they were defined > by a superclass. > * kStartOfWeakFieldsOffset points to the first field defined in Torque > using the keyword `weak`, which indicates fields with *custom* > weakness semantics (those that should be visited with > IterateCustomWeakPointers), not those that may contain standard weak > pointers (visited with IterateMaybeWeakPointers). (As a follow-up, I'd > like to also rename `weak` to `@customWeak`.) > > Given that these constants have very low usage and somewhat bizarre > semantics, I propose that we remove them. This change does so, and > updates the existing usages to either define the required constants > directly in C++ or not use them. I know that defining these constants in > C++ is more brittle, but I think that brittle and clear is better than > automatic and incomprehensible. > > Bug: v8:7793 > Change-Id: I87f8c85ccae4027f61ac73d4e7e4e2820e92003b > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3199731 > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Cr-Commit-Position: refs/heads/main@{#77411} Bug: v8:7793 Change-Id: Ia12b5d773db35739283ca8871d3dd6922413cc82 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3226783 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Owners-Override: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#77415}
-
Manos Koukoutos authored
GetUnusedRegister may spill registers and thus modify stack slots. Therefore, we have to call it before fetching stack slots. This is another instance of https://chromium-review.googlesource.com/c/v8/v8/+/3217199. Bug: v8:7748 Change-Id: I9ff28b26f2dce93ef7b71c1100d9bf88f7c2f7c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3226327Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#77414}
-
Clemens Backes authored
This adds a few more trace events, also tracing the number of wrappers. This can help to understand instantiation time better. R=ahaas@chromium.org Bug: v8:12287 Change-Id: Ic1a03b2e278af64908f0dc45cd5db60ecf7c79f5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3226323Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#77412}
-
Seth Brenith authored
Torque currently generates constants like kStartOfWeakFieldsOffset and kEndOfStrongFieldsOffset, which can be used when writing custom BodyDescriptors. However, these offsets have some potentially confusing behaviors: * They don't take inheritance into account and describe only the fields defined by the current class itself, so there might be (for example) strong fields before kStartOfStrongFieldsOffset if they were defined by a superclass. * kStartOfWeakFieldsOffset points to the first field defined in Torque using the keyword `weak`, which indicates fields with *custom* weakness semantics (those that should be visited with IterateCustomWeakPointers), not those that may contain standard weak pointers (visited with IterateMaybeWeakPointers). (As a follow-up, I'd like to also rename `weak` to `@customWeak`.) Given that these constants have very low usage and somewhat bizarre semantics, I propose that we remove them. This change does so, and updates the existing usages to either define the required constants directly in C++ or not use them. I know that defining these constants in C++ is more brittle, but I think that brittle and clear is better than automatic and incomprehensible. Bug: v8:7793 Change-Id: I87f8c85ccae4027f61ac73d4e7e4e2820e92003b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3199731Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/main@{#77411}
-
Clemens Backes authored
This makes it easier to see if a module is taken from the cache. R=thibaudm@chromium.org Bug: v8:12287 Change-Id: I6b7acf15f1aa20f6531d746d37890608462606de Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3226326 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#77410}
-
- 14 Oct, 2021 1 commit
-
-
Ng Zhi An authored
4 instructions, i8x16, i16x8, i32x4, i64x2 relaxed lane select. These instructions only guarantee results when the entire lane is set or unset, so vpblendvb will give correct results for all of them. Bug: v8:12284 Change-Id: I76959a23f2d97de8ecc3bef43d138184484e3c4d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3207006Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77401}
-