[dart-lang/sdk] 0bef83: [vm] Recognize int.trailingZeroBitCount/oneBitCoun...

0 views
Skip to first unread message

Modestas Valauskas

unread,
May 22, 2026, 9:00:47 AM (2 days ago) May 22
to com...@dartlang.org
Branch: refs/heads/main
Home: https://github.com/dart-lang/sdk
Commit: 0bef83781763b6987f1637c3b25a58edbb789f5e
https://github.com/dart-lang/sdk/commit/0bef83781763b6987f1637c3b25a58edbb789f5e
Author: Modestas Valauskas <valauska...@gmail.com>
Date: 2026-05-22 (Fri, 22 May 2026)

Changed paths:
M runtime/lib/integers.cc
M runtime/vm/bootstrap_natives.h
M runtime/vm/compiler/assembler/assembler_arm.cc
M runtime/vm/compiler/assembler/assembler_arm.h
M runtime/vm/compiler/assembler/assembler_arm64.h
M runtime/vm/compiler/assembler/assembler_arm64_test.cc
M runtime/vm/compiler/assembler/assembler_arm_test.cc
M runtime/vm/compiler/assembler/assembler_x64.h
M runtime/vm/compiler/assembler/assembler_x64_test.cc
M runtime/vm/compiler/assembler/disassembler_arm.cc
M runtime/vm/compiler/assembler/disassembler_arm64.cc
M runtime/vm/compiler/assembler/disassembler_x86.cc
M runtime/vm/compiler/backend/evaluator.cc
M runtime/vm/compiler/backend/il.cc
M runtime/vm/compiler/backend/il.h
M runtime/vm/compiler/backend/il_arm.cc
M runtime/vm/compiler/backend/il_arm64.cc
M runtime/vm/compiler/backend/il_riscv.cc
M runtime/vm/compiler/backend/il_x64.cc
M runtime/vm/compiler/frontend/kernel_to_il.cc
M runtime/vm/compiler/recognized_methods_list.h
M runtime/vm/simulator_arm.cc
M runtime/vm/simulator_arm64.cc
M runtime/vm/token.h
M sdk/lib/_internal/vm/lib/integers.dart

Log Message:
-----------
[vm] Recognize int.trailingZeroBitCount/oneBitCount as graph-inlinable

Stacks on top of the int.{trailingZeroBitCount,oneBitCount} API CL
(commit 754239b077e). Both getters route through OTHER_RECOGNIZED_LIST
when a hardware fast path is available; otherwise the newly added
Dart bodies inline at call sites via vm:prefer-inline. The C++
natives are removed.

Backend codegen
---------------
ARM64: NEON CNT + UADDLV (popcount); RBIT + CLZ (ctz).
ARM: NEON CNT + VPADDL chain (popcount); RBIT + CLZ on the
register pair (ctz).
x64: popcntq when TargetCPUFeatures::popcnt_supported();
LoadImmediate(64) + rep_bsfq for ctz (decodes as tzcnt
on BMI1+, preserves dest on zero otherwise).
RISC-V 64: cpop / ctz when RV_baseline includes Zbb.

Per-arch availability is encapsulated in
UnaryInt64OpInstr::IsSupported(Token::Kind).

Apple M-series ARM64, AOT (us/iter, lower is better):
cardinality.swar 371
cardinality.accelerated 154 (2.4x)
forEachSetBit.swar 19031
forEachSetBit.accelerated 4988 (3.8x)
select.swar 199
select.accelerated 77 (2.6x)
complementCardinality.swar 399
complementCardinality.accel 152 (2.6x)

Work towards https://github.com/dart-lang/sdk/issues/6486 (popcount
and ctz intrinsification).

Work towards https://github.com/dart-lang/sdk/issues/1053 (efficient
BitSet implementation).

Fixes https://github.com/dart-lang/sdk/issues/52673
Fixes https://github.com/dart-lang/sdk/issues/38346
Issue https://github.com/dart-lang/sdk/issues/10212
Issue https://github.com/dart-lang/sdk/issues/5798
TEST=tests/corelib/int_bit_count_test

