)]}'
{
  "commit": "63cdc7d2e3d3bf6f657bbeb6f38e234da128f7fc",
  "tree": "22cb583b22f6b0d2ddc5677d1951f96a2e1fbe00",
  "parents": [
    "442956c85c66028600bcfb83065c0d5b77165675"
  ],
  "author": {
    "name": "Krzysztof Drewniak",
    "email": "Krzysztof.Drewniak@amd.com",
    "time": "Fri Dec 13 13:06:39 2024 -0600"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Dec 13 13:06:39 2024 -0600"
  },
  "message": "Reapply \"[Codegen][GPU] Add range information to GPU dispatch IDs\" (#19361) (#19372)\n\nThis reverts commit cb5be1dbd3560f692578c137eadbb413b41e44c7.\r\n\r\nCompaled to the previous revision, this one works around a correctness\r\nbug in dataflow analysis that\u0027s being fixed by removing the analysis\r\nafter SCF-\u003eCF.\r\n\r\n---\r\n\r\nFirst, this patch implements InferIntRangeInterface for\r\nhal.interface.workgroup.{size,id,count} using a local upper_bound\r\nattribute.\r\n\r\nThen, it adds a -iree-codegen-gpu-propagate-dispatch-size-bounds pass\r\nthat adds these upper_bounds identifiers to the interface.workgroup\r\noperations and to gpu.thread_id based on static information available\r\nlate in the codegen pipeline.\r\n\r\nThen, it uses -optimize-int-arithmetic to optimize indexing after\r\n-lower-affine, getting rid of a bunch of \"if the input\u0027s negative\" logic\r\nthat isn\u0027t actually needed in many of our kernels.\r\n\r\nIt also ensures that these upper_bound values propagate to LLVM.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c9e23636142ffa567c9fdafc6180c4a184310ccb",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/BUILD.bazel",
      "new_id": "128ffa9fc46eb9cdfdcb7944a39dbb6aadcbe261",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "2aeb9add5f0cf70ad442bd4fae3f64cdb495d66e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/CMakeLists.txt",
      "new_id": "97d324042e2cf256e6f1c24ac96257758b506469",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "43aa70be6919acfeddea7726e8ede858c5495948",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/GPUPropagateDispatchSizeBounds.cpp"
    },
    {
      "type": "modify",
      "old_id": "789130940477fdb1cc1b0a795b200abdb1c15940",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/Passes.td",
      "new_id": "b3fdd50d4d465180b16e440280347f3462bba96c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "41afbb6559f388c9bd872b7d66755b2be6035457",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/BUILD.bazel",
      "new_id": "dc8e6a181ccf443ee9e90ee5be1882108041d8d7",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "ad86649ada7872b479cecd5a2ec1dbb40de8307f",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/CMakeLists.txt",
      "new_id": "4dc0f289d3d523cfe053fa2e682b09aba77e15eb",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f26f2c5dfe52dbc481ff2726dff127ff2dd11b3e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/GPU/test/gpu_propagate_dispatch_size_bounds.mlir"
    },
    {
      "type": "modify",
      "old_id": "c056d44538bb60b7f87edf365e0ee0a9b748689b",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/ConvertToLLVM.cpp",
      "new_id": "1441f959b0bb6f1510b4bc52d3ece667c525e376",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/ConvertToLLVM.cpp"
    },
    {
      "type": "modify",
      "old_id": "53e49efbf66a7feb395014d5ff999a3c396e3b70",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp",
      "new_id": "f8ebe1cc0069d854a1ed7bd4d0d10d53c78bc111",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "6c1c5e1170167a9cef287119985c4a92561af1c6",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/nvvm_extract_address_computation.mlir",
      "new_id": "ba6b5da7f1fab55ba29e5f31d747ab191b5fce64",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/nvvm_extract_address_computation.mlir"
    },
    {
      "type": "modify",
      "old_id": "ea0aa9f451160e7b491b7f1a6f26ad2cda703b33",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/SPIRV/Passes.cpp",
      "new_id": "511dbe785300fc0ed17124160fdf9ae45ce5ec6c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/SPIRV/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "d9d6a92ef71ca96918f8a3574da6e663e4484d3c",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/IR/BUILD.bazel",
      "new_id": "3f80245bfc8ccb7789b2cfa29fb801c5376094d2",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/IR/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "837855157e905eee1bcdf5d09102e4c979ef6d36",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/IR/CMakeLists.txt",
      "new_id": "846bcf0d38a28fec033b41883d747c41c7dbd51b",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/IR/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "7210d402598d5f9adc313b203d09d6d754b339fc",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp",
      "new_id": "cb5bb411810a28ac94b9f80596da6a57cdbba6ed",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.cpp"
    },
    {
      "type": "modify",
      "old_id": "16f1eadfdffd6217161da487a0af8ff871a873d4",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.td",
      "new_id": "d51e430b57c7eaf517ff79d61b58c7cdbecabe43",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/IR/HALOps.td"
    },
    {
      "type": "modify",
      "old_id": "9f3bee7d529a9b780eeb5b9888f019fa47f75222",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/MaterializeInterfaces.cpp",
      "new_id": "d830c078b4bbd9218c50ebfc170ccca513510345",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/MaterializeInterfaces.cpp"
    }
  ]
}
