Issue 7700 in v8: Tracking bug: Maglev

114 views
Skip to first unread message

jgru… via monorail

unread,
Mar 9, 2022, 8:32:51 AM3/9/22
to v8-re...@googlegroups.com
Updates:
Labels: Type-Task

Comment #47 on issue 7700 by jgr...@chromium.org: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c47

(No comment was entered for this change.)

--
You received this message because:
1. The project was configured to send all issue notifications to this address

You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settings

natte… via monorail

unread,
Mar 9, 2022, 8:43:25 AM3/9/22
to v8-re...@googlegroups.com
Updates:
Blocking: chromium:1300158
Labels: platform-ask

Comment #48 on issue 7700 by natt...@google.com: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c48

Git Watcher via monorail

unread,
Mar 9, 2022, 10:45:07 AM3/9/22
to v8-re...@googlegroups.com

Comment #49 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c49

The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/60ac45f0fbc1e84836ce6b33d5f8f0c7143341b3

commit 60ac45f0fbc1e84836ce6b33d5f8f0c7143341b3
Author: Victor Gomes <victo...@chromium.org>
Date: Wed Mar 09 14:39:28 2022

[maglev] Add UNSUPPORTED macro for codegen

Allows incremental test, while some codegen paths are not available.

Bug: v8:7700
Change-Id: Icc24cf8e85464587f9eee6175107093a25b76da9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512794
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79423}

[modify] https://crrev.com/60ac45f0fbc1e84836ce6b33d5f8f0c7143341b3/src/maglev/maglev-code-generator.cc
[modify] https://crrev.com/60ac45f0fbc1e84836ce6b33d5f8f0c7143341b3/src/maglev/maglev-code-gen-state.h
[modify] https://crrev.com/60ac45f0fbc1e84836ce6b33d5f8f0c7143341b3/src/maglev/maglev-graph-builder.cc
[modify] https://crrev.com/60ac45f0fbc1e84836ce6b33d5f8f0c7143341b3/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Mar 10, 2022, 3:49:25 AM3/10/22
to v8-re...@googlegroups.com

Comment #50 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c50


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/0504331b78a421359f2aaebe74c07f4b2d450e76

commit 0504331b78a421359f2aaebe74c07f4b2d450e76
Author: Leszek Swirski <les...@chromium.org>
Date: Wed Mar 09 16:50:20 2022

[maglev] Use free list for iterating used registers

Don't rely on register_values[index] == nullptr for checking if a
register is free, but instead re-use the free register list, and iterate
the allocatable_register & ~free_register list when iterating used
registers.

This also changes the indexing of register_values to be by register
code, not allocatable register index. The register state stored on the
InterpreterFrameState, however, stays compact (allocatable register
count). A new wrapper class + iterator keeps iteration over it and the
register_values array in sync.

Bug: v8:7700
Change-Id: I7815aa2d4a1f7b7ebafaaafe0727219adcc4dcfe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512792
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Commit-Queue: Toon Verwaest <verw...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79434}

[modify] https://crrev.com/0504331b78a421359f2aaebe74c07f4b2d450e76/src/codegen/arm64/register-arm64.h
[modify] https://crrev.com/0504331b78a421359f2aaebe74c07f4b2d450e76/src/codegen/register.h
[modify] https://crrev.com/0504331b78a421359f2aaebe74c07f4b2d450e76/src/maglev/maglev-regalloc-data.h
[modify] https://crrev.com/0504331b78a421359f2aaebe74c07f4b2d450e76/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/0504331b78a421359f2aaebe74c07f4b2d450e76/src/maglev/maglev-interpreter-frame-state.h
[modify] https://crrev.com/0504331b78a421359f2aaebe74c07f4b2d450e76/src/maglev/maglev-regalloc.h
[modify] https://crrev.com/0504331b78a421359f2aaebe74c07f4b2d450e76/src/maglev/maglev-ir.h
[modify] https://crrev.com/0504331b78a421359f2aaebe74c07f4b2d450e76/src/maglev/maglev-code-generator.cc
[modify] https://crrev.com/0504331b78a421359f2aaebe74c07f4b2d450e76/src/codegen/register-base.h
[modify] https://crrev.com/0504331b78a421359f2aaebe74c07f4b2d450e76/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Mar 14, 2022, 10:40:07 AM3/14/22
to v8-re...@googlegroups.com

Comment #51 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c51


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/9694d9b61b0251792a8f7e4c686f0b39e494f80b

commit 9694d9b61b0251792a8f7e4c686f0b39e494f80b
Author: Victor Gomes <victo...@chromium.org>
Date: Mon Mar 14 13:28:32 2022

[maglev] Generic binary operations

The CL implements binary operations bytecodes as generic nodes that
call the correspondent runtime builtin.

Bug: v8:7700
Change-Id: I82c5e20e4103d4ef367184af1242bae7f7f93fe0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3509392
Reviewed-by: Leszek Swirski <les...@chromium.org>
Reviewed-by: Jakob Gruber <jgr...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79462}

[modify] https://crrev.com/9694d9b61b0251792a8f7e4c686f0b39e494f80b/test/cctest/wasm/wasm-atomics-utils.h
[modify] https://crrev.com/9694d9b61b0251792a8f7e4c686f0b39e494f80b/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/9694d9b61b0251792a8f7e4c686f0b39e494f80b/test/cctest/wasm/test-run-wasm-atomics64.cc
[modify] https://crrev.com/9694d9b61b0251792a8f7e4c686f0b39e494f80b/src/maglev/maglev-ir.h
[modify] https://crrev.com/9694d9b61b0251792a8f7e4c686f0b39e494f80b/src/common/globals.h
[modify] https://crrev.com/9694d9b61b0251792a8f7e4c686f0b39e494f80b/src/objects/objects.h
[modify] https://crrev.com/9694d9b61b0251792a8f7e4c686f0b39e494f80b/src/maglev/maglev-graph-builder.cc
[modify] https://crrev.com/9694d9b61b0251792a8f7e4c686f0b39e494f80b/src/maglev/maglev-ir.cc
[modify] https://crrev.com/9694d9b61b0251792a8f7e4c686f0b39e494f80b/test/cctest/wasm/test-run-wasm-atomics.cc
[add] https://crrev.com/9694d9b61b0251792a8f7e4c686f0b39e494f80b/src/common/operation.h

Git Watcher via monorail

unread,
Mar 14, 2022, 12:02:21 PM3/14/22
to v8-re...@googlegroups.com

Comment #52 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c52


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/7e7661a1c87e1f4c403ccdfe2199643da7972c27

commit 7e7661a1c87e1f4c403ccdfe2199643da7972c27
Author: Toon Verwaest <verw...@chromium.org>
Date: Mon Mar 14 15:03:08 2022

[maglev] Free a duplicate reg in FreeSomeRegister

If a value is in multiple registers, pick one of them to be freed.

Bug: v8:7700
Change-Id: I1886b977187b4d8e939ff106edde4ccf716661d7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3522063
Auto-Submit: Toon Verwaest <verw...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79463}

[modify] https://crrev.com/7e7661a1c87e1f4c403ccdfe2199643da7972c27/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/7e7661a1c87e1f4c403ccdfe2199643da7972c27/src/maglev/maglev-regalloc.h
[modify] https://crrev.com/7e7661a1c87e1f4c403ccdfe2199643da7972c27/src/maglev/maglev-ir.h

Git Watcher via monorail

unread,
Mar 14, 2022, 12:41:07 PM3/14/22
to v8-re...@googlegroups.com

Comment #53 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c53


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/273d3e4babe758632e533db2be7999bc00afcaa1

commit 273d3e4babe758632e533db2be7999bc00afcaa1
Author: Victor Gomes <victo...@chromium.org>
Date: Mon Mar 14 15:55:21 2022

[maglev] Missing calls to Maglev in MaybeTailCallOptimizedCodeSlot

Bug: v8:7700
Change-Id: Ib3b3f453e162e0913b8077ac8f8b9e2273deaed9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3521783

Commit-Queue: Victor Gomes <victo...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>

Git Watcher via monorail

unread,
Mar 16, 2022, 4:55:10 AM3/16/22
to v8-re...@googlegroups.com

Comment #54 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c54


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/697a1aa3eedc31619cc2777829d2fafa45a74097

commit 697a1aa3eedc31619cc2777829d2fafa45a74097
Author: Jakob Gruber <jgr...@chromium.org>
Date: Wed Mar 16 06:52:03 2022

[maglev] Towards concurrent Maglev compilation

This CL implements most parts of the concurrent maglev pipeline.

- MaglevConcurrentDispatcher: controls concurrent jobs.
- MaglevCompilationInfo: holds job-global data, controls handle
fiddling between the main isolate and local isolates, owns
job-global state like the Zone.
- MaglevCompilationUnit: same as before, holds per-unit data.

Still missing: job finalization.

Bug: v8:7700
Change-Id: I281178d945e79a0ba97fa2ac7023285d84a16641
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516036
Reviewed-by: Dominik Inführ <dinf...@chromium.org>
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Commit-Queue: Jakob Gruber <jgr...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79489}

[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-graph-printer.h
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-interpreter-frame-state.h
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-register-frame-array.h
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-compiler.cc
[delete] https://crrev.com/14e05cbc2e91991704edaab6896001761efcb72f/src/maglev/maglev-compilation-data.cc
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/codegen/compiler.cc
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-graph-processor.h
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-code-generator.cc
[add] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-compilation-unit.cc
[add] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-compilation-info.cc
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-ir.cc
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/handles/handles.cc
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-compiler.h
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-concurrent-dispatcher.h
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/compiler/pipeline.cc
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-code-generator.h
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-regalloc.h
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-concurrent-dispatcher.cc
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/BUILD.gn
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev.cc
[add] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-compilation-unit.h
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/handles/handles.h
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-code-gen-state.h
[delete] https://crrev.com/14e05cbc2e91991704edaab6896001761efcb72f/src/maglev/maglev-compilation-data.h
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/test/cctest/compiler/test-concurrent-shared-function-info.cc
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-graph-builder.cc
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-graph.h
[add] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/maglev/maglev-compilation-info.h
[modify] https://crrev.com/697a1aa3eedc31619cc2777829d2fafa45a74097/src/compiler/js-heap-broker.h

Git Watcher via monorail

unread,
Mar 17, 2022, 8:38:12 AM3/17/22
to v8-re...@googlegroups.com

Comment #55 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c55


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/27708001a6905df00ce513b3220a95a901f88185

commit 27708001a6905df00ce513b3220a95a901f88185
Author: Jakob Gruber <jgr...@chromium.org>
Date: Thu Mar 17 06:30:29 2022

[compiler] Extract TF-specific parts of OptimizedCompilationJob

.. into new virtual subclass TurbofanCompilationJob. Update all TF code
to derive from this class. Specifically, the OptimizedCompilationInfo is
TF-specific and now lives in TurbofanCompilationJob.

The motivation behind this is that Maglev now also uses this
infrastructure.

Drive-by: Replace CompilationMode with ConcurrencyMode.

Bug: v8:7700
Change-Id: Iae6d1ffd1c810e2e45cad6c9b4e43d4c82ac54a7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3528493
Reviewed-by: Tobias Tebbi <te...@chromium.org>
Auto-Submit: Jakob Gruber <jgr...@chromium.org>
Reviewed-by: Jakob Kummerow <jkum...@chromium.org>
Commit-Queue: Jakob Kummerow <jkum...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79515}

[modify] https://crrev.com/27708001a6905df00ce513b3220a95a901f88185/src/compiler-dispatcher/optimizing-compile-dispatcher.cc
[modify] https://crrev.com/27708001a6905df00ce513b3220a95a901f88185/src/compiler/wasm-compiler.cc
[modify] https://crrev.com/27708001a6905df00ce513b3220a95a901f88185/src/compiler/pipeline.cc
[modify] https://crrev.com/27708001a6905df00ce513b3220a95a901f88185/src/compiler/pipeline.h
[modify] https://crrev.com/27708001a6905df00ce513b3220a95a901f88185/src/codegen/compiler.h
[modify] https://crrev.com/27708001a6905df00ce513b3220a95a901f88185/src/codegen/compiler.cc
[modify] https://crrev.com/27708001a6905df00ce513b3220a95a901f88185/src/maglev/maglev-concurrent-dispatcher.cc
[modify] https://crrev.com/27708001a6905df00ce513b3220a95a901f88185/test/unittests/compiler-dispatcher/optimizing-compile-dispatcher-unittest.cc
[modify] https://crrev.com/27708001a6905df00ce513b3220a95a901f88185/src/wasm/function-compiler.h
[modify] https://crrev.com/27708001a6905df00ce513b3220a95a901f88185/src/compiler-dispatcher/optimizing-compile-dispatcher.h
[modify] https://crrev.com/27708001a6905df00ce513b3220a95a901f88185/src/compiler/wasm-compiler.h

Git Watcher via monorail

unread,
Mar 17, 2022, 9:31:17 AM3/17/22
to v8-re...@googlegroups.com

Comment #56 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c56


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/406bcd69fc6525f98a5e2de5b0c0b528a0350acb

commit 406bcd69fc6525f98a5e2de5b0c0b528a0350acb
Author: Jakob Gruber <jgr...@chromium.org>
Date: Wed Mar 16 09:20:07 2022

[maglev] Finish & enable basic Maglev concurrent tierups

This implements the last bits of basic concurrent Maglev compilation.
When jobs have been processed, schedule an interrupt to trigger codegen
and building the Code object on the main thread.

Bug: v8:7700
Change-Id: I348ade4777ddddf7c3a6b0575d9f51e5fa00c9fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3528494

Reviewed-by: Toon Verwaest <verw...@chromium.org>
Commit-Queue: Jakob Gruber <jgr...@chromium.org>

Git Watcher via monorail

unread,
Mar 17, 2022, 11:35:07 AM3/17/22
to v8-re...@googlegroups.com

Comment #57 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c57


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/92c27e5e7faa6d863515a906be83c62cb06ec275

