)]}'
{
  "commit": "74da14c6cb72245dc4c81fe36fa7568dd9296128",
  "tree": "f96b4e33dc1fd6a2c8976f7b8ca1369cdc30080a",
  "parents": [
    "1d9b42fd5fcbae726bcf1fc9d6e9b2b543d5d6aa"
  ],
  "author": {
    "name": "Vitaly Goldshteyn",
    "email": "goldvitaly@google.com",
    "time": "Wed Oct 21 07:38:28 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Oct 21 07:42:35 2026 -0700"
  },
  "message": "Pass `absl::string_view` pieces across the `StrCat` and `StrAppend` call boundary to eliminate `AlphaNum` stack frames.\n\nPreviously, the 2-, 3-, and 4-argument overloads of `absl::StrCat` and the 1- to 4-argument overloads of `absl::StrAppend` took `const AlphaNum\u0026` across an out-of-line call boundary, while 1-argument `StrCat(const AlphaNum\u0026)` constructed `std::string` inline at every call site. Passing `const AlphaNum\u0026` across a non-inline boundary forced callers to materialize a 48-byte `AlphaNum` stack slot (including the unused 32-byte `digits_` scratch buffer) even for string literals, `absl::string_view`, `std::string`, and `bool` arguments.\n\nMake the 1- to 4-argument `StrCat` and `StrAppend` overloads lightweight inline wrappers that extract `a.Piece()` in the caller and delegate to `ABSL_ATTRIBUTE_NOINLINE` `strings_internal::CatPiece`, `CatPieces`, and `AppendPieces` helpers:\n- 1, 2, and 3 arguments pass `absl::string_view` directly by value so the first two views pass purely in general-purpose registers with zero memory stores and the third uses at most 16 bytes on x86-64 (and registers on AArch64).\n- 4 or more arguments forward a compact `std::initializer_list\u003cabsl::string_view\u003e` (16 bytes per element instead of 48 bytes), avoiding double stack copies for stack-passed aggregate arguments on x86-64 and sharing a single out-of-line loop implementation.\n\nBecause `AlphaNum` temporaries no longer escape across the call boundary, LLVM SROA eliminates all unused 32-byte `digits_` stack allocations at both pure-string and mixed string-and-number call sites. Static ThinLTO release builds reduce `.text` size by an additional 13.0 KB to 16.8 KB across single test binaries (bringing cumulative savings across the stack to 21.2 KB to 31.4 KB per binary).\n\nPiperOrigin-RevId: 1003929475\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b5c7e195b7ce91554f30364a9c74c5a790e1d0e5",
      "old_mode": 33188,
      "old_path": "absl/strings/ascii.cc",
      "new_id": "e86e534e9ab91ca298f9df00437b85826d1eb147",
      "new_mode": 33188,
      "new_path": "absl/strings/ascii.cc"
    },
    {
      "type": "modify",
      "old_id": "d6252d63caa1c9b62d25e2af0c91fc3c0ddc80a7",
      "old_mode": 33188,
      "old_path": "absl/strings/ascii.h",
      "new_id": "5989f9f7b121fb4a015ba993479d4cf9b862a43d",
      "new_mode": 33188,
      "new_path": "absl/strings/ascii.h"
    },
    {
      "type": "modify",
      "old_id": "efe90412e6f3817a2ebea8e26117582bc6a63d0c",
      "old_mode": 33188,
      "old_path": "absl/strings/escaping.cc",
      "new_id": "ebebfe9b78d0270dcc73e9207e1fef18d04959c0",
      "new_mode": 33188,
      "new_path": "absl/strings/escaping.cc"
    },
    {
      "type": "modify",
      "old_id": "66ff22c47dab2e3507e9fd195ce76f9c6a93eb40",
      "old_mode": 33188,
      "old_path": "absl/strings/escaping.h",
      "new_id": "1502ff1d0218c9cfe3a9d91a9006f7a633240681",
      "new_mode": 33188,
      "new_path": "absl/strings/escaping.h"
    },
    {
      "type": "modify",
      "old_id": "5ac41ccb4274556afed215c682377e258f0e2bfe",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/ostringstream.cc",
      "new_id": "e848c15dfeb9b0b20187619b827ab5c1fdee8f21",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/ostringstream.cc"
    },
    {
      "type": "modify",
      "old_id": "c0e237dbe8fe4b19199b21842b878a3f2178fc5f",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/ostringstream.h",
      "new_id": "1139baf8fb13eb7b82aefa720a89eb1efda32860",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/ostringstream.h"
    },
    {
      "type": "modify",
      "old_id": "2125be31c6b7670a452be40ac795e048fdd19733",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/str_format/arg.cc",
      "new_id": "ac43f41b2e2f73af0e8fc6ad195834e575663944",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/str_format/arg.cc"
    },
    {
      "type": "modify",
      "old_id": "0e0b262faa8a882174e55e5f576baf067c3ebb6a",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/str_format/extension.h",
      "new_id": "4387c20b4958f2f2027b2273f5cbb4ec4ae543c4",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/str_format/extension.h"
    },
    {
      "type": "modify",
      "old_id": "8f9c11a19741b7084042b52baa1b729f7af25e53",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/str_join_internal.h",
      "new_id": "56b71ed495ce333f82b3abebeb916c1b2c383ca6",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/str_join_internal.h"
    },
    {
      "type": "modify",
      "old_id": "c9f82582045fa993b4cfdecb83d0fee3b65290d7",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/stringify_sink.cc",
      "new_id": "d70874c374af7e2b979a6c7835ee8419b9cf625b",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/stringify_sink.cc"
    },
    {
      "type": "modify",
      "old_id": "e4e5f9e8d9ac2bf672fd75c83fb3561979066c1c",
      "old_mode": 33188,
      "old_path": "absl/strings/internal/stringify_sink.h",
      "new_id": "c140343049aed9ca93c725ef60f4827838f51b51",
      "new_mode": 33188,
      "new_path": "absl/strings/internal/stringify_sink.h"
    },
    {
      "type": "modify",
      "old_id": "b79078d65a252b5b5269081e8b1caf19efa79e4e",
      "old_mode": 33188,
      "old_path": "absl/strings/str_cat.cc",
      "new_id": "426fdaaaf8c245ed7310b5d35d74d008a81b1807",
      "new_mode": 33188,
      "new_path": "absl/strings/str_cat.cc"
    },
    {
      "type": "modify",
      "old_id": "11e3bf63cd1aa820ddb6985f813c8d4603896d50",
      "old_mode": 33188,
      "old_path": "absl/strings/str_cat.h",
      "new_id": "298886fad3630ab3df6898a022bcbe81a6bca1db",
      "new_mode": 33188,
      "new_path": "absl/strings/str_cat.h"
    },
    {
      "type": "modify",
      "old_id": "7b21c9cc4d730b92736a3266f1a7adc9a730a054",
      "old_mode": 33188,
      "old_path": "absl/strings/str_cat_test.cc",
      "new_id": "94c268a2362ecee1343de841f645e5ad1af65ae4",
      "new_mode": 33188,
      "new_path": "absl/strings/str_cat_test.cc"
    },
    {
      "type": "modify",
      "old_id": "377e30cfd738ba407137c619346af8de4e6304ac",
      "old_mode": 33188,
      "old_path": "absl/strings/str_replace.cc",
      "new_id": "0900ae48a34407e5044fc337bdbb4f4e09d62406",
      "new_mode": 33188,
      "new_path": "absl/strings/str_replace.cc"
    },
    {
      "type": "modify",
      "old_id": "3af235793781b9512d13c1c7df6d0a099d7342d7",
      "old_mode": 33188,
      "old_path": "absl/strings/str_replace.h",
      "new_id": "38ef3e4fd0e2e4a1a8cc837ab4abf0b09bf92900",
      "new_mode": 33188,
      "new_path": "absl/strings/str_replace.h"
    },
    {
      "type": "modify",
      "old_id": "244c8a55e4ae9c3f1ab8af6d7bfbe4b4184a29c2",
      "old_mode": 33188,
      "old_path": "absl/strings/substitute.cc",
      "new_id": "dbb50e0e792bc8de3af83d4d9086ffa687dc24d6",
      "new_mode": 33188,
      "new_path": "absl/strings/substitute.cc"
    },
    {
      "type": "modify",
      "old_id": "6c62af6d7bfe95f24f81a560acad7bdec53324dd",
      "old_mode": 33188,
      "old_path": "absl/strings/substitute.h",
      "new_id": "1cc01cbcb070ff41a8e1a8ca60b9580ae88f9116",
      "new_mode": 33188,
      "new_path": "absl/strings/substitute.h"
    },
    {
      "type": "modify",
      "old_id": "e62a89a3db974b001d6a11d43f3b28a11345f4e5",
      "old_mode": 33188,
      "old_path": "absl/strings/substitute_test.cc",
      "new_id": "a9730f2c8d0f65f5961bba0ce151f1a64b87ea70",
      "new_mode": 33188,
      "new_path": "absl/strings/substitute_test.cc"
    }
  ]
}
