)]}'
{
  "commit": "ea45fec99c10b940938c8497a9b0d3d64388d44b",
  "tree": "8e360bb9705b425784696cac0dadc9eb31f43d41",
  "parents": [
    "0b9ed5dc64149147aadc588d9077d80fb73a54d6"
  ],
  "author": {
    "name": "Kunqiu Chen",
    "email": "camsyn@foxmail.com",
    "time": "Wed Oct 22 22:17:39 2025 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Oct 22 22:17:39 2025 +0800"
  },
  "message": "[PredicateInfo] Reserve adjacent LN_Last defs for the same phi use (#164577)\n\nThis patch fixes a missed optimization issue: predicate infos might be\nlost in phi-use scenarios.\n\nDue to the existence of and-chains, a phi-use might be associated with\nmultiple LN_Last predicate infos.\nE.g.,\n```cpp\n// TWO LN_Last Predicate Info defs:\n// 1. a \u003e\u003d 1\n// 2. a \u003c 2\nif ( a \u003c 1 || a \u003e\u003d 2) {\n  a \u003d 1;\n}  \n// PHI use of `a`\nuse(a)\n```\nHowever, previously, `popStackUntilDFSScope` reserved only ONE LN_Last\ndef for a phi use (i.e., reserve only one of `a \u003e\u003d 1` / `a \u003c 2`),\nalthough there might be multiple LN_Last defs for the same phi use.\n\n\nThis patch reserves the adjacent LN_Last defs if they are designated for\nthe same phi use.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "978d5a25a57c8526a0731f1877c15e89c7171d4d",
      "old_mode": 33188,
      "old_path": "llvm/lib/Transforms/Utils/PredicateInfo.cpp",
      "new_id": "371d9e6c83163d1caf5865922a691d034629a36b",
      "new_mode": 33188,
      "new_path": "llvm/lib/Transforms/Utils/PredicateInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "a3cf23bd3ae9ad5682dfae8fd7964544bf551314",
      "old_mode": 33188,
      "old_path": "llvm/test/Transforms/SCCP/conditions-ranges.ll",
      "new_id": "f793814e445f8b62d18625d0c8df83e4609fcd7a",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/SCCP/conditions-ranges.ll"
    },
    {
      "type": "modify",
      "old_id": "2e96a92dd37d47736998270319eb6a8767e39952",
      "old_mode": 33188,
      "old_path": "llvm/test/Transforms/Util/PredicateInfo/testandor.ll",
      "new_id": "cc1dc4e6989a1e3a6e1e969aedef7c402879748c",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/Util/PredicateInfo/testandor.ll"
    }
  ]
}