commit 92c27e5e7faa6d863515a906be83c62cb06ec275
Author: Manos Koukoutos <mano...@chromium.org>
Date: Thu Mar 17 14:38:47 2022

Revert "[maglev] Finish & enable basic Maglev concurrent tierups"

This reverts commit 406bcd69fc6525f98a5e2de5b0c0b528a0350acb.

Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64/46797/overview

Original change's description:

> [maglev] Finish & enable basic Maglev concurrent tierups
>
> This implements the last bits of basic concurrent Maglev compilation.
> When jobs have been processed, schedule an interrupt to trigger codegen
> and building the Code object on the main thread.
>
> Bug: v8:7700
> Change-Id: I348ade4777ddddf7c3a6b0575d9f51e5fa00c9fb
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3528494
> Reviewed-by: Toon Verwaest <verw...@chromium.org>
> Commit-Queue: Jakob Gruber <jgr...@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79516}

Bug: v8:7700
Change-Id: I1faa092b96e56149b4db2e271680f39c7af61554
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3532231
Bot-Commit: Rubber Stamper <rubber-...@appspot.gserviceaccount.com>
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Commit-Queue: Manos Koukoutos <mano...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79517}

[modify] https://crrev.com/92c27e5e7faa6d863515a906be83c62cb06ec275/src/execution/stack-guard.h
[modify] https://crrev.com/92c27e5e7faa6d863515a906be83c62cb06ec275/src/maglev/maglev-concurrent-dispatcher.h
[modify] https://crrev.com/92c27e5e7faa6d863515a906be83c62cb06ec275/src/maglev/maglev-compilation-info.h
[modify] https://crrev.com/92c27e5e7faa6d863515a906be83c62cb06ec275/src/execution/stack-guard.cc
[modify] https://crrev.com/92c27e5e7faa6d863515a906be83c62cb06ec275/src/maglev/maglev-concurrent-dispatcher.cc
[modify] https://crrev.com/92c27e5e7faa6d863515a906be83c62cb06ec275/src/execution/tiering-manager.cc

Git Watcher via monorail

unread,
Mar 18, 2022, 10:44:07 AM3/18/22
to v8-re...@googlegroups.com

Comment #58 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c58


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/d7ccedb68fe72c9f5984ef99208331c283fcbd05

commit d7ccedb68fe72c9f5984ef99208331c283fcbd05
Author: Victor Gomes <victo...@chromium.org>
Date: Fri Mar 18 14:02:25 2022

[maglev] Do not include maglev headers if maglev is not supported

Fixes bazel bot issue:
https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20bazel%20-%20builder/1279/overview

Bug: v8:7700
Change-Id: I4a7b43517574fc99bed2fe2bd75c126d06fcfad8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3535790

Commit-Queue: Victor Gomes <victo...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Mar 21, 2022, 4:27:17 AM3/21/22
to v8-re...@googlegroups.com

Comment #59 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c59


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/0b28b6e6c17ae37cef8f379c76376b4a6fc02367

commit 0b28b6e6c17ae37cef8f379c76376b4a6fc02367
Author: Jakob Gruber <jgr...@chromium.org>
Date: Mon Mar 21 07:36:39 2022

Reland `[maglev] Finish & enable basic Maglev concurrent tierups`


This implements the last bits of basic concurrent Maglev compilation.
When jobs have been processed, schedule an interrupt to trigger codegen
and building the Code object on the main thread.

Changed since the initial version:
- Put the include behind V8_ENABLE_MAGLEV.
- Skip 18.js until we have deterministic test helpers for concurrent
tiering.

Bug: v8:7700
Change-Id: Ibc103f097fe00f7df93a33a785939e43901f3734
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3536662
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Jakob Gruber <jgr...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79539}

[modify] https://crrev.com/0b28b6e6c17ae37cef8f379c76376b4a6fc02367/src/execution/stack-guard.h
[modify] https://crrev.com/0b28b6e6c17ae37cef8f379c76376b4a6fc02367/src/maglev/maglev-concurrent-dispatcher.h
[modify] https://crrev.com/0b28b6e6c17ae37cef8f379c76376b4a6fc02367/src/maglev/maglev-compilation-info.h
[modify] https://crrev.com/0b28b6e6c17ae37cef8f379c76376b4a6fc02367/src/execution/stack-guard.cc
[modify] https://crrev.com/0b28b6e6c17ae37cef8f379c76376b4a6fc02367/src/maglev/maglev-concurrent-dispatcher.cc
[modify] https://crrev.com/0b28b6e6c17ae37cef8f379c76376b4a6fc02367/src/execution/tiering-manager.cc
[modify] https://crrev.com/0b28b6e6c17ae37cef8f379c76376b4a6fc02367/test/mjsunit/mjsunit.status

Git Watcher via monorail

unread,
Mar 21, 2022, 12:40:06 PM3/21/22
to v8-re...@googlegroups.com

Comment #60 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c60


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/857b33f53749529cebdfb2aec5401032a002c23f

commit 857b33f53749529cebdfb2aec5401032a002c23f
Author: Victor Gomes <victo...@chromium.org>
Date: Fri Mar 18 15:35:07 2022

[maglev] Use virtual accumulator slot in frame array

During a frame merge we call ForEachValue that "get"s every
live register, including the virtual accumulator. That currently
fails since we need to check if the register is the virtual
accumulator and set/get the accumulator field in InterpreterFrameState.

The virtual accumulator slot in RegisterFrameArray (the same as the
return address in a live frame) is actually unused.
So we can use this slot for the InterpreterFrameState's accumulator,
instead of a separate field.

Bug: v8:7700
Change-Id: Ife33946a4f9c58ca1f4eadeb587f9880f6fb2afc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3536648
Auto-Submit: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79553}

[modify] https://crrev.com/857b33f53749529cebdfb2aec5401032a002c23f/src/maglev/maglev-interpreter-frame-state.h

Git Watcher via monorail

unread,
Mar 23, 2022, 5:21:19 AM3/23/22
to v8-re...@googlegroups.com

Comment #61 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c61


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/8bde9dce235f5afc185cf61ee19b206fc9cb022e

commit 8bde9dce235f5afc185cf61ee19b206fc9cb022e
Author: Victor Gomes <victo...@chromium.org>
Date: Tue Mar 22 13:35:12 2022

[maglev] CallProperty input count should consider function

CallProperty IR has inputs 0 (function), 1 (context), and the
remaining are variable according to the register count.

Bug: v8:7700
Change-Id: Ie9d8785bd5c1ae878c664683f8ebcff4ce6c408a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3541924

Auto-Submit: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>

Git Watcher via monorail

unread,
Mar 23, 2022, 5:44:17 AM3/23/22
to v8-re...@googlegroups.com

Comment #62 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c62


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/b026cd5c258e90fa89ce39c6d2c0555066fa6211

commit b026cd5c258e90fa89ce39c6d2c0555066fa6211
Author: Victor Gomes <victo...@chromium.org>
Date: Tue Mar 22 11:07:39 2022

[maglev] Use ForEachValue in CopyFrom

Bug: v8:7700
Change-Id: I5cd1a89aef9029752415b3b6b7bd124c5819024d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3541922

Auto-Submit: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>

Git Watcher via monorail

unread,
Mar 23, 2022, 6:13:11 AM3/23/22
to v8-re...@googlegroups.com

Comment #63 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c63


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/d423178dba32e46c51b898c79467a2f7fbcd5b65

commit d423178dba32e46c51b898c79467a2f7fbcd5b65
Author: Victor Gomes <victo...@chromium.org>
Date: Wed Mar 23 09:25:35 2022

[maglev] Create test variant

Bug: v8:7700
Change-Id: Icd9c0ce6fce727759beec246253dbd16756abc09
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545166
Commit-Queue: Victor Gomes <victo...@chromium.org>

Auto-Submit: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>

Git Watcher via monorail

unread,
Mar 23, 2022, 7:10:08 AM3/23/22
to v8-re...@googlegroups.com

Comment #64 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c64


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/e4273782e9042b137aa9217255ac0650eb678917

commit e4273782e9042b137aa9217255ac0650eb678917
Author: Victor Gomes <victo...@chromium.org>
Date: Wed Mar 23 10:25:39 2022

[maglev] Unsupport exceptions

Bail if exception handler table is non-empty.

Bug: v8:12726, v8:7700
Change-Id: I6c19d66cd02b0cef610733b802f04f72e1dd0d58
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545170

Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79569}

[modify] https://crrev.com/e4273782e9042b137aa9217255ac0650eb678917/src/maglev/maglev.cc

Git Watcher via monorail

unread,
Mar 23, 2022, 10:24:16 AM3/23/22
to v8-re...@googlegroups.com

Comment #65 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c65


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/ae153a71416da2971e7a90ff6a89ac847f6b8ff5

commit ae153a71416da2971e7a90ff6a89ac847f6b8ff5
Author: Toon Verwaest <verw...@chromium.org>
Date: Wed Mar 23 13:13:47 2022

[maglev] Update checkpoint state in AddNewNode

Instead of manually ensuring checkpoints and marking that operations had
side effects, do this in AddNewNode based on OpProperties.

Bug: v8:7700
Change-Id: I1e2699af537056d066e7f919abe5e7479bd3af91
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545174
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Toon Verwaest <verw...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79578}

[modify] https://crrev.com/ae153a71416da2971e7a90ff6a89ac847f6b8ff5/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/ae153a71416da2971e7a90ff6a89ac847f6b8ff5/src/maglev/maglev-ir.h
[modify] https://crrev.com/ae153a71416da2971e7a90ff6a89ac847f6b8ff5/src/maglev/maglev-graph-builder.cc

Git Watcher via monorail

unread,
Mar 24, 2022, 8:12:16 AM3/24/22
to v8-re...@googlegroups.com

Comment #66 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c66


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/0d4e986098193946ad69dc6f8a0c692458d28b81

commit 0d4e986098193946ad69dc6f8a0c692458d28b81
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Mar 24 09:41:21 2022

[maglev] Port eager deopts to use src/deoptimizer

Rather than emitting eager deopt code inline, use the full
DeoptimizationData+TranslationArray mechanism in maglev, for consistency
with TurboFan and simplification of implementing lazy deopts in the
future.

Bug: v8:7700
Change-Id: I67282b27493772c78ad28feaa4ad6a2c35c8e239
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545169
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79600}

[modify] https://crrev.com/0d4e986098193946ad69dc6f8a0c692458d28b81/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/0d4e986098193946ad69dc6f8a0c692458d28b81/src/runtime/runtime-compiler.cc
[modify] https://crrev.com/0d4e986098193946ad69dc6f8a0c692458d28b81/src/maglev/maglev-ir.h
[modify] https://crrev.com/0d4e986098193946ad69dc6f8a0c692458d28b81/src/maglev/maglev-compilation-unit.h
[modify] https://crrev.com/0d4e986098193946ad69dc6f8a0c692458d28b81/src/maglev/maglev-code-gen-state.h
[modify] https://crrev.com/0d4e986098193946ad69dc6f8a0c692458d28b81/src/maglev/maglev-code-generator.cc
[modify] https://crrev.com/0d4e986098193946ad69dc6f8a0c692458d28b81/src/maglev/maglev-graph-processor.h
[modify] https://crrev.com/0d4e986098193946ad69dc6f8a0c692458d28b81/src/maglev/maglev-compilation-unit.cc
[modify] https://crrev.com/0d4e986098193946ad69dc6f8a0c692458d28b81/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Mar 24, 2022, 8:34:06 AM3/24/22
to v8-re...@googlegroups.com

Comment #67 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c67


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/7b3ede331ecd17c3cae67e622a5a6a95a5e2e685

commit 7b3ede331ecd17c3cae67e622a5a6a95a5e2e685
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Mar 24 10:07:02 2022

[maglev] Remove diff encoding of checkpoints

Remove StoreToFrame and the general diff encoding for checkpoints, and
instead make all Checkpoints immediately copy the live part of the
interpreter frame state.

This means that we don't need to recreate the frame state during graph
processing, and we don't have to copy the checkpoint's state for storing
in the deferred DeoptimizationInfo.

In theory the diff encoding was meant to save zone memory for unused
checkpoints, and for checkpoints that don't differ much from each other.
However,

a) We expect to do most checkpoint elimination during graph building,
so the assumption that many checkpoints will be unused seems less
probable, and

b) We need to copy the checkpoint's frame state for emitting deopts,
so we don't actually end up avoiding doing the copies.

So, we can simplify things by removing this complexity.

Bug: v8:7700
Change-Id: Iff9743fabbf7a017cccf0ece76a797c571764ea6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545178
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Reviewed-by: Jakob Gruber <jgr...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79602}

[modify] https://crrev.com/7b3ede331ecd17c3cae67e622a5a6a95a5e2e685/src/maglev/maglev-graph-printer.h
[modify] https://crrev.com/7b3ede331ecd17c3cae67e622a5a6a95a5e2e685/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/7b3ede331ecd17c3cae67e622a5a6a95a5e2e685/src/maglev/maglev-interpreter-frame-state.h
[modify] https://crrev.com/7b3ede331ecd17c3cae67e622a5a6a95a5e2e685/src/maglev/maglev-compiler.cc
[modify] https://crrev.com/7b3ede331ecd17c3cae67e622a5a6a95a5e2e685/src/maglev/maglev-vreg-allocator.h
[modify] https://crrev.com/7b3ede331ecd17c3cae67e622a5a6a95a5e2e685/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/7b3ede331ecd17c3cae67e622a5a6a95a5e2e685/src/maglev/maglev-ir.h
[modify] https://crrev.com/7b3ede331ecd17c3cae67e622a5a6a95a5e2e685/src/maglev/maglev-code-generator.cc
[modify] https://crrev.com/7b3ede331ecd17c3cae67e622a5a6a95a5e2e685/src/maglev/maglev-code-gen-state.h
[modify] https://crrev.com/7b3ede331ecd17c3cae67e622a5a6a95a5e2e685/src/maglev/maglev-graph-processor.h
[modify] https://crrev.com/7b3ede331ecd17c3cae67e622a5a6a95a5e2e685/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Mar 24, 2022, 10:44:07 AM3/24/22
to v8-re...@googlegroups.com

