)]}'
{
  "commit": "5804f7d23f568ae0c053944601e719f6b07693bb",
  "tree": "30d1187bace3b0589cea7993b52f116ab172343f",
  "parents": [
    "aa6f819c947dab3e43f455e85c80f124874c1deb"
  ],
  "author": {
    "name": "Anatoly Trosinenko",
    "email": "atrosinenko@accesssoftek.com",
    "time": "Thu Jun 12 13:25:28 2025 +0300"
  },
  "committer": {
    "name": "Anatoly Trosinenko",
    "email": "atrosinenko@accesssoftek.com",
    "time": "Fri Mar 20 21:32:52 2026 +0300"
  },
  "message": "[CGP][PAC] Flip PHI and blends when all immediate modifiers are the same\n\nGVN PRE, SimplifyCFG and possibly other passes may hoist the call to\n`@llvm.ptrauth.blend` intrinsic, introducing multiple duplicate call\ninstructions hidden behind a PHI node. This prevents the instruction\nselector from generating safer code by absorbing the address and\nimmediate modifiers into separate operands of AUT, PAC, etc. pseudo\ninstruction.\n\nThis patch makes CodeGenPrepare pass detect when discriminator is\ncomputed as a PHI node with all incoming values being blends with the\nsame immediate modifier. Each such discriminator value is replaced by a\nsingle blend, whose address argument is computed by a PHI node.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "56ee6e8b433044a2507d4e19d1170bbdd7b09279",
      "old_mode": 33188,
      "old_path": "llvm/lib/CodeGen/CodeGenPrepare.cpp",
      "new_id": "b411442645af249e1975752faa617cc4e3040150",
      "new_mode": 33188,
      "new_path": "llvm/lib/CodeGen/CodeGenPrepare.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7f06137c891dee6a5516e2e89a5e74c44fb3a98c",
      "new_mode": 33188,
      "new_path": "llvm/test/Transforms/CodeGenPrepare/AArch64/ptrauth.ll"
    }
  ]
}
