)]}'
{
  "commit": "a9474191e059edbb9b25c769afbe52c7a823f359",
  "tree": "0b591d861d6e2698b0c57c6dca5ccd5b78062247",
  "parents": [
    "c9eebc7af440dc012c94d25351eaba92e6a57910"
  ],
  "author": {
    "name": "Nikita Popov",
    "email": "npopov@redhat.com",
    "time": "Mon Apr 14 17:52:42 2025 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Apr 14 11:52:42 2025 +0200"
  },
  "message": "[SROA] Improve handling of lifetimes in load-only promotion (#135382)\n\nThe propagateStoredValuesToLoads() transform currently bails out if\nthere is a lifetime intrinsic spanning the whole alloca, but the\nindividual loads/stores operate on some smaller part, because the slice\n/ partition size does not match.\n    \nFix this by ignoring assume-like slices early, regardless of which range\nthey cover.\n    \nI\u0027ve changed the overall code structure here a bit because I was getting\nconfused by the different iterators.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4e444d8d4cefcb403d57d04fc54d8ea9e4ae0696",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Scalar/SROA.cpp",
      "new_id": "7d49b63a8e4f6647c8726bdbecee4a2bc0508173",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Scalar/SROA.cpp"
    },
    {
      "type": "modify",
      "old_id": "a37f02df46c75784582e2ab684b50a41dab15a9c",
      "old_mode": 33188,
      "old_path": "llvm/test/Transforms/SROA/non-capturing-call-readonly.ll",
      "new_id": "13808b2aa8916aa3df7e1acf75d3d63bd4bf5f7b",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/SROA/non-capturing-call-readonly.ll"
    },
    {
      "type": "modify",
      "old_id": "2ad20fcc51dc579c5c5ae347f40fd25d07a71884",
      "old_mode": 33188,
      "old_path": "llvm/test/Transforms/SROA/readonlynocapture.ll",
      "new_id": "1cbfe436f95913d2de530381a83a8c8c26dab873",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/SROA/readonlynocapture.ll"
    }
  ]
}
