)]}'
{
  "commit": "3206e20037c4d9a6ff86678351fea80ac00048ea",
  "tree": "c2f353ef7abdefef6a960f1bd501061e9826a957",
  "parents": [
    "e83ce9e225eefd9245cd38d37d843a915fbaa034"
  ],
  "author": {
    "name": "harsh-nod",
    "email": "harsh@nod-labs.com",
    "time": "Wed Feb 14 13:21:04 2024 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Feb 14 13:21:04 2024 -0800"
  },
  "message": "Add AMDGPU pattern for chained matmuls (#16398)\n\nThis PR adds a pattern for chained matmuls operators like Flash\r\nAttention where by swapping the operands of the sequential matmuls, one\r\ncan keep the data in registers and avoid a trip to shared memory and/or\r\nadditional shuffle instructions.\r\n\r\nThe pattern swaps the operands of the contract op, and inserts\r\ntransposes for the accumulator and result, if the contracts are chained\r\nand satisfy the MMT\r\nindexing maps.",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bfa778d178b30612eabd6c84252d9f86d7e14525",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/AMDGPUChainedMatmulPass.cpp"
    },
    {
      "type": "modify",
      "old_id": "ff7304c9771af4af60c1a30c2801c26b92eef1c9",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/BUILD.bazel",
      "new_id": "b34125b91aac0fbbbed484f522684de7978ba44c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "783b9405362d2a13d06c74cd7fa983ec790b3898",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/CMakeLists.txt",
      "new_id": "58f884e4e9321a1c04df0ec8a9383ec41ba9dea6",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "a12bc99339b4a253b8ce6f96a058cab9470d9dd2",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.h",
      "new_id": "40dce21771d0b6219bcfba65ee91b960c9890ac5",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.h"
    },
    {
      "type": "modify",
      "old_id": "c96271bb331561914007f95e56400d0847200ffd",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.td",
      "new_id": "2b3dc7cf4362666ab0ea34dbc8efb714ba2dbaae",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.td"
    },
    {
      "type": "modify",
      "old_id": "77ec9c31504e8f1e574c3b2b6d81c47909173010",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/BUILD.bazel",
      "new_id": "69b56cb70f005086f2119acfbbfccda13a1fcef1",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "9d7e59b84555803797465285cb631ad10bfcee24",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/CMakeLists.txt",
      "new_id": "c6e911346d5c90431ddf18e85c73a2f49ecdf766",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3735cf26fe8ab36a017d99c6136182d1d0f52f4b",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/amdgpu_chained_matmul.mlir"
    }
  ]
}
