)]}'
{
  "commit": "058398c4ceaf880b82a8a85a087f362fd8b48d75",
  "tree": "26d6b0da986eb3324517e3c65fd7fafa34fcc2d0",
  "parents": [
    "695e1baf61c533056e6cc6eff707a681f804db42"
  ],
  "author": {
    "name": "Chengjun",
    "email": "chengjunp@Nvidia.com",
    "time": "Fri Apr 17 16:34:03 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Apr 17 16:34:03 2026 -0700"
  },
  "message": "[NVPTX] Constant fold blockDim when reqntid is specified (#191575)\n\nCurrently, NVPTX cannot fold the `ntid.x/y/z` intrinsic calls into const\nvalues when `reqntid` is specified, which prevents the code from further\noptimization.\nTherefore, in this change, we extend the `NVVMIntrRange` pass to:\n- Tighten `ntid.x/y/z` intrinsic calls to one value range, which can be\nconst folded in later InstCombine pass\n- Tighten `tid.x/y/z` range attributes to use per-dimension reqntid\nbounds\n- When .reqntid exceeds hardware limits, garbage-in/garbage-out",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2fd305efa57cf17b829e8dc452dfb7068ab79736",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/NVPTX/NVVMIntrRange.cpp",
      "new_id": "b95cf2fab08859dd9c5a79034db0f408b7712160",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/NVPTX/NVVMIntrRange.cpp"
    },
    {
      "type": "modify",
      "old_id": "48fa3e06629b47eaae839a6e73e5d5d15a6b669b",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/NVPTX/intr-range.ll",
      "new_id": "59c1d3d3e39d8b66f75334835a8025da1ec241f4",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/NVPTX/intr-range.ll"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e07b354325c3b6d37dcf7201e2d5b5c433a99892",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/NVPTX/reqntid-const-fold.ll"
    }
  ]
}
