)]}'
{
  "commit": "d983b7f18d9f3d07e82603fa745bc868cf4ebd70",
  "tree": "c5432daea4d95201d7faafb976659dce3156e7b2",
  "parents": [
    "92ab0d7e0875d4088f73fb39907b5a41d0541709"
  ],
  "author": {
    "name": "Peng Liu",
    "email": "winner245@hotmail.com",
    "time": "Wed Feb 19 11:36:45 2025 -0500"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Feb 19 08:37:52 2025 -0800"
  },
  "message": "[libc++] Optimize ranges::move{,_backward} for vector\u003cbool\u003e::iterator (#121109)\n\nAs a follow-up to #121013 (which optimized `ranges::copy`) and #121026\n(which optimized `ranges::copy_backward`), this PR enhances the\nperformance of `std::ranges::{move, move_backward}` for\n`vector\u003cbool\u003e::iterator`, addressing a subtask outlined in issue #64038.\n\nThe optimizations bring performance improvements analogous to those\nachieved for the `{copy, copy_backward}` algorithms: up to 2000x for\naligned moves and 60x for unaligned moves. Moreover, comprehensive\ntests covering up to 4 storage words (256 bytes) with odd and even bit\nsizes are provided, which validate the proposed optimizations in this\npatch.\n\nGitOrigin-RevId: ab3d793982acb946afc2028ca41304913879c6c9\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "24393607970238ae188fa660f6ffcb63e1b5aa0f",
      "old_mode": 33188,
      "old_path": "docs/ReleaseNotes/21.rst",
      "new_id": "88a0666611a9ace151c0c6e3730335ada3609f10",
      "new_mode": 33188,
      "new_path": "docs/ReleaseNotes/21.rst"
    },
    {
      "type": "modify",
      "old_id": "6f3b0eb5d2927c2808667262babd788e324e2cd4",
      "old_mode": 33188,
      "old_path": "include/__algorithm/move.h",
      "new_id": "a3320e9f1985d063ec98dd3b0bbd2aff8566b567",
      "new_mode": 33188,
      "new_path": "include/__algorithm/move.h"
    },
    {
      "type": "modify",
      "old_id": "24a8d9b24527a7928cf52d676aaf1a56ce580785",
      "old_mode": 33188,
      "old_path": "include/__algorithm/move_backward.h",
      "new_id": "14482fee181147f2c9edd9506b74f7681243c157",
      "new_mode": 33188,
      "new_path": "include/__algorithm/move_backward.h"
    },
    {
      "type": "modify",
      "old_id": "aad470394732c6ebb363f073ede5976ed743c296",
      "old_mode": 33188,
      "old_path": "include/__bit_reference",
      "new_id": "377f5fed12266dbce427ba522bdeb2a20f4a7253",
      "new_mode": 33188,
      "new_path": "include/__bit_reference"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "73f36f0c129de192e7df5d96c9f9cba4f2c30552",
      "new_mode": 33188,
      "new_path": "test/benchmarks/algorithms/move.bench.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "23d7395198419dd63827e3e5f77829c3d453fcc2",
      "new_mode": 33188,
      "new_path": "test/benchmarks/algorithms/move_backward.bench.cpp"
    },
    {
      "type": "modify",
      "old_id": "b1ad6873bc5e5a8912d5293b736a8cf045332ba5",
      "old_mode": 33188,
      "old_path": "test/std/algorithms/alg.modifying.operations/alg.move/move.pass.cpp",
      "new_id": "1afaa1a7e6da173abc1974bd5b8845e456e2a849",
      "new_mode": 33188,
      "new_path": "test/std/algorithms/alg.modifying.operations/alg.move/move.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "61dea47b510716b5e64e67026ab9464b126c356b",
      "old_mode": 33188,
      "old_path": "test/std/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp",
      "new_id": "3c0fcadb2d0365c624c6f27d625267c8c48b66fe",
      "new_mode": 33188,
      "new_path": "test/std/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "a0d1473360a14e81264a10b07feb9a4936741e97",
      "old_mode": 33188,
      "old_path": "test/std/algorithms/alg.modifying.operations/alg.move/ranges.move.pass.cpp",
      "new_id": "1a8940886589280e38b023d36470ffc5ed840ca1",
      "new_mode": 33188,
      "new_path": "test/std/algorithms/alg.modifying.operations/alg.move/ranges.move.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "47cf178636ad130c9992927d40df43a81dae115e",
      "old_mode": 33188,
      "old_path": "test/std/algorithms/alg.modifying.operations/alg.move/ranges.move_backward.pass.cpp",
      "new_id": "923b4c790dd1d5f4e061c184b59acb17c2123fa6",
      "new_mode": 33188,
      "new_path": "test/std/algorithms/alg.modifying.operations/alg.move/ranges.move_backward.pass.cpp"
    }
  ]
}