Cq-Include-Trybots: luci.dart.try:vm-aot-linux-release-simarm_x64-try,vm-aot-linux-debug-simarm_x64-try,dart-sdk-linux-riscv64-try
Change-Id: I9c2c4225fd63d54e190398a0fb6649366317dd17
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/504221
Commit-Queue: Slava Egorov <veg...@google.com>
Reviewed-by: Slava Egorov <veg...@google.com>
Reviewed-by: Martin Kustermann <kuste...@google.com>
Auto-Submit: Modestas Valauskas <valauska...@gmail.com>



To unsubscribe from these emails, change your notification settings at https://github.com/dart-lang/sdk/settings/notifications

Modestas Valauskas

unread,
May 22, 2026, 9:43:45 AM (2 days ago) May 22
to com...@dartlang.org
Branch: refs/heads/lkgr

copybara-service[bot]

unread,
May 22, 2026, 12:08:54 PM (2 days ago) May 22
to com...@dartlang.org
Branch: refs/heads/dev
Commit: 291730c940603cb37ce0ff1988c0bc05355b5c92
https://github.com/dart-lang/sdk/commit/291730c940603cb37ce0ff1988c0bc05355b5c92
Author: Brian Wilkerson <brianwi...@google.com>
Date: 2026-05-22 (Fri, 22 May 2026)

Changed paths:
M pkg/dartdev/test/commands/fix_test.dart

Log Message:
-----------
Fix the windows bot

The CL https://dart-review.git.corp.google.com/c/sdk/+/505045 broke the
windows bot because the file path is different. It's different by more
than just the path separator, and given that the point of the test isn't
to ensure that the right file path is being printed, I decided to
remove the file path check from the expectations.

Change-Id: Ie5aef4beddb2051c63b2d1686664afb8841297fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505383
Commit-Queue: Brian Wilkerson <brianwi...@google.com>
Reviewed-by: Samuel Rawlins <sraw...@google.com>


Commit: 1d863d8ce702efcfcc94e64d0c71e71001470323
https://github.com/dart-lang/sdk/commit/1d863d8ce702efcfcc94e64d0c71e71001470323
Author: Jens Johansen <je...@google.com>
Date: 2026-05-22 (Fri, 22 May 2026)

Changed paths:
M pkg/front_end/test/incremental_suite.dart

Log Message:
-----------
[CFE] Sort incremental suite

This is only sorted via "Dart: Sort Members".
Attempt to make refactor CL smaller (part 1).

Change-Id: Id1ba5669ddb3f9390ab95f8f83a943125ebbd9d9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505300
Reviewed-by: Johnni Winther <johnni...@google.com>
Commit-Queue: Jens Johansen <je...@google.com>


Commit: b149fe9587dea3373d169ebf556dc716b65950f9
https://github.com/dart-lang/sdk/commit/b149fe9587dea3373d169ebf556dc716b65950f9
Author: Jens Johansen <je...@google.com>
Date: 2026-05-22 (Fri, 22 May 2026)

Changed paths:
M pkg/front_end/test/incremental_suite.dart

Log Message:
-----------
[CFE] Rename and move things in incremental suite

This only renames and moves procedures.
Attempt to make refactor CL smaller (part 2).

Change-Id: Id46b86f6af09eb8b25ea5c5c20e547dcb65ed2b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505222
Reviewed-by: Johnni Winther <johnni...@google.com>
Commit-Queue: Jens Johansen <je...@google.com>


Commit: 3f8dbb5c6de3bec3c676aa86bd7d9d6b8b2bfe9f
https://github.com/dart-lang/sdk/commit/3f8dbb5c6de3bec3c676aa86bd7d9d6b8b2bfe9f
Author: Dart CI <dart-inte...@dart-ci-internal.iam.gserviceaccount.com>
Date: 2026-05-22 (Fri, 22 May 2026)

Changed paths:
M pkg/dartdev/test/commands/fix_test.dart
M pkg/front_end/test/incremental_suite.dart
M tools/VERSION

Log Message:
-----------
Version 3.13.0-131.0.dev

Merge b149fe9587dea3373d169ebf556dc716b65950f9 into dev


Compare: https://github.com/dart-lang/sdk/compare/b8414c46f6c7...3f8dbb5c6de3

copybara-service[bot]

unread,
May 22, 2026, 1:06:36 PM (2 days ago) May 22
to com...@dartlang.org
Branch: refs/heads/lkgr-dev
Reply all
Reply to author
Forward
0 new messages