Comment #68 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c68


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/0ca0b849c669550c13fcfc18ed917af594acd925

commit 0ca0b849c669550c13fcfc18ed917af594acd925
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Mar 24 13:56:41 2022

[maglev] Move Checkpoints out of the IR

Change Checkpoints from IR Nodes to just normal Zone objects, pointed to
by the deopting Node. Also merge Checkpoint and DeoptimizationInfo --
this has the side effect that multiple Nodes that share a checkpoint
will point to the exact same deopt call.

Bug: v8:7700
Change-Id: Ib36aa13afe3af6a0a22d2cfe80a13fef4bea1227
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545179
Commit-Queue: Leszek Swirski <les...@chromium.org>
Reviewed-by: Jakob Gruber <jgr...@chromium.org>
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79607}

[modify] https://crrev.com/0ca0b849c669550c13fcfc18ed917af594acd925/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/0ca0b849c669550c13fcfc18ed917af594acd925/src/maglev/maglev-compiler.cc
[modify] https://crrev.com/0ca0b849c669550c13fcfc18ed917af594acd925/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/0ca0b849c669550c13fcfc18ed917af594acd925/src/maglev/maglev-ir.h
[modify] https://crrev.com/0ca0b849c669550c13fcfc18ed917af594acd925/src/maglev/maglev-code-gen-state.h
[modify] https://crrev.com/0ca0b849c669550c13fcfc18ed917af594acd925/src/maglev/maglev-code-generator.cc
[modify] https://crrev.com/0ca0b849c669550c13fcfc18ed917af594acd925/src/maglev/maglev-graph-processor.h
[modify] https://crrev.com/0ca0b849c669550c13fcfc18ed917af594acd925/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Mar 24, 2022, 11:13:07 AM3/24/22
to v8-re...@googlegroups.com

Comment #69 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c69


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/c7ce7c7c175cc3d6dcaa1888c81e4bf7798d5d1c

commit c7ce7c7c175cc3d6dcaa1888c81e4bf7798d5d1c
Author: Victor Gomes <victo...@chromium.org>
Date: Tue Mar 22 10:46:04 2022

[maglev] Remove succeed check in concurrent dispatcher

Maglev compilation can currently fail, e.g with unsupported bytecodes.

Bug: v8:7700
Change-Id: I837d69a5f9c27d4dc6fa9d03369f045fb5175d61
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3541921
Reviewed-by: Jakob Gruber <jgr...@chromium.org>

Commit-Queue: Victor Gomes <victo...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Mar 25, 2022, 11:48:08 AM3/25/22
to v8-re...@googlegroups.com

Comment #70 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c70


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/2ee36e4cf515fe92b46fc66748f69d07892c0495

commit 2ee36e4cf515fe92b46fc66748f69d07892c0495
Author: Leszek Swirski <les...@chromium.org>
Date: Fri Mar 25 15:02:38 2022

[maglev] Remove input_count from Node constructors

Change the NodeBase bitfield to be out-of-line, and initialised by
NodeBase::Allocate. This means that we don't have to thread the
input_count through the Derived constructor just to pass it back into
the NodeBase constructor, and so we can remove those arguments (plus the
opcode ones while we're at it).

Bug: v8:7700
Change-Id: I0c96db8cdd05ef106b3cfeb31c5e0d4770d13cc9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3553103
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79627}

[modify] https://crrev.com/2ee36e4cf515fe92b46fc66748f69d07892c0495/src/maglev/maglev-ir.h

Git Watcher via monorail

unread,
Mar 25, 2022, 1:27:09 PM3/25/22
to v8-re...@googlegroups.com

Comment #71 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c71


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/cfa4581e69fb962ccee89f98714af9186440f3cb

commit cfa4581e69fb962ccee89f98714af9186440f3cb
Author: Tobias Tebbi <te...@chromium.org>
Date: Fri Mar 25 17:25:16 2022

Revert "[maglev] Remove input_count from Node constructors"

This reverts commit 2ee36e4cf515fe92b46fc66748f69d07892c0495.

Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/20570/overview

Original change's description:

> [maglev] Remove input_count from Node constructors
>
> Change the NodeBase bitfield to be out-of-line, and initialised by
> NodeBase::Allocate. This means that we don't have to thread the
> input_count through the Derived constructor just to pass it back into
> the NodeBase constructor, and so we can remove those arguments (plus the
> opcode ones while we're at it).
>
> Bug: v8:7700
> Change-Id: I0c96db8cdd05ef106b3cfeb31c5e0d4770d13cc9
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3553103
> Reviewed-by: Toon Verwaest <verw...@chromium.org>
> Commit-Queue: Leszek Swirski <les...@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#79627}

Bug: v8:7700
Change-Id: Ice38908e85f2980dbbe66c61fab17326b3d0be41

No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3553005
Owners-Override: Tobias Tebbi <te...@chromium.org>
Bot-Commit: Rubber Stamper <rubber-...@appspot.gserviceaccount.com>
Commit-Queue: Tobias Tebbi <te...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79631}

[modify] https://crrev.com/cfa4581e69fb962ccee89f98714af9186440f3cb/src/maglev/maglev-ir.h

Git Watcher via monorail

unread,
Mar 29, 2022, 6:40:06 AM3/29/22
to v8-re...@googlegroups.com

Comment #72 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c72


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/4fd61de7c1d933e6ae16507a9d44ccfe3d88a345

commit 4fd61de7c1d933e6ae16507a9d44ccfe3d88a345
Author: Leszek Swirski <les...@chromium.org>
Date: Tue Mar 29 09:52:22 2022

[maglev] Fix over application return stack cleanup

Under over-application (passing more arguments into a function than its
formal parameter count), we need to use the passed argc to clean up the
stack, rather than the formal parameter count. Fix Maglev's Return node
code to do the appropriate check and dynamic sized return.

Bug: v8:7700
Change-Id: I36037d29e14323b336974d4b75b75f5702ce8a28
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3555767
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79649}

[add] https://crrev.com/4fd61de7c1d933e6ae16507a9d44ccfe3d88a345/test/mjsunit/maglev/argument-over-under-application.js
[modify] https://crrev.com/4fd61de7c1d933e6ae16507a9d44ccfe3d88a345/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Mar 29, 2022, 8:17:17 AM3/29/22
to v8-re...@googlegroups.com

Comment #73 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c73


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/0bfd4cc1d78cae3c34326ecf330c0f623d1d2924

commit 0bfd4cc1d78cae3c34326ecf330c0f623d1d2924
Author: Victor Gomes <victo...@chromium.org>
Date: Tue Mar 29 11:35:01 2022

[maglev] Build Call IR nodes

Bug: v8:7700
Change-Id: I60b47808360430ecfde528cf6429fcc24e84fc31
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3555766
Reviewed-by: Leszek Swirski <les...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79653}

[modify] https://crrev.com/0bfd4cc1d78cae3c34326ecf330c0f623d1d2924/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/0bfd4cc1d78cae3c34326ecf330c0f623d1d2924/src/maglev/maglev-ir.h
[modify] https://crrev.com/0bfd4cc1d78cae3c34326ecf330c0f623d1d2924/src/maglev/maglev-graph-builder.cc
[modify] https://crrev.com/0bfd4cc1d78cae3c34326ecf330c0f623d1d2924/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Mar 29, 2022, 10:00:09 AM3/29/22
to v8-re...@googlegroups.com

Comment #74 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c74


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/ecc3c6367f5fcb11ea06057ad55e4422b5aff4fa

commit ecc3c6367f5fcb11ea06057ad55e4422b5aff4fa
Author: Toon Verwaest <verw...@chromium.org>
Date: Fri Mar 25 14:01:30 2022

[maglev] CompactInterpreterFrameState fixes

Bug: v8:7700
Change-Id: I1efa298a25bf15c104a57db3ec7cc4d7e36861eb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3553102

Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Toon Verwaest <verw...@chromium.org>

Git Watcher via monorail

unread,
Mar 29, 2022, 11:50:18 AM3/29/22
to v8-re...@googlegroups.com

Comment #75 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c75


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/ba70eaec3d2d5f297e1e0eff4c03803a066277f9

commit ba70eaec3d2d5f297e1e0eff4c03803a066277f9
Author: Leszek Swirski <les...@chromium.org>
Date: Tue Mar 29 15:08:15 2022

[maglev] Pass complete bitfield to Node constructors

Change the NodeBase bitfield to be initialised by NodeBase::Allocate,
and threaded through Node constructors as a complete bitfield instead of
the input_count.

This means that we can centralise changes to the bitfield, as well as
the setting of the opcode.

Bug: v8:7700
Change-Id: I848369339f3e43ba85d435c14d525d63907181e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3555773

Commit-Queue: Leszek Swirski <les...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79656}

[modify] https://crrev.com/ba70eaec3d2d5f297e1e0eff4c03803a066277f9/src/maglev/maglev-ir.h

Git Watcher via monorail

unread,
Mar 29, 2022, 1:16:07 PM3/29/22
to v8-re...@googlegroups.com

Comment #76 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c76


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/4edaa94835245e5768b69a6ae57e18091829ade5

commit 4edaa94835245e5768b69a6ae57e18091829ade5
Author: Leszek Swirski <les...@chromium.org>
Date: Tue Mar 29 16:30:35 2022

[maglev] Fix RootConstant<Undefined> and Call order

The "undefined" node has to be in the CFG graph before the "Call" node.

Bug: v8:7700
Change-Id: I137cde1d884e87e72fd4d6a22d5105168c8fb6cb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3557331

Commit-Queue: Leszek Swirski <les...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79658}

[modify] https://crrev.com/4edaa94835245e5768b69a6ae57e18091829ade5/src/maglev/maglev-graph-builder.cc

Git Watcher via monorail

unread,
Mar 30, 2022, 4:47:09 AM3/30/22
to v8-re...@googlegroups.com

Comment #77 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c77


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/b0f9b4df3dd0b4c7d4fecd826f88fbe9d38a13ff

commit b0f9b4df3dd0b4c7d4fecd826f88fbe9d38a13ff
Author: Toon Verwaest <verw...@chromium.org>
Date: Wed Mar 30 07:53:47 2022

[maglev] Copy OpProperties into the bitfield for fast access

Bug: v8:7700
Change-Id: I11e2a5eaf607b7501b19b9cb04de086cd4ee0a4c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3553113
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Toon Verwaest <verw...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79671}

[modify] https://crrev.com/b0f9b4df3dd0b4c7d4fecd826f88fbe9d38a13ff/src/maglev/maglev-ir.h

Git Watcher via monorail

unread,
Mar 30, 2022, 6:41:07 AM3/30/22
to v8-re...@googlegroups.com

Comment #78 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c78


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/c50337c9451e7b3ce1c7a1068b71c2f308a18446

commit c50337c9451e7b3ce1c7a1068b71c2f308a18446
Author: Victor Gomes <victo...@chromium.org>
Date: Wed Mar 30 10:00:48 2022

[maglev] Fix RootConstant<Undefined> and Call order 2

Take 1:
https://chromium-review.googlesource.com/c/v8/v8/+/3557331

Undefined node needs to be constructed before Call in
BuildCallFromRegisterList as well.

Bug: v8:7700
Change-Id: I58bc647a3b34437a0a143e1f252c2fa2a01df3d0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3557235

Commit-Queue: Victor Gomes <victo...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79672}

[modify] https://crrev.com/c50337c9451e7b3ce1c7a1068b71c2f308a18446/src/maglev/maglev-graph-builder.cc

Git Watcher via monorail

unread,
Mar 30, 2022, 8:58:17 AM3/30/22
to v8-re...@googlegroups.com

Git Watcher via monorail

unread,
Mar 30, 2022, 11:28:06 AM3/30/22
to v8-re...@googlegroups.com

Comment #80 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c80


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/932c5b7a1a5d64919cf637780c457cb573b4c5f3

commit 932c5b7a1a5d64919cf637780c457cb573b4c5f3
Author: Victor Gomes <victo...@chromium.org>
Date: Wed Mar 30 14:44:19 2022

[maglev] Fix updating accumulator in ForEachValue

Bug: v8:7700
Change-Id: I43ef07414326ee656b36e17aa739ae0015c88d57
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3560640
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79679}

[modify] https://crrev.com/932c5b7a1a5d64919cf637780c457cb573b4c5f3/src/maglev/maglev-interpreter-frame-state.h

Git Watcher via monorail

unread,
Mar 31, 2022, 7:49:16 AM3/31/22
to v8-re...@googlegroups.com

Comment #81 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c81


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/0df9606dcad535b282a73cd09ff3980dd1427d3e

commit 0df9606dcad535b282a73cd09ff3980dd1427d3e
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Mar 31 11:03:35 2022

[maglev] Add lazy deopts

Nodes can now hold a LazyDeoptSafepoint which stores the frame state in
case they trigger a lazy deopt. OpProperties have a new CanLazyDeopt
bit, and codegen emits a safepoint table entry + lazy deopt for all
nodes with this bit. Also, we now check the deoptimized code bit on
entry into the maglev compiled function.

An example use of these lazy deopts is added as a PropertyCell fast path
for LdaGlobal, which adds a code dependency on the property cell.

Bug: v8:7700
Change-Id: I663db38dfa7325d38fc6d5f079d263a958074e36
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3557251
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Reviewed-by: Jakob Linke <jgr...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79688}

