)]}'
{
  "commit": "c1bd604385eedc709ac5e4aa4303c97303a885b8",
  "tree": "a24aa895e6c9a275fc7fa266ffdfce027f386d0d",
  "parents": [
    "164512ed3bbb8b1e3ad038b93e59fa6d94bdf12f"
  ],
  "author": {
    "name": "Connector Switch",
    "email": "c8ef@outlook.com",
    "time": "Tue Oct 21 18:01:36 2025 +0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Oct 21 03:06:26 2025 -0700"
  },
  "message": "[libcxx] Optimize `std::generate_n` for segmented iterators (#164266)\n\nPart of #102817.\n\nThis is a natural follow-up to #163006. We are forwarding\n`std::generate_n` to `std::__for_each_n` (`std::for_each_n` needs\nc++17), resulting in improved performance for segmented iterators.\n\nbefore:\n\n```\nstd::generate_n(deque\u003cint\u003e)/32          17.5 ns         17.3 ns     40727273\nstd::generate_n(deque\u003cint\u003e)/50          25.7 ns         25.5 ns     26352941\nstd::generate_n(deque\u003cint\u003e)/1024         490 ns          487 ns      1445161\nstd::generate_n(deque\u003cint\u003e)/8192        3908 ns         3924 ns       179200\n```\n\nafter:\n\n```\nstd::generate_n(deque\u003cint\u003e)/32          11.1 ns         11.0 ns     64000000\nstd::generate_n(deque\u003cint\u003e)/50          16.1 ns         16.0 ns     44800000\nstd::generate_n(deque\u003cint\u003e)/1024         291 ns          292 ns      2357895\nstd::generate_n(deque\u003cint\u003e)/8192        2269 ns         2250 ns       298667\n```\nGitOrigin-RevId: c06ae43e26aa5cd472d0b25d5904c44d20e84067\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e95cbc0c0f5b5a4eacbb5963e1479f5275370710",
      "old_mode": 33188,
      "old_path": "docs/ReleaseNotes/22.rst",
      "new_id": "25d33a9c2eb50653b5924385713f6a5521c64d25",
      "new_mode": 33188,
      "new_path": "docs/ReleaseNotes/22.rst"
    },
    {
      "type": "modify",
      "old_id": "f36403fd0f94a9fd3c8dac9ba569108ff53ed228",
      "old_mode": 33188,
      "old_path": "include/__algorithm/generate_n.h",
      "new_id": "e9da133f0570aec973ce378d80a374fe7f362da1",
      "new_mode": 33188,
      "new_path": "include/__algorithm/generate_n.h"
    },
    {
      "type": "modify",
      "old_id": "13fd1cbf1f33ceabdc31ca180882efad41512257",
      "old_mode": 33188,
      "old_path": "test/std/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp",
      "new_id": "525737ceacfbf9740d32dbad2dbe670438b5a3d8",
      "new_mode": 33188,
      "new_path": "test/std/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp"
    }
  ]
}
