[dart-lang/sdk] 8765d8: Revert "[vm] Recognize int.trailingZeroBitCount/on...

0 views
Skip to first unread message

Alexander Aprelev

unread,
May 22, 2026, 5:23:33 PM (2 days ago) May 22
to com...@dartlang.org
Branch: refs/heads/main
Home: https://github.com/dart-lang/sdk
Commit: 8765d801775dc082be4ee2ca9256f219f31a5d43
https://github.com/dart-lang/sdk/commit/8765d801775dc082be4ee2ca9256f219f31a5d43
Author: Alexander Aprelev <a...@google.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:
-----------
Revert "[vm] Recognize int.trailingZeroBitCount/oneBitCount as graph-inlinable"

This reverts commit 0bef83781763b6987f1637c3b25a58edbb789f5e.

Reason for revert: simarm, xarm bot failures https://github.com/dart-lang/sdk/issues/63436

Original change's description:
> [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>

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
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I4eaca9e25a919ba494f2e7e9819f1ea7d5a13078
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505941
Auto-Submit: Alexander Aprelev <a...@google.com>
Reviewed-by: Slava Egorov <veg...@google.com>
Reviewed-by: Alexander Aprelev <a...@google.com>
Commit-Queue: Slava Egorov <veg...@google.com>
Bot-Commit: rubber-...@appspot.gserviceaccount.com <rubber-...@appspot.gserviceaccount.com>



To unsubscribe from these emails, change your notification settings at https://github.com/dart-lang/sdk/settings/notifications
Reply all
Reply to author
Forward
0 new messages