[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/maglev/maglev-graph-printer.h
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/codegen/x64/macro-assembler-x64.h
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/maglev/maglev-interpreter-frame-state.h
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/maglev/maglev-compiler.cc
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/objects/code.h
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/compiler/backend/x64/code-generator-x64.cc
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/interpreter/bytecode-register.cc
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/maglev/maglev-ir.h
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/test/mjsunit/mjsunit.js
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/maglev/maglev-code-generator.cc
[add] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/test/mjsunit/maglev/lazy-deopt-with-onstack-activation.js
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/runtime/runtime.h
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/maglev/maglev-graph-builder.cc
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/maglev/maglev-ir.cc
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/objects/code.cc
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/runtime/runtime-test.cc
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/maglev/maglev-graph-printer.cc
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/objects/code-inl.h
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/maglev/maglev-code-gen-state.h
[add] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/test/mjsunit/maglev/lazy-deopt-without-onstack-activation.js
[modify] https://crrev.com/0df9606dcad535b282a73cd09ff3980dd1427d3e/src/codegen/x64/macro-assembler-x64.cc

Git Watcher via monorail

unread,
Mar 31, 2022, 9:42:07 AM3/31/22
to v8-re...@googlegroups.com

Comment #82 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c82


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/b48e2ac6d8b3e7fa395e6a2d6e4330a6e7fd19bb

commit b48e2ac6d8b3e7fa395e6a2d6e4330a6e7fd19bb
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Mar 31 12:55:35 2022

[maglev] Add a mixin class for lazy deopt

Bug: v8:7700
Change-Id: Ib2ea6be1e9a69c724e526287e05de0e65029b672
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3560441
Commit-Queue: Leszek Swirski <les...@chromium.org>
Reviewed-by: Jakob Linke <jgr...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79690}

[modify] https://crrev.com/b48e2ac6d8b3e7fa395e6a2d6e4330a6e7fd19bb/src/maglev/maglev-ir.h

Git Watcher via monorail

unread,
Apr 4, 2022, 3:12:20 AM4/4/22
to v8-re...@googlegroups.com

Comment #83 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c83


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/68252f8ff9d8ae9fc9cf519db91fca4cacb37d80

commit 68252f8ff9d8ae9fc9cf519db91fca4cacb37d80
Author: Leszek Swirski <les...@chromium.org>
Date: Fri Apr 01 15:28:34 2022

[maglev] Rename/refactor eager & lazy deopts

Make LazyDeoptInfo and EagerDeoptInfo both store a
CheckpointedInterpreterState for the bytecode position and
register frame, and make codegen store pointers to these
deopt infos instead of the checkpoint.

This opens the door to using InputLocation for lazy deopts,
same as for eager ones.

Bug: v8:7700
Change-Id: I8ff3056ff72fd9f2288d41769979c5183c3d0972
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3563561

Reviewed-by: Jakob Linke <jgr...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79723}

[modify] https://crrev.com/68252f8ff9d8ae9fc9cf519db91fca4cacb37d80/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/68252f8ff9d8ae9fc9cf519db91fca4cacb37d80/src/maglev/maglev-compiler.cc
[modify] https://crrev.com/68252f8ff9d8ae9fc9cf519db91fca4cacb37d80/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/68252f8ff9d8ae9fc9cf519db91fca4cacb37d80/src/maglev/maglev-ir.h
[modify] https://crrev.com/68252f8ff9d8ae9fc9cf519db91fca4cacb37d80/src/maglev/maglev-graph-printer.cc
[modify] https://crrev.com/68252f8ff9d8ae9fc9cf519db91fca4cacb37d80/src/maglev/maglev-code-gen-state.h
[modify] https://crrev.com/68252f8ff9d8ae9fc9cf519db91fca4cacb37d80/src/maglev/maglev-code-generator.cc
[modify] https://crrev.com/68252f8ff9d8ae9fc9cf519db91fca4cacb37d80/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 4, 2022, 8:02:07 AM4/4/22
to v8-re...@googlegroups.com

Comment #84 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c84


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/f6a23fb87d0f9c3889800d29387ddbd54c04c200

commit f6a23fb87d0f9c3889800d29387ddbd54c04c200
Author: Leszek Swirski <les...@chromium.org>
Date: Mon Apr 04 11:17:10 2022

[maglev] Disable stack-slot reuse

It doesn't take into account stack-slot liveness at time of spill, so
it can cause false sharing.

Bug: v8:7700
Change-Id: Ib8a00d00d857fad40f14fce1d1496fea071e334f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568465

Commit-Queue: Leszek Swirski <les...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Apr 4, 2022, 11:13:06 AM4/4/22
to v8-re...@googlegroups.com

Comment #85 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c85


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/b57bb622d051a97ab886511bf6182ac8e362f0dc

commit b57bb622d051a97ab886511bf6182ac8e362f0dc
Author: Leszek Swirski <les...@chromium.org>
Date: Mon Apr 04 11:19:48 2022

[maglev] Make regalloc aware of lazy deopts

Port the eager deopt handling in the use marker and register allocator
to do the same thing with lazy deopts. This requires moving the lazy
deopt info to be a pseudo-input before the node, same as eager deopt
info, so that the regalloc can read it without needing the Node's
opcode.

For now, this means that a node cannot both eager- and lazy-deopt; if we
need this in the future we can rethink it.

Bug: v8:7700
Change-Id: I96292af9c483f285b1e45bfb374c8dc600fa6347
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568452
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79757}

[modify] https://crrev.com/b57bb622d051a97ab886511bf6182ac8e362f0dc/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/b57bb622d051a97ab886511bf6182ac8e362f0dc/src/maglev/maglev-compiler.cc
[modify] https://crrev.com/b57bb622d051a97ab886511bf6182ac8e362f0dc/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/b57bb622d051a97ab886511bf6182ac8e362f0dc/src/maglev/maglev-regalloc.h
[modify] https://crrev.com/b57bb622d051a97ab886511bf6182ac8e362f0dc/src/maglev/maglev-ir.h
[modify] https://crrev.com/b57bb622d051a97ab886511bf6182ac8e362f0dc/src/maglev/maglev-graph-printer.cc
[modify] https://crrev.com/b57bb622d051a97ab886511bf6182ac8e362f0dc/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 8, 2022, 7:49:07 AM4/8/22
to v8-re...@googlegroups.com

Comment #86 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c86


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/e0b8ce19f326ed2ba1743fe5a12aab9bb66bc117

commit e0b8ce19f326ed2ba1743fe5a12aab9bb66bc117
Author: Leszek Swirski <les...@chromium.org>
Date: Fri Apr 08 11:02:41 2022

[maglev] Allow the optimizer with --maglev --no-opt

This will need re-work but it allows us to test for now.

Bug: v8:7700
Change-Id: I4eabb7f9f8e8a4c0d23c6bab22c7f0127c7820dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579102

Commit-Queue: Leszek Swirski <les...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Commit-Queue: Toon Verwaest <verw...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79873}

[modify] https://crrev.com/e0b8ce19f326ed2ba1743fe5a12aab9bb66bc117/src/execution/isolate.cc

Git Watcher via monorail

unread,
Apr 8, 2022, 7:52:16 AM4/8/22
to v8-re...@googlegroups.com

Comment #87 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c87


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/7b3ef3bcba791a7d5964036fd1028316babf36b9

commit 7b3ef3bcba791a7d5964036fd1028316babf36b9
Author: Leszek Swirski <les...@chromium.org>
Date: Fri Apr 08 11:05:04 2022

[maglev] Drop non-empty block DCHECK

It might be wrong for bytecode blocks that only juggle registers.

Bug: v8:7700
Change-Id: Idf495112d278e1899a1bbd1f92128fcc2edf6074
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579103

Commit-Queue: Leszek Swirski <les...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Commit-Queue: Toon Verwaest <verw...@chromium.org>

Git Watcher via monorail

unread,
Apr 8, 2022, 8:00:30 AM4/8/22
to v8-re...@googlegroups.com

Comment #88 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c88


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/1deba1a29b7de8a7ec7e3d2b4ea725d1523c9e4f

commit 1deba1a29b7de8a7ec7e3d2b4ea725d1523c9e4f
Author: Leszek Swirski <les...@chromium.org>
Date: Fri Apr 08 11:08:58 2022

[maglev] Allow LoadNamedGeneric to collect feedback

Use the LoadIC builtin instead of LoadICNoFeedback.

Bug: v8:7700
Change-Id: Ia7833d7f0a7165dbbf1bbdbae55f44ce213c65ab
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579104

Commit-Queue: Leszek Swirski <les...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Apr 8, 2022, 8:15:21 AM4/8/22
to v8-re...@googlegroups.com

Comment #89 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c89


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/363bc5c5b07cdf5ea84ffd3f4b75b05d78e46466

commit 363bc5c5b07cdf5ea84ffd3f4b75b05d78e46466
Author: Leszek Swirski <les...@chromium.org>
Date: Fri Apr 08 11:10:46 2022

[maglev] Mark SFIs when failing maglev compilation

Prevent thrashing tier up attempts when maglev fails to compile.

Bug: v8:7700
Change-Id: I31f6bd331d1c5aefa0384fcdcb055203b9055f8c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579143

Commit-Queue: Leszek Swirski <les...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Commit-Queue: Toon Verwaest <verw...@chromium.org>

Git Watcher via monorail

unread,
Apr 8, 2022, 8:35:06 AM4/8/22
to v8-re...@googlegroups.com

Comment #90 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c90


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/c2cfcfcfa2f7757b3b4dd5b663aaec3ba48d1a4f

commit c2cfcfcfa2f7757b3b4dd5b663aaec3ba48d1a4f
Author: Leszek Swirski <les...@chromium.org>
Date: Fri Apr 08 11:17:21 2022

[maglev] Add a reason for unsupported codegen

Bug: v8:7700
Change-Id: I4d8f6496e796de30894c5b8229610a49ddee8bb5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579142

Commit-Queue: Leszek Swirski <les...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79880}

[modify] https://crrev.com/c2cfcfcfa2f7757b3b4dd5b663aaec3ba48d1a4f/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 8, 2022, 8:36:06 AM4/8/22
to v8-re...@googlegroups.com

Comment #91 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c91


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/b46a3acc9afe8cc3428bc5bb9b1162dbf0d79b8d

commit b46a3acc9afe8cc3428bc5bb9b1162dbf0d79b8d
Author: Leszek Swirski <les...@chromium.org>
Date: Fri Apr 08 11:21:49 2022

[maglev] Add basic implementations of more bytecodes

Simple implementations of:

* Load[Immutable]CurrentContextSlot
* Arithmetic with Smi immediate (AddSmi etc.)
* TestEqual[Strict]

Bug: v8:7700
Change-Id: I895b60631b6a99296709bdf24709b7325a0e76e4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578854
Commit-Queue: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79881}

[modify] https://crrev.com/b46a3acc9afe8cc3428bc5bb9b1162dbf0d79b8d/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/b46a3acc9afe8cc3428bc5bb9b1162dbf0d79b8d/src/maglev/maglev-graph-builder.cc

Git Watcher via monorail

unread,
Apr 8, 2022, 9:12:16 AM4/8/22
to v8-re...@googlegroups.com

Comment #92 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c92


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/91c5b18658de014cc4e709dcb0fc9700d93bac33

commit 91c5b18658de014cc4e709dcb0fc9700d93bac33
Author: Leszek Swirski <les...@chromium.org>
Date: Fri Apr 08 12:29:08 2022

[maglev] Log Maglev compilations

This allows us to inject maglev compilations into perf profiles.

Bug: v8:7700
Change-Id: Ic1f2671835ca231cd954124db325a5ab8480bee0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579101
Commit-Queue: Leszek Swirski <les...@chromium.org>
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79886}

[modify] https://crrev.com/91c5b18658de014cc4e709dcb0fc9700d93bac33/src/diagnostics/perf-jit.cc
[modify] https://crrev.com/91c5b18658de014cc4e709dcb0fc9700d93bac33/src/objects/code-kind.cc
[modify] https://crrev.com/91c5b18658de014cc4e709dcb0fc9700d93bac33/src/maglev/maglev-concurrent-dispatcher.h
[modify] https://crrev.com/91c5b18658de014cc4e709dcb0fc9700d93bac33/src/codegen/compiler.h
[modify] https://crrev.com/91c5b18658de014cc4e709dcb0fc9700d93bac33/src/codegen/compiler.cc
[modify] https://crrev.com/91c5b18658de014cc4e709dcb0fc9700d93bac33/src/maglev/maglev-concurrent-dispatcher.cc

Git Watcher via monorail

unread,
Apr 8, 2022, 9:33:06 AM4/8/22
to v8-re...@googlegroups.com

Comment #93 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c93


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/5b58098ead2e489c9d9bf9f34b167aed7aa00b4d

commit 5b58098ead2e489c9d9bf9f34b167aed7aa00b4d
Author: Leszek Swirski <les...@chromium.org>
Date: Fri Apr 08 11:18:14 2022

[maglev] Allow LoadField to load out-of-object properties

Bug: v8:7700
Change-Id: I32e1160dd71193857e6760dd0a3b826e3ec0f044
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579141
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79887}

[modify] https://crrev.com/5b58098ead2e489c9d9bf9f34b167aed7aa00b4d/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 11, 2022, 5:14:16 AM4/11/22
to v8-re...@googlegroups.com

Comment #94 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c94


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/818fa541f15ec843dd643dbb4c05dd0fc37d03b5

commit 818fa541f15ec843dd643dbb4c05dd0fc37d03b5
Author: Leszek Swirski <les...@chromium.org>
Date: Fri Apr 08 15:01:20 2022

[maglev] Clean-up SetAccumulator

Bring back raw SetAccumulator, instead of the separate
SetAccumulatorToNew/ExistingNode. SetAccumulator (and StoreRegister) are
now expected to only ever be called on new Nodes, with some DCHECKs
tracking which nodes are new guaranteeing this.

Bug: v8:7700
Change-Id: I5657fa85dc05445bc3d6956ebcd5541ec1cedfad
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3579362
Auto-Submit: Leszek Swirski <les...@chromium.org>

Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>

Git Watcher via monorail

unread,
Apr 11, 2022, 10:20:07 AM4/11/22
to v8-re...@googlegroups.com

