)]}'
{
  "commit": "292c03c09db61b845aa4405727fd76b15ba1aadb",
  "tree": "1440f9c3550d3edeaf55ecd77e1b0bc6bd199b59",
  "parents": [
    "91d68f379ddba8f0a25b99a93f7d0adf8e00f886"
  ],
  "author": {
    "name": "Vitaly Goldshteyn",
    "email": "goldvitaly@google.com",
    "time": "Fri Feb 21 12:12:18 2025 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Fri Feb 21 12:12:53 2025 -0800"
  },
  "message": "Extract slow path for PrepareInsertNonSoo to a separate function `PrepareInsertNonSooSlow`.\n\nhttps://gcc.godbolt.org/z/c9onP4qs3 shows a drastic reduction of operations. We can see that the new version fits everything into registers and doesn\u0027t have push and pop on stack.\n\nMicrobenchmarks are quite positive. Although small tables `InsertManyToEmpty` are slightly slower (\u003c0.5%).\n```\nBM_SWISSMAP_InsertManyOrdered_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:1/density:1             42.4 ± 0%            41.2 ± 0%   -2.93%        (p\u003d0.000 n\u003d27+25)\nBM_SWISSMAP_InsertManyOrdered_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:2/density:1             38.1 ± 0%            37.0 ± 0%   -2.91%        (p\u003d0.000 n\u003d26+27)\nBM_SWISSMAP_InsertManyOrdered_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:4/density:1             38.2 ± 0%            37.1 ± 0%   -2.91%        (p\u003d0.000 n\u003d27+25)\nBM_SWISSMAP_InsertManyOrdered_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:8/density:1             35.8 ± 0%            34.7 ± 0%   -3.09%        (p\u003d0.000 n\u003d25+27)\nBM_SWISSMAP_InsertManyOrdered_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:16/density:1            31.6 ± 1%            30.9 ± 1%   -2.40%        (p\u003d0.000 n\u003d26+24)\n\nBM_SWISSMAP_InsertManyUnordered_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:65536/density:0       29.3 ± 1%            25.6 ± 1%  -12.47%        (p\u003d0.000 n\u003d21+22)\nBM_SWISSMAP_InsertManyUnordered_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:131072/density:0      36.1 ± 1%            31.5 ± 2%  -12.79%        (p\u003d0.000 n\u003d21+22)\nBM_SWISSMAP_InsertManyUnordered_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:262144/density:0      40.8 ± 3%            35.5 ± 3%  -12.89%        (p\u003d0.000 n\u003d24+23)\nBM_SWISSMAP_InsertManyUnordered_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:524288/density:0      43.3 ± 2%            38.2 ± 3%  -11.86%        (p\u003d0.000 n\u003d21+22)\nBM_SWISSMAP_InsertManyUnordered_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:1048576/density:0     44.6 ± 2%            40.6 ±10%   -9.09%        (p\u003d0.000 n\u003d21+21)\n\nBM_SWISSMAP_EraseInsert_Hot\u003c::absl::flat_hash_set, 64\u003e/set_size:1024                          118 ± 1%             115 ± 1%   -2.95%        (p\u003d0.000 n\u003d27+25)\nBM_SWISSMAP_EraseInsert_Hot\u003c::absl::flat_hash_set, 64\u003e/set_size:2048                          120 ± 0%             115 ± 1%   -3.46%        (p\u003d0.000 n\u003d24+23)\nBM_SWISSMAP_EraseInsert_Hot\u003c::absl::flat_hash_set, 64\u003e/set_size:4096                          122 ± 0%             118 ± 1%   -3.47%        (p\u003d0.000 n\u003d27+27)\nBM_SWISSMAP_EraseInsert_Hot\u003c::absl::flat_hash_set, 64\u003e/set_size:8192                          133 ± 1%             129 ± 1%   -3.59%        (p\u003d0.000 n\u003d27+27)\nBM_SWISSMAP_EraseInsert_Hot\u003c::absl::flat_hash_set, 64\u003e/set_size:16384                         136 ± 1%             132 ± 1%   -3.22%        (p\u003d0.000 n\u003d27+24)\nBM_SWISSMAP_EraseInsert_Hot\u003c::absl::flat_hash_set, 64\u003e/set_size:32768                         138 ± 1%             134 ± 1%   -3.21%        (p\u003d0.000 n\u003d27+25)\nBM_SWISSMAP_EraseInsert_Hot\u003c::absl::flat_hash_set, 64\u003e/set_size:65536                         149 ± 2%             144 ± 2%   -3.48%        (p\u003d0.000 n\u003d26+21)\n\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:1                       15.0 ± 0%            15.0 ± 1%   +0.25%        (p\u003d0.014 n\u003d22+22)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:2                       28.0 ± 1%            28.1 ± 1%   +0.15%        (p\u003d0.030 n\u003d23+25)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:4                       44.7 ± 1%            44.3 ± 0%   -0.73%        (p\u003d0.000 n\u003d26+25)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:8                       44.9 ± 1%            44.5 ± 1%   -0.86%        (p\u003d0.000 n\u003d24+26)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:16                      53.1 ± 1%            54.0 ± 1%   +1.61%        (p\u003d0.000 n\u003d24+26)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:32                      53.5 ± 2%            54.6 ± 2%   +2.07%        (p\u003d0.000 n\u003d26+26)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:64                      51.5 ± 1%            52.4 ± 2%   +1.77%        (p\u003d0.000 n\u003d24+27)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:128                     49.6 ± 2%            50.0 ± 1%   +0.66%        (p\u003d0.007 n\u003d26+27)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:256                     47.9 ± 2%            47.7 ± 2%     ~           (p\u003d0.084 n\u003d24+27)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:512                     46.8 ± 2%            46.1 ± 2%   -1.49%        (p\u003d0.000 n\u003d26+27)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:1024                    46.5 ± 2%            45.5 ± 1%   -2.12%        (p\u003d0.000 n\u003d26+27)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:2048                    47.8 ± 2%            46.5 ± 2%   -2.75%        (p\u003d0.000 n\u003d25+26)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:4096                    53.9 ± 2%            52.0 ± 1%   -3.60%        (p\u003d0.000 n\u003d26+26)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:8192                    62.1 ± 1%            59.8 ± 1%   -3.62%        (p\u003d0.000 n\u003d27+27)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:16384                   64.8 ± 1%            62.5 ± 1%   -3.51%        (p\u003d0.000 n\u003d27+25)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:32768                   66.1 ± 1%            63.6 ± 1%   -3.71%        (p\u003d0.000 n\u003d27+27)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:65536                   67.6 ± 1%            65.0 ± 1%   -3.82%        (p\u003d0.000 n\u003d27+26)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:131072                  69.4 ± 1%            66.4 ± 1%   -4.28%        (p\u003d0.000 n\u003d27+25)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:262144                  72.2 ± 2%            68.4 ± 2%   -5.26%        (p\u003d0.000 n\u003d27+26)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:524288                  76.1 ± 2%            71.6 ± 2%   -5.96%        (p\u003d0.000 n\u003d27+27)\nBM_SWISSMAP_InsertManyToEmpty_Hot\u003c::absl::flat_hash_set, 4\u003e/set_size:1048576                 80.9 ± 2%            76.2 ± 6%   -5.89%        (p\u003d0.000 n\u003d26+23)\n```\n\nPiperOrigin-RevId: 729614125\nChange-Id: I2d36fddaa02d21572f6928dc148b8e2f1c2b159f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b58484e01d6912f079308fbd0c887cd4d7d98f45",
      "old_mode": 33188,
      "old_path": "absl/container/internal/raw_hash_set.cc",
      "new_id": "31a6f4eb122a613526a92774fb8124d7a7ae84a8",
      "new_mode": 33188,
      "new_path": "absl/container/internal/raw_hash_set.cc"
    },
    {
      "type": "modify",
      "old_id": "b62599a4f266b06c4bef5e82a36cf29bf219e44d",
      "old_mode": 33188,
      "old_path": "absl/container/internal/raw_hash_set.h",
      "new_id": "506579b1593d770ba352554fabf3440d6550d0d6",
      "new_mode": 33188,
      "new_path": "absl/container/internal/raw_hash_set.h"
    },
    {
      "type": "modify",
      "old_id": "4e48f48f234e07ed090adf3c91191538ed5b8fd2",
      "old_mode": 33188,
      "old_path": "absl/container/internal/raw_hash_set_test.cc",
      "new_id": "9a231a9f937de1c3cee4522738b0668ca8f2b4ca",
      "new_mode": 33188,
      "new_path": "absl/container/internal/raw_hash_set_test.cc"
    }
  ]
}
