)]}'
{
  "commit": "d76d857819802686959fe014c940588fbe711f80",
  "tree": "5acb939634abfd4fe4160cfdb905e1b809e9b7b4",
  "parents": [
    "be41632fdca0ba6102d48a8cf7108fca67297056"
  ],
  "author": {
    "name": "Quinn Dawkins",
    "email": "quinn.dawkins@gmail.com",
    "time": "Fri Nov 08 08:53:49 2024 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Nov 08 13:53:49 2024 +0000"
  },
  "message": "[Codegen] Add pass to further tile large linalg ops (#19010)\n\nIn certain cases/configurations we can end up with excessively large\r\nstatic `linalg.generic` ops that will then vectorize and emit code with\r\nhuge vector sizes. This at a minimum will yield terrible code, and can\r\neven crash/hang LLVM when trying to compile such an enormous function.\r\n\r\nThe implementation here only looks at parallel dims and linalg ops.\r\nLarge reductions and other vectorizable ops will likely need handling as\r\nwell, but \"vectorizability\" isn\u0027t really queryable today.\r\n\r\nThe pass has an options for a maximum vector size to tile to, but the\r\nlogic here could potentially use some future improvement (e.g. maybe\r\nexpose a target vector size too to use when we choose to tile).\r\n\r\nAlso note that in many cases where we hit this is likely to generate\r\npoor code because we can often end up with large local/stack\r\nallocations, but by the time we get to this point there isn\u0027t much else\r\nwe can do. Better to ask for an allocation than 10k lines of unrolled\r\nIR.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d6cc75d9cefa9544136af23daa24dd430b0a4157",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/BUILD.bazel",
      "new_id": "4a6afa18252cffbeda88fab54d0f4fbb2d3873c3",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "8f729de2f7142e46c2ef64b7e0fd11cfa7787ea4",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/CMakeLists.txt",
      "new_id": "eb56df21c8e064cd8c4b947b738674da68a98323",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "bb0676f4887e7b15745d08ff094e46f7a2ba6727",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/Passes.td",
      "new_id": "b86faabdfd05821b8530febd7488db69e90e9a71",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/Passes.td"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d181922edbff699af9a928e9aff431f7590ee081",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/TileLargeTensors.cpp"
    },
    {
      "type": "modify",
      "old_id": "ab1a76ab2fc8f631adb18c9c32c1c028618564ec",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/test/BUILD.bazel",
      "new_id": "403975b201745cdd4971a70105085cabfbd9d992",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "3ac6423c08c0f6b6deee4b418a34544c5074da74",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/test/CMakeLists.txt",
      "new_id": "2156340f2a873b7fa06bc4cd47321e0710864752",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "66c73da981c0b2533fa35f248480519e65374981",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/test/tile_large_tensors.mlir"
    },
    {
      "type": "modify",
      "old_id": "f4bf8efd779bb1aaa74c21e2dab94999dfaa2c24",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp",
      "new_id": "d13a5a43cf99053d12e0b3a0e9430d33d26a0db6",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "e2d61a3cea4a7891fe2d3da11d575b9f08eb6f09",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/ROCDL/pipeline_tile_and_fuse.mlir",
      "new_id": "9410f15b49659e1bb06f96b4c54f3161b478c3ab",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/ROCDL/pipeline_tile_and_fuse.mlir"
    }
  ]
}