Comment #95 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c95


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/86ce461edaac0ff24e79580a2a44286e8329f4cb

commit 86ce461edaac0ff24e79580a2a44286e8329f4cb
Author: Leszek Swirski <les...@chromium.org>
Date: Mon Apr 11 13:34:46 2022

[maglev] Towards concurrent compilation

Add LocalIsolate use, broker()->GetFeedbackForPropertyAccess, and
generating persistent/canonical handles to fix maglev concurrent
compilation.

Bug: v8:7700
Change-Id: Ifd1156c72710047b5f2930837a04709419b23bc3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578546
Commit-Queue: Leszek Swirski <les...@chromium.org>
Reviewed-by: Jakob Linke <jgr...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79918}

[modify] https://crrev.com/86ce461edaac0ff24e79580a2a44286e8329f4cb/src/maglev/maglev-compiler.h
[modify] https://crrev.com/86ce461edaac0ff24e79580a2a44286e8329f4cb/src/maglev/maglev-compiler.cc
[modify] https://crrev.com/86ce461edaac0ff24e79580a2a44286e8329f4cb/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/86ce461edaac0ff24e79580a2a44286e8329f4cb/src/maglev/maglev-concurrent-dispatcher.cc
[modify] https://crrev.com/86ce461edaac0ff24e79580a2a44286e8329f4cb/src/maglev/maglev.cc
[modify] https://crrev.com/86ce461edaac0ff24e79580a2a44286e8329f4cb/src/maglev/maglev-compilation-unit.h
[modify] https://crrev.com/86ce461edaac0ff24e79580a2a44286e8329f4cb/src/maglev/maglev-graph-builder.cc
[modify] https://crrev.com/86ce461edaac0ff24e79580a2a44286e8329f4cb/src/maglev/maglev-compilation-info.cc
[modify] https://crrev.com/86ce461edaac0ff24e79580a2a44286e8329f4cb/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 11, 2022, 11:08:17 AM4/11/22
to v8-re...@googlegroups.com

Comment #96 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c96


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/f5ba33ad8393ab83c7dd4e4659cedd4c88d9265b

commit f5ba33ad8393ab83c7dd4e4659cedd4c88d9265b
Author: Victor Gomes <victo...@chromium.org>
Date: Mon Apr 11 13:40:12 2022

[maglev] Create Int32Constant Node

... and fix AddSmi operation.

Bug: v8:7700
Change-Id: If81030e1e0d457076e09db62553342f04477e255
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3581983

Auto-Submit: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>

Git Watcher via monorail

unread,
Apr 11, 2022, 12:54:09 PM4/11/22
to v8-re...@googlegroups.com

Comment #97 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c97


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/d75c4e3e52169db0b9ac2d5990626b8872a8b573

commit d75c4e3e52169db0b9ac2d5990626b8872a8b573
Author: Leszek Swirski <les...@chromium.org>
Date: Mon Apr 11 15:58:24 2022

[maglev] Skip functions with handler tables

We were doing this for synchronous compiles, but not for asynchronous
ones.

Bug: v8:7700
Change-Id: I10173ddc34bd8750051272c0ec065e21bbd20082
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3581767
Commit-Queue: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79925}

[modify] https://crrev.com/d75c4e3e52169db0b9ac2d5990626b8872a8b573/src/maglev/maglev-compiler.cc
[modify] https://crrev.com/d75c4e3e52169db0b9ac2d5990626b8872a8b573/src/maglev/maglev.cc

Git Watcher via monorail

unread,
Apr 11, 2022, 12:56:08 PM4/11/22
to v8-re...@googlegroups.com

Comment #98 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c98


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/fba83fd6dae4ebbcb6c00fa0c089fa66914b0915

commit fba83fd6dae4ebbcb6c00fa0c089fa66914b0915
Author: Leszek Swirski <les...@chromium.org>
Date: Mon Apr 11 15:57:27 2022

[maglev] Drop a register's value when freeing it

We need to make sure that a node doesn't think it's still allocated in a
register (and doesn't need spilling) when it is freed to make space for
another allocation.

Bug: v8:7700
Change-Id: I6e35cd467bb7f17bb20dc6f4ab0a1df9efe78ffa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582220

Commit-Queue: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Apr 12, 2022, 7:28:07 AM4/12/22
to v8-re...@googlegroups.com

Comment #99 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c99


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/e96b8564dd08f464f676f37c1ba6f0eb055a43bc

commit e96b8564dd08f464f676f37c1ba6f0eb055a43bc
Author: Victor Gomes <victo...@chromium.org>
Date: Tue Apr 12 10:23:08 2022

[maglev] Remove unnecessary CheckedSmiTag and CheckedSmiUntag

We track untagged values through the InterpreterFrameState, that allows
us to re-use already emitted CheckedSmiUntag and elide CheckedSmiTag
whenever the next node wants the untagged value as input.

It uses LoadRegisterTaggedValue, LoadRegisterSmiUntaggedValue and
accumulator variants as helper in the graph builder.

Spilled values can now be untagged, since we currently do not
support stack slot re-use, we use a ZoneVector to keep track of
the stack slot representation.

We tag (lazily) any value that will be passed as input to a Phi node.

Bug: v8:7700

Change-Id: I34cb69c8f1fbeb6a8158a251a4dd2e114e894ea0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3574559
Reviewed-by: Leszek Swirski <les...@chromium.org>
Reviewed-by: Igor Sheludko <ish...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79939}

[modify] https://crrev.com/e96b8564dd08f464f676f37c1ba6f0eb055a43bc/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/e96b8564dd08f464f676f37c1ba6f0eb055a43bc/src/maglev/maglev-interpreter-frame-state.h
[modify] https://crrev.com/e96b8564dd08f464f676f37c1ba6f0eb055a43bc/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/e96b8564dd08f464f676f37c1ba6f0eb055a43bc/src/base/threaded-list.h
[modify] https://crrev.com/e96b8564dd08f464f676f37c1ba6f0eb055a43bc/src/maglev/maglev-ir.h
[modify] https://crrev.com/e96b8564dd08f464f676f37c1ba6f0eb055a43bc/src/maglev/maglev-compilation-unit.h
[modify] https://crrev.com/e96b8564dd08f464f676f37c1ba6f0eb055a43bc/src/maglev/maglev-code-gen-state.h
[modify] https://crrev.com/e96b8564dd08f464f676f37c1ba6f0eb055a43bc/src/maglev/maglev-code-generator.cc
[modify] https://crrev.com/e96b8564dd08f464f676f37c1ba6f0eb055a43bc/src/maglev/maglev-compilation-unit.cc
[modify] https://crrev.com/e96b8564dd08f464f676f37c1ba6f0eb055a43bc/src/maglev/maglev-graph-builder.cc
[modify] https://crrev.com/e96b8564dd08f464f676f37c1ba6f0eb055a43bc/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 12, 2022, 8:50:06 AM4/12/22
to v8-re...@googlegroups.com

Comment #100 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c100


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/24392abcc6f0f45b6a4e5991717782244f50dfdc

commit 24392abcc6f0f45b6a4e5991717782244f50dfdc
Author: Victor Gomes <victo...@chromium.org>
Date: Tue Apr 12 12:07:38 2022

[maglev] Add ValueRepresentation to Node properties

This allows to easily introduce new nodes with untagged represenation.
It also speeds up the is_untagged_value check.

Bug: v8:7700
Change-Id: Ie391d32ae7742dbad481674de262050c0d564ee6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3581773
Commit-Queue: Victor Gomes <victo...@chromium.org>

Auto-Submit: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>

Git Watcher via monorail

unread,
Apr 12, 2022, 9:39:17 AM4/12/22
to v8-re...@googlegroups.com

Comment #101 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c101


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/13407a88ad677b4ed1dfb8dcbc439ab9752d0cd3

commit 13407a88ad677b4ed1dfb8dcbc439ab9752d0cd3
Author: Victor Gomes <victo...@chromium.org>
Date: Tue Apr 12 12:42:58 2022

[maglev] Promote victorgomes as maglev owner

Bug: v8:7700
Change-Id: I5290b6af6158dece0d38b24bc80b887f67c2747b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582921

Auto-Submit: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79942}

[modify] https://crrev.com/13407a88ad677b4ed1dfb8dcbc439ab9752d0cd3/src/maglev/OWNERS

Git Watcher via monorail

unread,
Apr 12, 2022, 1:09:11 PM4/12/22
to v8-re...@googlegroups.com

Comment #102 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c102


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/1b456ebbe82b0891029652c24578723b38e3dd62

commit 1b456ebbe82b0891029652c24578723b38e3dd62
Author: Victor Gomes <victo...@chromium.org>
Date: Tue Apr 12 16:16:34 2022

[maglev] Simple Graph verifier

It currently only checks if the node inputs are expected to be
tagged or untagged.

Bug: v8:7700
Change-Id: Ibf068098dfb08c28b2744cb321fa857572998948
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578804
Reviewed-by: Leszek Swirski <les...@chromium.org>

Commit-Queue: Victor Gomes <victo...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Apr 13, 2022, 4:50:27 AM4/13/22
to v8-re...@googlegroups.com

Comment #103 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c103


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/213194f7bc81a16ef8d9fb86ac50e57fcddc3427

commit 213194f7bc81a16ef8d9fb86ac50e57fcddc3427
Author: Leszek Swirski <les...@chromium.org>
Date: Wed Apr 13 08:07:47 2022

[maglev] Allow deopts from registers and untagged values

Remove the "bad idea" of spilling whenever there's a deopt, and instead
use the deoptimizer's register support.

In addition, allow untagged int32 inputs into deopts -- if tagging these
overflows, then the deoptimizer will automagically create a HeapNumber
for us. Hooray for code reuse!

Drive-bys:
1. Print input locations for deopt checkpoints.
2. Fix ordering of UpdateUse(input)/UpdateUse(deopt) to match the
use marker.

Bug: v8:7700
Change-Id: I8069f5bc1bdcd7746a516c7a5cc7e26a15d4e5cb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578805
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79950}

[modify] https://crrev.com/213194f7bc81a16ef8d9fb86ac50e57fcddc3427/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/213194f7bc81a16ef8d9fb86ac50e57fcddc3427/src/maglev/maglev-graph-printer.cc
[modify] https://crrev.com/213194f7bc81a16ef8d9fb86ac50e57fcddc3427/src/maglev/maglev-code-generator.cc
[modify] https://crrev.com/213194f7bc81a16ef8d9fb86ac50e57fcddc3427/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 13, 2022, 6:14:07 AM4/13/22
to v8-re...@googlegroups.com

Comment #104 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c104


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/58a7761bae4af7736c47c63a968ff083483ec6b2

commit 58a7761bae4af7736c47c63a968ff083483ec6b2
Author: Leszek Swirski <les...@chromium.org>
Date: Wed Apr 13 09:26:19 2022

[maglev] Skip to the end of bytecode blocks on eager deopt

Unconditional eager deopts from lack of feedback (née soft deopts) mean
that the remainder of the basic block is dead. Avoid emitting this code
by fast forwarding the iterator until the next merge.

The EagerDeopt node becomes a Deopt control node which terminates its
own block (this is to avoid spurious control flow after the EagerDeopt,
or weirdness with liveness). A concept of "merging dead blocks" has to
be introduced so that the successors of the killed block still have the
right number of predecessors.

Bug: v8:7700
Change-Id: Id9c442c3b18d3f394dc2411604d0c8503d6aaae2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578647
Reviewed-by: Jakob Linke <jgr...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79952}

[modify] https://crrev.com/58a7761bae4af7736c47c63a968ff083483ec6b2/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/58a7761bae4af7736c47c63a968ff083483ec6b2/src/maglev/maglev-interpreter-frame-state.h
[modify] https://crrev.com/58a7761bae4af7736c47c63a968ff083483ec6b2/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/58a7761bae4af7736c47c63a968ff083483ec6b2/src/maglev/maglev-graph-verifier.h
[modify] https://crrev.com/58a7761bae4af7736c47c63a968ff083483ec6b2/src/maglev/maglev-ir.h
[modify] https://crrev.com/58a7761bae4af7736c47c63a968ff083483ec6b2/src/maglev/maglev-graph-printer.cc
[modify] https://crrev.com/58a7761bae4af7736c47c63a968ff083483ec6b2/src/maglev/maglev-graph-builder.cc
[modify] https://crrev.com/58a7761bae4af7736c47c63a968ff083483ec6b2/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 14, 2022, 7:21:07 AM4/14/22
to v8-re...@googlegroups.com

Comment #105 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c105


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/4f0f2d1d053743bf8ee866d17e305099a27ca5b5

commit 4f0f2d1d053743bf8ee866d17e305099a27ca5b5
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Apr 14 10:22:57 2022

[maglev] Make MaglevCompiler all static

We don't actually ever need the MaglevCompiler instance.

Bug: v8:7700
Change-Id: I876353310cf34971b72b08d2113d87caaa255e13
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585957
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Jakob Linke <jgr...@chromium.org>
Commit-Queue: Jakob Linke <jgr...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79987}

[modify] https://crrev.com/4f0f2d1d053743bf8ee866d17e305099a27ca5b5/src/maglev/maglev-compiler.h
[modify] https://crrev.com/4f0f2d1d053743bf8ee866d17e305099a27ca5b5/src/maglev/maglev-compiler.cc
[modify] https://crrev.com/4f0f2d1d053743bf8ee866d17e305099a27ca5b5/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/4f0f2d1d053743bf8ee866d17e305099a27ca5b5/src/maglev/maglev-graph-builder.cc

Git Watcher via monorail

unread,
Apr 19, 2022, 9:51:07 AM4/19/22
to v8-re...@googlegroups.com

Comment #106 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c106


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/4441860c746042b4fc967d9e1f3437cd41cf0db0

commit 4441860c746042b4fc967d9e1f3437cd41cf0db0
Author: Toon Verwaest <verw...@chromium.org>
Date: Tue Apr 19 13:07:50 2022

[maglev] Reuse unused stack slots

