)]}'
{
  "commit": "245bb9f002582da90d548aeb9dce5c8ae3cdc768",
  "tree": "1348665119c618c47b6be0bf2c5df88584646094",
  "parents": [
    "acd357ff1898411a11c62f2606410b0df4975cfe"
  ],
  "author": {
    "name": "MaheshRavishankar",
    "email": "1663364+MaheshRavishankar@users.noreply.github.com",
    "time": "Thu Apr 22 11:56:54 2021 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Apr 22 11:56:54 2021 -0700"
  },
  "message": "Rework LinalgBufferize pass. (#5539)\n\nThe bufferization pass on the linalg on tensors path was an arbitrary\r\nset of methods put in place to connect linalg on tensors to the post\r\ntile+distribute codegeneration on CPU and GPU. This PR cleans up the\r\nlogic to better handle the tensor -\u003e memref conversion.\r\nIn particular\r\n\r\nAdds an analysis step to figure out which tensors can be mapped to\r\nthe same memref object. This also provides information of what\r\ntensors are eventually mapped to the output of the dispatch\r\nregion. In such cases, the output is used to compute the values in\r\nplace reducing the need for copies and intermediate allocations.\r\nUse this analysis step to convert operations from tensors to memrefs.\r\nUse the readonly, readwrite and writeonly attributes to avoid\r\ncopies when possible.\r\nAll of this uses logic similar to the Tied operands/results approach\r\nthat the bufferization in the sandbox uses. Indeed this pass might\r\neventually subsumed by a bufferization pass in the sandbox and to be\r\nupstreamed. Till that happens, this rewrite gives something that\r\nis similar in spirit.\r\n\r\nFixes #4734\r\nFixes #5013",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5a3443398d94ced0142220920984f41e06deebdb",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/Common/LinalgBufferizePass.cpp",
      "new_id": "3919ccb6e95030c7737f62bf4d0d1b3f48fcd80c",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/Common/LinalgBufferizePass.cpp"
    },
    {
      "type": "modify",
      "old_id": "85fa7064894fdb386f2e64f71f3bdd61970035b5",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/Common/test/linalg_bufferize.mlir",
      "new_id": "d506e8b8e7022015014f7e87d6ad297cb1b4c4ed",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/Common/test/linalg_bufferize.mlir"
    }
  ]
}
