)]}'
{
  "commit": "36dd21f0651fcdae4a82f352561d70896316425f",
  "tree": "33231d5a94fc1ae9099ce990d8cb0cdb733a940b",
  "parents": [
    "bd01143280d80483b7c942081634ff51e2a4e63c"
  ],
  "author": {
    "name": "MaheshRavishankar",
    "email": "1663364+MaheshRavishankar@users.noreply.github.com",
    "time": "Wed Feb 08 19:33:46 2023 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Feb 09 03:33:46 2023 +0000"
  },
  "message": "Redo handling of operand reuse to prevent stack allocation. (#12041)\n\nFor dispatches with\r\n\r\n```\r\n%r \u003d \u003csome compute op\u003e\r\n%store \u003d linalg.generic ... ins(%r, ...) outs(%empty :)\r\n```\r\nwhere the value of `%store` is the final result of the dispatch, to avoid creation of stacks for `%r` when vectorization does not kick in, the user is converted to\r\n\r\n```\r\n%store \u003d linalg.generic ... ins(, ...) outs(%r :)\r\n```\r\nThis is a very specific change to work around something that really should be handled later on during bufferization (but is outside scope of bufferization today). This change needs to kick in very specific conditions (since its a work-around, and really the created linalg.generic is somewhat of an anti-pattern), using a pattern rewrite to make this change does not allow controlling the transformation. Change this to use a walk and trigger only when needed.\r\n\r\nFixes #12019.\r\n\r\nFixes https://github.com/iree-org/iree/issues/12019",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1a581f21187b4c0eaa154d05349b7ec2d6113140",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/BufferizationAnalysis.cpp",
      "new_id": "b0dacc6a279c9e2a0e93c1c6474212649049e857",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/BufferizationAnalysis.cpp"
    },
    {
      "type": "modify",
      "old_id": "aa936bf70ebefd9a6740780ff81974cd121f8e0f",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/BufferizationAnalysis.h",
      "new_id": "af67cdf8d316e40315339a2558c6ad689a9bcb45",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/BufferizationAnalysis.h"
    },
    {
      "type": "modify",
      "old_id": "06630f8d73caceef678265b2b0bbc9979aeeb160",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/ConvertToDestinationPassingStylePass.cpp",
      "new_id": "6e73a5bd12194c315d3b7930876263d877224e3b",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/ConvertToDestinationPassingStylePass.cpp"
    },
    {
      "type": "modify",
      "old_id": "27d59fbb5cfac61dbd2b2187bc9ae22518039f1e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/Common/test/convert_to_destination_passing_style.mlir",
      "new_id": "af461331cab0e5c7304336708fa8deb0351098b2",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/Common/test/convert_to_destination_passing_style.mlir"
    },
    {
      "type": "modify",
      "old_id": "c2903e2b2dc60f19563d623b71f8cc71b3d15f4a",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.cpp",
      "new_id": "5c12f9d2001493fc1d32bf642cc652fd98c28745",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMCPU/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "9e5efa64af2d93fb0f98e746f865b627c2b97f19",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp",
      "new_id": "f04a064708bc8730ed983ca1a87796f66f3588a7",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/Passes.cpp"
    }
  ]
}