This CL splits the stack frame into tagged and untagged slots, and allows reuse
of slots for values that are also tagged/untagged.

Bug: v8:7700
Change-Id: Id068807d1cd9bcd8c9e41d330f44acf346b16685
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585959
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Toon Verwaest <verw...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80023}

[modify] https://crrev.com/4441860c746042b4fc967d9e1f3437cd41cf0db0/src/maglev/maglev-graph.h
[modify] https://crrev.com/4441860c746042b4fc967d9e1f3437cd41cf0db0/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/4441860c746042b4fc967d9e1f3437cd41cf0db0/src/maglev/maglev-regalloc.h
[modify] https://crrev.com/4441860c746042b4fc967d9e1f3437cd41cf0db0/src/maglev/maglev-compilation-unit.h
[modify] https://crrev.com/4441860c746042b4fc967d9e1f3437cd41cf0db0/src/maglev/maglev-code-generator.cc
[modify] https://crrev.com/4441860c746042b4fc967d9e1f3437cd41cf0db0/src/maglev/maglev-code-gen-state.h
[modify] https://crrev.com/4441860c746042b4fc967d9e1f3437cd41cf0db0/src/maglev/maglev-compilation-unit.cc
[modify] https://crrev.com/4441860c746042b4fc967d9e1f3437cd41cf0db0/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 20, 2022, 9:21:17 AM4/20/22
to v8-re...@googlegroups.com

Comment #107 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c107


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/58fb7d8f25aa2792c3c58d654843a2f173d93bfd

commit 58fb7d8f25aa2792c3c58d654843a2f173d93bfd
Author: Victor Gomes <victo...@chromium.org>
Date: Wed Apr 20 12:37:50 2022

[maglev] Add Float64 to ValueRepresentation

... and rename Untagged to Int32.

Bug: v8:7700
Change-Id: Ib206dba74432b3f1f70fd62006cb6a1222b40ed9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3584114
Reviewed-by: Leszek Swirski <les...@chromium.org>

Commit-Queue: Victor Gomes <victo...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80050}

[modify] https://crrev.com/58fb7d8f25aa2792c3c58d654843a2f173d93bfd/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/58fb7d8f25aa2792c3c58d654843a2f173d93bfd/src/maglev/maglev-interpreter-frame-state.h
[modify] https://crrev.com/58fb7d8f25aa2792c3c58d654843a2f173d93bfd/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/58fb7d8f25aa2792c3c58d654843a2f173d93bfd/src/maglev/maglev-graph-verifier.h
[modify] https://crrev.com/58fb7d8f25aa2792c3c58d654843a2f173d93bfd/src/maglev/maglev-ir.h
[modify] https://crrev.com/58fb7d8f25aa2792c3c58d654843a2f173d93bfd/src/maglev/maglev-compilation-unit.h
[modify] https://crrev.com/58fb7d8f25aa2792c3c58d654843a2f173d93bfd/src/maglev/maglev-code-generator.cc
[modify] https://crrev.com/58fb7d8f25aa2792c3c58d654843a2f173d93bfd/src/maglev/maglev-graph-builder.cc

Git Watcher via monorail

unread,
Apr 20, 2022, 9:29:05 AM4/20/22
to v8-re...@googlegroups.com

Comment #108 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c108


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/10cae73569f152b6fc9875f365884fc5dcbb7203

commit 10cae73569f152b6fc9875f365884fc5dcbb7203
Author: Leszek Swirski <les...@chromium.org>
Date: Wed Apr 20 11:52:15 2022

[maglev] Pass MaglevCompilationInfo to more passes

MaglevCompilationInfo stores the overall compilation information (zone,
graph, labeller, etc.), while MaglevCompilationUnit stores per-function
information (function, bytecode analysis, register count, etc.).

Without inlining, these are 1:1 and we've been pretty sloppy in deciding
which to pass around. Once we implement inlining though, we want to be
careful to pass MaglevCompilationInfo where we're processing the whole
graph, and MaglevCompilationUnit where we're processing something
function-specific.

This does the pre-work of cleaning this up in preparation for inlining.

Bug: v8:7700
Change-Id: Ic50fdd97e56f6c963ab490bd419eb65fe0873688
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596162
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80051}

[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-graph-printer.h
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-compiler.cc
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-vreg-allocator.h
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-graph-processor.h
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-code-generator.cc
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-compilation-unit.cc
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-graph-builder.cc
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-compilation-info.cc
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-ir.cc
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-compiler.h
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-code-generator.h
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-compilation-info.h
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-regalloc.h
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-concurrent-dispatcher.cc
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-graph-verifier.h
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev.cc
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-graph-printer.cc
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-compilation-unit.h
[modify] https://crrev.com/10cae73569f152b6fc9875f365884fc5dcbb7203/src/maglev/maglev-code-gen-state.h

Git Watcher via monorail

unread,
Apr 20, 2022, 10:04:35 AM4/20/22
to v8-re...@googlegroups.com

Comment #109 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c109


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/fac04fbb7619d87a99d94fdd563a09ac75f1177a

commit fac04fbb7619d87a99d94fdd563a09ac75f1177a
Author: Victor Gomes <victo...@chromium.org>
Date: Wed Apr 20 12:44:07 2022

[maglev] Adds double registers to Nodes

The register allocator might be able to choose between a floating
or general registers.

Bug: v8:7700
Change-Id: Ib74b8c6cd5db12ae34b7f08cd2aeb21ffd3bac33
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596121
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80054}

[modify] https://crrev.com/fac04fbb7619d87a99d94fdd563a09ac75f1177a/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/fac04fbb7619d87a99d94fdd563a09ac75f1177a/src/maglev/maglev-regalloc.h
[modify] https://crrev.com/fac04fbb7619d87a99d94fdd563a09ac75f1177a/src/codegen/reglist.h
[modify] https://crrev.com/fac04fbb7619d87a99d94fdd563a09ac75f1177a/src/maglev/maglev-ir.h

Git Watcher via monorail

unread,
Apr 21, 2022, 6:36:06 AM4/21/22
to v8-re...@googlegroups.com

Comment #110 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c110


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/f98e1f4db9a874bde9329aef932636113df6f528

commit f98e1f4db9a874bde9329aef932636113df6f528
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Apr 21 09:52:42 2022

[maglev] BitwiseNot has one input

Bug: v8:7700
Change-Id: Ieecdd66e7e540ad27aaa05cf13f270e42377b15e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3599471
Commit-Queue: Leszek Swirski <les...@chromium.org>

Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80076}

[modify] https://crrev.com/f98e1f4db9a874bde9329aef932636113df6f528/src/maglev/maglev-graph-verifier.h

Git Watcher via monorail

unread,
Apr 21, 2022, 6:44:16 AM4/21/22
to v8-re...@googlegroups.com

Comment #111 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c111


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/c0a63243e9571bef4d260ffe48694cf688864b74

commit c0a63243e9571bef4d260ffe48694cf688864b74
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Apr 21 10:03:00 2022

[maglev] Start implenting inlining

Add a --maglev-inlining flag, and add some half-baked support for
inlining functions when there is call feedback.

When the flag is enabled and there is call feedback, we create a nested
MaglevGraphBuilder for the current graph, and pause building the graph
of the outer function. We manually set up its prologue to set up its
frame with the arguments pass into the call, build the body with the
nested graph builder. This inner builder knows that it is building an
inlined function, and all Return bytecodes will instead emit a Jump to a
single merge block at the end of the function, where execution of the
outer function can resume.

These inner function basic blocks are wired into the outer graph with
new JumpToInline and JumpFromInline control nodes. The idea is that
subsequent passes will know what the inline function is, and will use
these to manage the function stack (particularly for codegen and
especially deopts).

Bug: v8:7700
Change-Id: I4e9b153f8cf4d06c56e7be6365e7a18b86a773c0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585958
Commit-Queue: Leszek Swirski <les...@chromium.org>
Reviewed-by: Jakob Linke <jgr...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80077}

[modify] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/src/flags/flag-definitions.h
[modify] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/src/maglev/maglev-compiler.cc
[modify] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/src/maglev/maglev-ir.h
[modify] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/src/maglev/maglev-code-generator.cc
[add] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/test/mjsunit/maglev/simple-inlining.js
[modify] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/src/maglev/maglev-compilation-unit.cc
[modify] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/src/maglev/maglev-graph-builder.cc
[modify] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/src/maglev/maglev-ir.cc
[modify] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/src/maglev/maglev-regalloc.h
[add] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/test/mjsunit/maglev/eager-deopt-in-inline.js
[modify] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/src/maglev/maglev-graph-verifier.h
[modify] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/src/maglev/maglev-compilation-unit.h
[modify] https://crrev.com/c0a63243e9571bef4d260ffe48694cf688864b74/src/maglev/maglev-graph-printer.cc

Git Watcher via monorail

unread,
Apr 21, 2022, 9:03:07 AM4/21/22
to v8-re...@googlegroups.com

Comment #112 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c112


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/f7cc70de2b41c2d1feb4b14f0d60e851f71953d0

commit f7cc70de2b41c2d1feb4b14f0d60e851f71953d0
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Apr 21 12:20:07 2022

[maglev] Fix dead predecessors after EmitUnconditionalDeopt

Fixes the iteration after emitting an unconditional deopt to kill all
Jumps along the way, not just ones preceeding a merge point. This fixes
several issues:

a) That Jump may be to a not yet created merge point, in which case we
were getting a nullptr deref.
b) Not-yet created merge points would not be detected as merge points,
so we'd skip over them and miss killing the control node before
them.
c) We weren't reducing predecessor counts, so even after fixing the
nullptr deref above, merge states created later would have the wrong
predecessor count.

Now, we check bytecode targets (including fallthrough for non-returning
bytecodes) on for every bytecode, and skip over both not-yet created
merges, and loop merges that have no predecessors other than the loop
jump itself.

As part of this, the dead predecessor merging is changed; instead of
setting the predecessor to nullptr, we drop the predecessor count by
one, and trim any Phis' input counts.

Bug: v8:7700
Change-Id: I904c82df7c5dd44d7637e07f6750b35e7e219284
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3599470
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80083}

[modify] https://crrev.com/f7cc70de2b41c2d1feb4b14f0d60e851f71953d0/src/maglev/maglev-interpreter-frame-state.h
[modify] https://crrev.com/f7cc70de2b41c2d1feb4b14f0d60e851f71953d0/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/f7cc70de2b41c2d1feb4b14f0d60e851f71953d0/src/maglev/maglev-ir.h
[modify] https://crrev.com/f7cc70de2b41c2d1feb4b14f0d60e851f71953d0/src/maglev/maglev-graph-builder.cc

Git Watcher via monorail

unread,
Apr 21, 2022, 11:52:09 AM4/21/22
to v8-re...@googlegroups.com

Comment #113 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c113


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/da1408abf97189cc9fe5b02c61b89341b4b03e8c

commit da1408abf97189cc9fe5b02c61b89341b4b03e8c
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Apr 21 14:29:37 2022

[maglev] Print function name on bailout

Bug: v8:7700
Change-Id: I5155fc665f1214dda390fc6d1476ecf1f137166e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3599483
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80087}

[modify] https://crrev.com/da1408abf97189cc9fe5b02c61b89341b4b03e8c/src/maglev/maglev-graph-builder.cc

Git Watcher via monorail

unread,
Apr 21, 2022, 11:54:08 AM4/21/22
to v8-re...@googlegroups.com

Comment #114 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c114


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/3623415eda1b3eb584a4de1829e37f74aabba294

commit 3623415eda1b3eb584a4de1829e37f74aabba294
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Apr 21 13:47:09 2022

[maglev] Canonicalise function handle created for compilation unit

Additionally, pass the JSFunctionRef directly for inlined functions'
compilation units.

Bug: v8:7700
Change-Id: Ibdc738c8a9790f8ac45e6a0fd55facdf638562f9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3599480

Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Apr 21, 2022, 12:07:16 PM4/21/22
to v8-re...@googlegroups.com

Comment #115 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c115


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/88976125a64f3d12b2ec3f6b03138277a17a63e7

commit 88976125a64f3d12b2ec3f6b03138277a17a63e7
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Apr 21 14:50:49 2022

[maglev] Implement LdaContextSlot

In the simplest way possible.

Bug: v8:7700
Change-Id: I155aaf85192b75c89617820d6f127a2ae04c7d9b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3599484

Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Apr 22, 2022, 3:32:17 AM4/22/22
to v8-re...@googlegroups.com

Comment #116 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c116


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/098f722d9032a718bfb011952ea2ba76ea2363f3

commit 098f722d9032a718bfb011952ea2ba76ea2363f3
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Apr 21 12:48:53 2022

[maglev] Tag merges to loop phis and call inputs

Bug: v8:7700
Change-Id: I61246df3a13f8beb91979591455b3d63357ed220
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3599477

Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>

victo… via monorail

unread,
Apr 22, 2022, 4:15:35 AM4/22/22
to v8-re...@googlegroups.com
Updates:
Cc: victo...@chromium.org

Comment #117 on issue 7700 by victo...@chromium.org: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c117

(No comment was entered for this change.)

Git Watcher via monorail

unread,
Apr 22, 2022, 7:55:23 AM4/22/22
to v8-re...@googlegroups.com

Comment #118 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c118


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/0fd7d1525d01f6a1592c46d38a7ec6d1f348f295

commit 0fd7d1525d01f6a1592c46d38a7ec6d1f348f295
Author: Victor Gomes <victo...@chromium.org>
Date: Thu Apr 21 12:40:45 2022

[maglev] Set properties as constexpr

Fixes https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20gcov%20coverage/29098/overview
and https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20gcc%20-%20debug%20builder/1389/overview

Bug: v8:7700
Change-Id: I90717b9644b75cef28656893d37aa57e5f03e2fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3599478
Auto-Submit: Victor Gomes <victo...@chromium.org>
Reviewed-by: Tobias Tebbi <te...@chromium.org>
Commit-Queue: Tobias Tebbi <te...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80109}

