)]}'
{
  "commit": "f4e8f6da41a5ca3e03808d86bce0bcde339b9414",
  "tree": "28a45efda8c2d743f8d651134820bd575d41a64a",
  "parents": [
    "bac4171073399352e5bd0ba541820e2a9b3f37d7"
  ],
  "author": {
    "name": "cooperp",
    "email": "peter_cooper@apple.com",
    "time": "Sat Feb 22 01:37:24 2025 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Feb 22 10:37:24 2025 +0100"
  },
  "message": "[Reassociate] Use a reference to DataLayout instead of copying the underlying string data (NFC) (#128269)\n\nI noticed this when looking at all allocations by clang. For a medium\nsized file this was around 6000 calls to operator new, although i\nsuspect there were more allocations in total as the SmallVectors in\nDataLayout may have their own allocations in some cases.\n\nIn a follow-up i\u0027m tempted to make the DataLayout copy constructor\nprivate, to avoid this in future. There are a few tests which copy the\nDataLayout, and perhaps need to (I didn\u0027t check yet), but we could\nprovide a clone() method for them if needed. Its only accidental copying\nI think we should consider avoiding, not people who really do need to\ncopy it for reasons.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7cb9bace47bf445e3d497439bf7b7c8f811047a8",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Scalar/Reassociate.cpp",
      "new_id": "a7db9fd81788336df54413690a59fe058b826087",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Scalar/Reassociate.cpp"
    }
  ]
}
