)]}'
{
  "commit": "bdea4ea9c092bd666ee2674cb2c2eac52489fb3e",
  "tree": "f82b45d3f6139d0ca334401f68e290eb43d4182b",
  "parents": [
    "8f7963ea1b7fc19d1cf3582d371d57293acddd30"
  ],
  "author": {
    "name": "Modestas Valauskas",
    "email": "valauskasmodestas@gmail.com",
    "time": "Fri May 29 06:01:17 2026 -0700"
  },
  "committer": {
    "name": "dart-internal-monorepo",
    "email": "dart-internal-monorepo@dart-ci-internal.iam.gserviceaccount.com",
    "time": "Fri May 29 06:14:07 2026 -0700"
  },
  "message": "Reland \"[vm] Recognize int.trailingZeroBitCount/oneBitCount as graph-inlinable\"\n\nThe previous attempt was reverted because it broke unoptimized JIT\non ARM 32. This reland force-optimizes the two getters.\n\nStacks on top of the int.{trailingZeroBitCount,oneBitCount} API CL\n(commit 754239b077e). Both getters route through OTHER_RECOGNIZED_LIST\nwhen a hardware fast path is available; otherwise the newly added\nDart bodies inline at call sites via vm:prefer-inline. The C++\nnatives are removed.\n\nBackend codegen\n---------------\nARM64:     NEON CNT + UADDLV (popcount); RBIT + CLZ (ctz).\nARM:       NEON CNT + VPADDL chain (popcount); RBIT + CLZ on the\n           register pair (ctz).\nx64:       popcntq when TargetCPUFeatures::popcnt_supported();\n           LoadImmediate(64) + rep_bsfq for ctz (decodes as tzcnt\n           on BMI1+, preserves dest on zero otherwise).\nRISC-V 64: cpop / ctz when RV_baseline includes Zbb.\n\nPer-arch availability is encapsulated in\nUnaryInt64OpInstr::IsSupported(Token::Kind).\n\nApple M-series ARM64, AOT (us/iter, lower is better):\n  cardinality.swar              371\n  cardinality.accelerated       154    (2.4x)\n  forEachSetBit.swar          19031\n  forEachSetBit.accelerated    4988    (3.8x)\n  select.swar                   199\n  select.accelerated             77    (2.6x)\n  complementCardinality.swar    399\n  complementCardinality.accel   152    (2.6x)\n\nWork towards https://github.com/dart-lang/sdk/issues/6486 (popcount\nand ctz intrinsification).\n\nWork towards https://github.com/dart-lang/sdk/issues/1053 (efficient\nBitSet implementation).\n\nFixes https://github.com/dart-lang/sdk/issues/52673\nFixes https://github.com/dart-lang/sdk/issues/38346\nFixes https://github.com/dart-lang/sdk/issues/63436\nIssue https://github.com/dart-lang/sdk/issues/10212\nIssue https://github.com/dart-lang/sdk/issues/5798\nTEST\u003dtests/corelib/int_bit_count_test\n\nCq-Include-Trybots: luci.dart.try:vm-linux-release-simarm-try,vm-ffi-qemu-linux-release-arm-try,vm-aot-linux-release-simarm_x64-try,vm-aot-linux-debug-simarm_x64-try,dart-sdk-linux-riscv64-try\nChange-Id: Ib812cbaec6e371b9720df7a543411f78e524cac1\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/506060\nReviewed-by: Martin Kustermann \u003ckustermann@google.com\u003e\nAuto-Submit: Modestas Valauskas \u003cvalauskasmodestas@gmail.com\u003e\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\n\nhttps://dart.googlesource.com/sdk/+/415b040d6fe730aea6d0db960ec5c1dbcc8a1d4f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0e9bd065a9576e70f1b8dc911c9d911bc6420fb5",
      "old_mode": 33188,
      "old_path": "DEPS",
      "new_id": "7efcf3c77750ed029297976c0f1634c9e81bdc87",
      "new_mode": 33188,
      "new_path": "DEPS"
    },
    {
      "type": "modify",
      "old_id": "8eb6734a4d8fcc4f884451efaa32efb5742dff21",
      "old_mode": 33188,
      "old_path": "commits.json",
      "new_id": "05c25d9e008241de409623764560824c6d974ea0",
      "new_mode": 33188,
      "new_path": "commits.json"
    }
  ]
}