[modify] https://crrev.com/0fd7d1525d01f6a1592c46d38a7ec6d1f348f295/src/maglev/maglev-ir.h

Git Watcher via monorail

unread,
Apr 22, 2022, 10:17:08 AM4/22/22
to v8-re...@googlegroups.com

Comment #119 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c119


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/97e86869ba20d3404330e7a844f0d1088518ceed

commit 97e86869ba20d3404330e7a844f0d1088518ceed
Author: Victor Gomes <victo...@chromium.org>
Date: Fri Apr 22 08:16:04 2022

[maglev] Support double registers in MergePointRegisterState

- Introduces an array of RegisterStates for double registers
- Adds two functions to iterate over the arrays

We will be able to call the ForEach functions using a templated lambda
for RegisterBase<T>.

Bug: v8:7700
Change-Id: I7ef86917d9377933a4bc3456e30de3e4ec547f65
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596122
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80116}

[modify] https://crrev.com/97e86869ba20d3404330e7a844f0d1088518ceed/src/maglev/maglev-regalloc-data.h
[modify] https://crrev.com/97e86869ba20d3404330e7a844f0d1088518ceed/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/97e86869ba20d3404330e7a844f0d1088518ceed/src/maglev/maglev-interpreter-frame-state.h
[modify] https://crrev.com/97e86869ba20d3404330e7a844f0d1088518ceed/src/maglev/maglev-code-generator.cc

Git Watcher via monorail

unread,
Apr 22, 2022, 11:04:07 AM4/22/22
to v8-re...@googlegroups.com

Comment #120 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c120


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/9ad39743d0d9dc532e4d70fcaa2ae04f43e1da4c

commit 9ad39743d0d9dc532e4d70fcaa2ae04f43e1da4c
Author: Leszek Swirski <les...@chromium.org>
Date: Fri Apr 22 14:24:09 2022

[maglev] Fix VisitLdaImmutableContextSlot

It should delegate to VisitLdaContextSlot.

Bug: v8:7700
Change-Id: I1591594648cfb038abccabb46a20c1b0c23b07a6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3602512

Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80117}

[modify] https://crrev.com/9ad39743d0d9dc532e4d70fcaa2ae04f43e1da4c/src/maglev/maglev-graph-builder.cc

Git Watcher via monorail

unread,
Apr 22, 2022, 11:18:06 AM4/22/22
to v8-re...@googlegroups.com

Comment #121 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c121


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/c774840edfe93bc43ec1c6146958ad90e22e21d7

commit c774840edfe93bc43ec1c6146958ad90e22e21d7
Author: Leszek Swirski <les...@chromium.org>
Date: Fri Apr 22 14:35:06 2022

[maglev] Simplify LoadField to just and offset

Removes the full Smi handler from LoadField, leaving just the offset.
All other handler-based decisions (inline vs out-of-line, tagged vs.
double) should be done at graph building time and as separate IR nodes.

Bug: v8:7700
Change-Id: I55ba49edba5ef5628d5f30fc6ba60c8774e2ef9c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3602510
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80120}

[modify] https://crrev.com/c774840edfe93bc43ec1c6146958ad90e22e21d7/src/maglev/maglev-graph-verifier.h
[modify] https://crrev.com/c774840edfe93bc43ec1c6146958ad90e22e21d7/src/maglev/maglev-ir.h
[modify] https://crrev.com/c774840edfe93bc43ec1c6146958ad90e22e21d7/src/maglev/maglev-graph-builder.cc
[modify] https://crrev.com/c774840edfe93bc43ec1c6146958ad90e22e21d7/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 22, 2022, 11:25:06 AM4/22/22
to v8-re...@googlegroups.com

Comment #122 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c122


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/28d526ec57957ff814d08f8781e7e8fab6302049

commit 28d526ec57957ff814d08f8781e7e8fab6302049
Author: Victor Gomes <victo...@chromium.org>
Date: Fri Apr 22 14:42:54 2022

[maglev] Adds RegisterFrameState

RegisterFrameState is a container for free registers and values.
It abstracts operations for GeneralRegisters and DoubleRegisters.

It will be used later to call generic functions from the allocator,
depending on the register type needed.
See PrintLiveRegs as an example of function reuse.

Bug: v8:7700
Change-Id: If8e6cdb048c1782ca097d9bc2d810c66f680601a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596127
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80121}

[modify] https://crrev.com/28d526ec57957ff814d08f8781e7e8fab6302049/src/maglev/maglev-regalloc-data.h
[modify] https://crrev.com/28d526ec57957ff814d08f8781e7e8fab6302049/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/28d526ec57957ff814d08f8781e7e8fab6302049/src/maglev/maglev-regalloc.h

Git Watcher via monorail

unread,
Apr 25, 2022, 6:02:06 AM4/25/22
to v8-re...@googlegroups.com

Comment #123 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c123


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/2c4d1b4c0ad80ebb39689af5d37e772e16bf6d93

commit 2c4d1b4c0ad80ebb39689af5d37e772e16bf6d93
Author: Victor Gomes <victo...@chromium.org>
Date: Mon Apr 25 09:04:53 2022

[maglev] Properly use MachineRepresentation in RegAlloc

We need to use MachineRepresentation to properly distinguish
the types in compiler::UnallocatedOperand.

Bug: v8:7700
Change-Id: I4273512a00290bb85b09aeb3788643e346be03f7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3602515
Reviewed-by: Leszek Swirski <les...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80140}

[modify] https://crrev.com/2c4d1b4c0ad80ebb39689af5d37e772e16bf6d93/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/2c4d1b4c0ad80ebb39689af5d37e772e16bf6d93/src/maglev/maglev-ir.h

Git Watcher via monorail

unread,
Apr 25, 2022, 7:53:19 AM4/25/22
to v8-re...@googlegroups.com

Comment #124 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c124


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/f025148e3147fb72298148d62a53b41023b25393

commit f025148e3147fb72298148d62a53b41023b25393
Author: Victor Gomes <victo...@chromium.org>
Date: Mon Apr 25 10:37:02 2022

[maglev] Support double registers in register allocator

This assumes that Phi nodes never point to untagged values and
TemporaryRegisters are always general registers.

Bug: v8:7700
Change-Id: I74a6c43ff9f1ba87dd258e90a193f683d666b8ec
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3598883
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80144}

[modify] https://crrev.com/f025148e3147fb72298148d62a53b41023b25393/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/f025148e3147fb72298148d62a53b41023b25393/src/maglev/maglev-regalloc.h
[modify] https://crrev.com/f025148e3147fb72298148d62a53b41023b25393/src/maglev/maglev-ir.h

Git Watcher via monorail

unread,
Apr 25, 2022, 12:36:06 PM4/25/22
to v8-re...@googlegroups.com

Comment #125 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c125


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/65d29d321bda17bb8836099944d8b5d6ee5f1c76

commit 65d29d321bda17bb8836099944d8b5d6ee5f1c76
Author: Leszek Swirski <les...@chromium.org>
Date: Mon Apr 25 15:57:21 2022

[maglev] Fix deopt vs translation index

Correct use the lazy deopt's deopt index in safepoints, instead of the
index in the translation array.

Bug: v8:7700
Change-Id: I4a99ceb8bb54f2fba5bee0e6ddd6629b44439ce1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3605609
Commit-Queue: Leszek Swirski <les...@chromium.org>

Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Apr 25, 2022, 12:41:15 PM4/25/22
to v8-re...@googlegroups.com

Comment #126 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c126


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/d94f8343fb2b37dbe266838606b3e29674fee84a

commit d94f8343fb2b37dbe266838606b3e29674fee84a
Author: Leszek Swirski <les...@chromium.org>
Date: Mon Apr 25 16:02:09 2022

[maglev] Add maglev CodeKind to function logging

Bug: v8:7700
Change-Id: If0ae8dce83d91b159c345bdeef74d902593cd185
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3605247

Commit-Queue: Leszek Swirski <les...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Apr 25, 2022, 1:02:08 PM4/25/22
to v8-re...@googlegroups.com

Comment #127 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c127


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/1dc3b908f29ba19827e192950f23c12780643bde

commit 1dc3b908f29ba19827e192950f23c12780643bde
Author: Leszek Swirski <les...@chromium.org>
Date: Mon Apr 25 16:22:53 2022

[maglev] Only add Call node to graph after arguments

Make sure that Call nodes are only added to the graph after their
arguments are processed. Previously we were already doing this for the
undefined constant, but forgot to also do it for tagging nodes.

Now rather than trying to add those nodes before creating the Call node,
we create the Call node without adding it to the graph, then add it only
after setting up its inputs.

Bug: v8:7700
Change-Id: Id8c4c381f42fdd3c86d19d0fa2eb57163771060b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3605248

Commit-Queue: Leszek Swirski <les...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Apr 26, 2022, 6:57:20 AM4/26/22
to v8-re...@googlegroups.com

Comment #128 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c128


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/755b7d863ff59dedfb4a4add23e800045e9b4622

commit 755b7d863ff59dedfb4a4add23e800045e9b4622
Author: Victor Gomes <victo...@chromium.org>
Date: Tue Apr 26 10:11:19 2022

[maglev] Add Box/UnboxNumbers and Float64Add nodes

- For simplicity we call a builtin when allocating a number.
- Elision of boxing/unboxing nodes will be done in a followup CL.

Bug: v8:7700
Change-Id: Iec4422d84c6597d3369ab512a1662adb0f077c98
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3602514

Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80178}

[modify] https://crrev.com/755b7d863ff59dedfb4a4add23e800045e9b4622/src/codegen/ia32/interface-descriptors-ia32-inl.h
[modify] https://crrev.com/755b7d863ff59dedfb4a4add23e800045e9b4622/src/maglev/maglev-ir.h
[modify] https://crrev.com/755b7d863ff59dedfb4a4add23e800045e9b4622/src/maglev/maglev-graph-verifier.h
[modify] https://crrev.com/755b7d863ff59dedfb4a4add23e800045e9b4622/src/builtins/builtins-definitions.h
[modify] https://crrev.com/755b7d863ff59dedfb4a4add23e800045e9b4622/src/codegen/interface-descriptors.h
[modify] https://crrev.com/755b7d863ff59dedfb4a4add23e800045e9b4622/src/maglev/maglev-code-gen-state.h
[add] https://crrev.com/755b7d863ff59dedfb4a4add23e800045e9b4622/test/mjsunit/maglev/add-number.js
[modify] https://crrev.com/755b7d863ff59dedfb4a4add23e800045e9b4622/src/maglev/maglev-graph-builder.cc
[modify] https://crrev.com/755b7d863ff59dedfb4a4add23e800045e9b4622/src/codegen/interface-descriptors-inl.h
[modify] https://crrev.com/755b7d863ff59dedfb4a4add23e800045e9b4622/src/builtins/builtins-internal-gen.cc
[modify] https://crrev.com/755b7d863ff59dedfb4a4add23e800045e9b4622/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 27, 2022, 4:27:18 AM4/27/22
to v8-re...@googlegroups.com

Comment #129 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c129


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/96f7ea254196fb6e77376ae4413a3fccdc8869cd

commit 96f7ea254196fb6e77376ae4413a3fccdc8869cd
Author: Victor Gomes <victo...@chromium.org>
Date: Tue Apr 26 11:55:15 2022

[maglev] Support GapMove with double registers

Bug: v8:7700
Change-Id: I766b523cfaf30eda9c33d9f2c580bc72a2eaa9ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3605815
Auto-Submit: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80203}

[modify] https://crrev.com/96f7ea254196fb6e77376ae4413a3fccdc8869cd/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 27, 2022, 5:57:06 AM4/27/22
to v8-re...@googlegroups.com

Comment #130 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c130


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/ac6854833133afc1ecb2f75729afd88ab129beaf

commit ac6854833133afc1ecb2f75729afd88ab129beaf
Author: Victor Gomes <victo...@chromium.org>
Date: Wed Apr 27 09:01:55 2022

[maglev] Refactor binary operation in graph builder

This makes it hopefully easier to add new operations and fixes
the current bug where we add new nodes (box/unbox/smitag/smiuntag)
that is not being used since the operation does not support a fast path.

Bug: v8:7700
Change-Id: I7ce33e44a4f8e63f42541a615fa72aa6e1b5cccc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3605819
Reviewed-by: Leszek Swirski <les...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80211}

[modify] https://crrev.com/ac6854833133afc1ecb2f75729afd88ab129beaf/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/ac6854833133afc1ecb2f75729afd88ab129beaf/src/maglev/maglev-graph-builder.cc

Git Watcher via monorail

unread,
Apr 27, 2022, 8:02:10 AM4/27/22
to v8-re...@googlegroups.com

Comment #131 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c131


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/5f77a1b30b658ad7d71d2aa572f4d216a9cb58e6

commit 5f77a1b30b658ad7d71d2aa572f4d216a9cb58e6
Author: Victor Gomes <victo...@chromium.org>
Date: Wed Apr 27 11:06:46 2022

[maglev] Fix float64 add deoptimization

CheckedFloat64Unbox mutates the input value, but the register allocator
does not expects this behaviour and propagates a wrong value in the register.
In particular we deopt with the wrong value if the second Float64Unbox
in a Float64Add needs to deopt.

This fixes the input value after we convert to double.

Bug: v8:7700
Change-Id: Ib89573e9f728dc3a34b817fc84f1afcb96f14d18
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3610422

Commit-Queue: Victor Gomes <victo...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Apr 27, 2022, 8:16:52 AM4/27/22
to v8-re...@googlegroups.com

Comment #132 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c132


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/fb3b972c320d71e56d3fdb04f2164a3b3c8d4af1

commit fb3b972c320d71e56d3fdb04f2164a3b3c8d4af1
Author: Leszek Swirski <les...@chromium.org>
Date: Wed Apr 27 11:37:36 2022

[maglev] Drop register values before adding them to the free list

This fixes the ordering of DCHECKs which expect the value to not be in
the free list yet when it is dropped.

Bug: v8:7700
Change-Id: Ifb85d0e20cfe5c083d1f2bc971817143265fdc7f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3610444

Commit-Queue: Leszek Swirski <les...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Apr 27, 2022, 9:13:06 AM4/27/22
to v8-re...@googlegroups.com

Comment #133 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c133


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/7ada6c8bbc70bb1499bdddb4543f9835a161c102

commit 7ada6c8bbc70bb1499bdddb4543f9835a161c102
Author: Leszek Swirski <les...@chromium.org>
Date: Wed Apr 27 12:32:39 2022

[maglev] Add LoadDoubleField

Add an unboxing double field load node, and fix a couple of locations
where it might be used enough to pass tests.

Bug: v8:7700
Change-Id: Ic134484e87a4fa363cbd8a3de667ac8e8116d502
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3610623
Reviewed-by: Victor Gomes <victo...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80221}

[modify] https://crrev.com/7ada6c8bbc70bb1499bdddb4543f9835a161c102/src/maglev/maglev-graph-builder.h
[modify] https://crrev.com/7ada6c8bbc70bb1499bdddb4543f9835a161c102/src/maglev/maglev-graph-verifier.h
[modify] https://crrev.com/7ada6c8bbc70bb1499bdddb4543f9835a161c102/src/maglev/maglev-ir.h
[modify] https://crrev.com/7ada6c8bbc70bb1499bdddb4543f9835a161c102/src/maglev/maglev-code-generator.cc
[modify] https://crrev.com/7ada6c8bbc70bb1499bdddb4543f9835a161c102/src/maglev/maglev-graph-builder.cc
[add] https://crrev.com/7ada6c8bbc70bb1499bdddb4543f9835a161c102/test/mjsunit/maglev/load-named.js
[modify] https://crrev.com/7ada6c8bbc70bb1499bdddb4543f9835a161c102/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 27, 2022, 11:08:13 AM4/27/22
to v8-re...@googlegroups.com

Comment #134 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c134


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/750b5f37fb2e4d6521cf923fb6039d719f800699

commit 750b5f37fb2e4d6521cf923fb6039d719f800699
Author: Leszek Swirski <les...@chromium.org>
Date: Wed Apr 27 12:35:51 2022

[maglev] Add a generic StoreNamed node

Bug: v8:7700
Change-Id: I44b5fd2172522034bfe9566ab314dc93e05b2e80
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3610425
Commit-Queue: Victor Gomes <victo...@chromium.org>

Auto-Submit: Leszek Swirski <les...@chromium.org>
Reviewed-by: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
Apr 28, 2022, 5:06:06 AM4/28/22
to v8-re...@googlegroups.com

Comment #135 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c135


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/844f3d6482f40aed73ff6e58c29cf0a29aed3326

commit 844f3d6482f40aed73ff6e58c29cf0a29aed3326
Author: Victor Gomes <victo...@chromium.org>
Date: Wed Apr 27 13:27:17 2022

[maglev] Use higher level Smi macro assembler operations

Bug: v8:7700
Change-Id: Ia601631de4cbc8099a87be0bda4a68ddffa8de74
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3610428
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>
Commit-Queue: Toon Verwaest <verw...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80248}

[modify] https://crrev.com/844f3d6482f40aed73ff6e58c29cf0a29aed3326/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 28, 2022, 9:18:07 AM4/28/22
to v8-re...@googlegroups.com

Comment #136 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c136


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/4837f37279f6a02e92fd1979910b3eb6a364e624

commit 4837f37279f6a02e92fd1979910b3eb6a364e624
Author: Victor Gomes <victo...@chromium.org>
Date: Thu Apr 28 12:35:49 2022

[maglev] Float64 box/unbox elision

- Supports Float64 Add for SmiAdd bytecode
- Adds a Float64Constant and ChangeInt32ToFloat64 nodes
- Converts floats to tagged in Phi node inputs
- Fixes spill double representation
- Fixes materialisation during a deopt of a double in the stack

Bug: v8:7700
Change-Id: I9217a64313b4bd5d0015f935c23771ecf9a2c7ca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3610426
Commit-Queue: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80255}

[modify] https://crrev.com/4837f37279f6a02e92fd1979910b3eb6a364e624/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/4837f37279f6a02e92fd1979910b3eb6a364e624/src/maglev/maglev-interpreter-frame-state.h
[modify] https://crrev.com/4837f37279f6a02e92fd1979910b3eb6a364e624/src/maglev/maglev-graph-builder.h
[add] https://crrev.com/4837f37279f6a02e92fd1979910b3eb6a364e624/test/mjsunit/maglev/spill-double.js
[modify] https://crrev.com/4837f37279f6a02e92fd1979910b3eb6a364e624/src/maglev/maglev-graph-verifier.h
[modify] https://crrev.com/4837f37279f6a02e92fd1979910b3eb6a364e624/src/maglev/maglev-ir.h
[modify] https://crrev.com/4837f37279f6a02e92fd1979910b3eb6a364e624/src/maglev/maglev-code-generator.cc
[modify] https://crrev.com/4837f37279f6a02e92fd1979910b3eb6a364e624/test/mjsunit/maglev/add-number.js
[modify] https://crrev.com/4837f37279f6a02e92fd1979910b3eb6a364e624/src/maglev/maglev-graph-builder.cc
[modify] https://crrev.com/4837f37279f6a02e92fd1979910b3eb6a364e624/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 28, 2022, 10:43:07 AM4/28/22
to v8-re...@googlegroups.com

Comment #137 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c137


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/56adca8ed6a7ac1ae88cf7176e1f32e3c2bd9c2b

commit 56adca8ed6a7ac1ae88cf7176e1f32e3c2bd9c2b
Author: Victor Gomes <victo...@chromium.org>
Date: Thu Apr 28 13:44:31 2022

[maglev] Generic CreateEmptyArrayLiteral node

We should just call the builtin while we don't have inlined
allocations.

Bug: v8:7700
Change-Id: I6da605cc756b0f44fb1366e90e6c0dac60ae9beb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3613326

Commit-Queue: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>

Git Watcher via monorail

unread,
Apr 28, 2022, 11:46:07 AM4/28/22
to v8-re...@googlegroups.com

Comment #138 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c138


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/cb4fb3b571e793715f2e14274536b940913658bc

commit cb4fb3b571e793715f2e14274536b940913658bc
Author: Leszek Swirski <les...@chromium.org>
Date: Thu Apr 28 14:29:59 2022

[maglev] Add a write barrier to StoreField

StoreField wasn't emitting a write barrier after performing the store,
leading to the usual set of hard-to-debug issues. Now it does.

The write barrier requires some of its registers to be in fixed
locations, and others to be clobberable. Thsi patch extends the
temporaries mechanism to allow requesting a specific temporary, in this
case for the slot address scratch register.

Bug: v8:7700
Change-Id: I506856071e0f44feafb98c2685ef1b3362b0e41e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3613388
Auto-Submit: Leszek Swirski <les...@chromium.org>
Commit-Queue: Toon Verwaest <verw...@chromium.org>
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80263}

[modify] https://crrev.com/cb4fb3b571e793715f2e14274536b940913658bc/src/maglev/maglev-regalloc.cc
[modify] https://crrev.com/cb4fb3b571e793715f2e14274536b940913658bc/src/maglev/maglev-ir.h
[modify] https://crrev.com/cb4fb3b571e793715f2e14274536b940913658bc/src/maglev/maglev-ir.cc

Git Watcher via monorail

unread,
Apr 29, 2022, 4:51:19 AM4/29/22
to v8-re...@googlegroups.com

Comment #139 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c139


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/94add18bc61a24cd09ef2d50557ea4549234e453

commit 94add18bc61a24cd09ef2d50557ea4549234e453
Author: Victor Gomes <victo...@chromium.org>
Date: Fri Apr 29 08:03:52 2022

[maglev] Add Construct node

Similar approach as Call (from RegisterList).

Bug: v8:7700
Change-Id: Ifc94e2bf53f40a8f556d30d85c2354f8d3a2af1b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3616502
Auto-Submit: Victor Gomes <victo...@chromium.org>

Commit-Queue: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>

Git Watcher via monorail

unread,
Apr 29, 2022, 7:25:21 AM4/29/22
to v8-re...@googlegroups.com

Comment #140 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c140


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/a81bcd877669858ceed6e057d32fc8a32d9e06d9

commit a81bcd877669858ceed6e057d32fc8a32d9e06d9
Author: Victor Gomes <victo...@chromium.org>
Date: Fri Apr 29 09:19:22 2022

[maglev] Fix CreateEmptyArrayLiteral code gen

The builtin CreateEmptyArrayLiteral actually expects the feedback
slot as an smi.

Bug: v8:7700
Change-Id: Ib33c3d0abd626ccbc43b4aff2f1cf69a81ff6568
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3616506
Commit-Queue: Leszek Swirski <les...@chromium.org>

Auto-Submit: Victor Gomes <victo...@chromium.org>
Commit-Queue: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>

Git Watcher via monorail

unread,
Apr 29, 2022, 8:21:07 AM4/29/22
to v8-re...@googlegroups.com

Git Watcher via monorail

unread,
Apr 29, 2022, 9:10:09 AM4/29/22
to v8-re...@googlegroups.com

Comment #142 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c142


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/2243e82639baf79de206e971bdacf36f68f0bc58

commit 2243e82639baf79de206e971bdacf36f68f0bc58
Author: Victor Gomes <victo...@chromium.org>
Date: Fri Apr 29 11:41:11 2022

[maglev] Display function name when showing graph

This make it easier to follow which function was compiled when many
maglev graphs are outputted.

Bug: v8:7700
Change-Id: If88f6d4aa7306df8a26601f081105bff0eb9c5e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3616513

Commit-Queue: Victor Gomes <victo...@chromium.org>
Reviewed-by: Leszek Swirski <les...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80279}

[modify] https://crrev.com/2243e82639baf79de206e971bdacf36f68f0bc58/src/maglev/maglev-compiler.cc

Git Watcher via monorail

unread,
May 2, 2022, 6:09:06 AM5/2/22
to v8-re...@googlegroups.com

Comment #143 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c143


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/ac7d42c404e1ea8c0d9fb0168213ce25eae1788f

commit ac7d42c404e1ea8c0d9fb0168213ce25eae1788f
Author: Victor Gomes <victo...@chromium.org>
Date: Fri Apr 29 15:23:50 2022

[maglev] Push/Pop Context bytecodes

Bug: v8:7700
Change-Id: I389574d93725fe68816eddbebeef7fbfd3e136fb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3616724
Commit-Queue: Leszek Swirski <les...@chromium.org>

Reviewed-by: Leszek Swirski <les...@chromium.org>
Auto-Submit: Victor Gomes <victo...@chromium.org>

Git Watcher via monorail

unread,
May 3, 2022, 7:59:06 AM5/3/22
to v8-re...@googlegroups.com

Comment #144 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c144


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/bac9a90a3caebc28687d78d6bb4982e75811d16a

commit bac9a90a3caebc28687d78d6bb4982e75811d16a
Author: Leszek Swirski <les...@chromium.org>
Date: Tue May 03 07:13:25 2022

[maglev] Use --maglev-filter

Observe the beauty of nature, as a TODO blossoms into a DONE.

Bug: v8:7700
Change-Id: I6981a5530664aa9ba4d120000d688a682c923a23
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3622914
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Auto-Submit: Leszek Swirski <les...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80334}

[modify] https://crrev.com/bac9a90a3caebc28687d78d6bb4982e75811d16a/src/codegen/compiler.cc

Git Watcher via monorail

unread,
May 4, 2022, 5:58:19 AM5/4/22
to v8-re...@googlegroups.com

Comment #145 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c145


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/22269111c765b60f3803b08b3f1285391501366b

commit 22269111c765b60f3803b08b3f1285391501366b
Author: Leszek Swirski <les...@chromium.org>
Date: Wed May 04 09:11:48 2022

[maglev] Cache maglev code on the feedback vector

In the future we may want to cache this in a separate slot to turbofan
code, but for now cache maglev code in the same optimized code slot on
the feedback vector.

Bug: v8:7700
Change-Id: Idd40a024cc9beb9b4da06a88a3789d822ddd4ab7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3622916
Reviewed-by: Jakob Linke <jgr...@chromium.org>
Commit-Queue: Leszek Swirski <les...@chromium.org>
Reviewed-by: Toon Verwaest <verw...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80354}

[modify] https://crrev.com/22269111c765b60f3803b08b3f1285391501366b/src/codegen/compiler.cc
[modify] https://crrev.com/22269111c765b60f3803b08b3f1285391501366b/src/objects/feedback-vector.cc
[modify] https://crrev.com/22269111c765b60f3803b08b3f1285391501366b/src/objects/feedback-vector.h
[modify] https://crrev.com/22269111c765b60f3803b08b3f1285391501366b/src/objects/code-kind.h

Git Watcher via monorail

unread,
May 5, 2022, 7:45:20 AM5/5/22
to v8-re...@googlegroups.com

Comment #146 on issue 7700 by Git Watcher: Tracking bug: Maglev
https://bugs.chromium.org/p/v8/issues/detail?id=7700#c146


The following revision refers to this bug:
https://chromium.googlesource.com/v8/v8/+/5b9d0b341b3a728248b04e974c6dc0b936215373

commit 5b9d0b341b3a728248b04e974c6dc0b936215373
Author: Jakob Linke <jgr...@chromium.org>
Date: Thu May 05 10:00:45 2022

[maglev] Enable the maglev variant on FYI bots

Bug: v8:7700
Change-Id: I6e77592e6a3603533414971b59ef1fb9b2f89657
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3629150
Reviewed-by: Michael Achenbach <mache...@chromium.org>
Commit-Queue: Jakob Linke <jgr...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80367}

[modify] https://crrev.com/5b9d0b341b3a728248b04e974c6dc0b936215373/infra/testing/builders.pyl
It is loading more messages.
0 new messages