)]}'
{
  "commit": "c85a426ab7035e0c86d4493e461a1bfbaf5c9b0c",
  "tree": "01799ff87c75e55306faf694671c65f72619c7ef",
  "parents": [
    "89397936163176c035d4f8eb6c8d33b7ceb9f360"
  ],
  "author": {
    "name": "MaheshRavishankar",
    "email": "1663364+MaheshRavishankar@users.noreply.github.com",
    "time": "Thu Feb 04 17:31:42 2021 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Feb 04 17:31:42 2021 -0800"
  },
  "message": "Enable lowering of Linalg on tensors on GPU. (#4688)\n\no enable the linalg on tensors path on GPU several changes are needed\r\n\r\nThe Bufferization pass is modified to not require allocation in\r\nsome trivial cases. This gets the basic plumbing verified, but\r\nthere are issues with handling allocations that are dynamic on the\r\nSPIR-V side. A more general solution is required here.\r\nThe use of View instructions is dropped since ViewOp cannot be\r\nlowered to SPIR-V.\r\nAll bufferization related passes are moved into\r\niree/compiler/Conversion/Common to use on both SPIR-V and LLVM side.\r\nConvertToSPIRV pass updated to handle the new hal.interface operations\r\nthat are used on the linalg on tensors path.\r\nThe LinalgTileAndFusePass is updated to operate on\r\nIREE::HAL::ExecutableTargetOp. This allows this pass to initialize\r\nthe region that computes number of workgroups in the\r\nIREE::HAL::EntryPointOp. This also requires the pipeline that lowers\r\nto SPIR-V to use the IREE::HAL::ExecutableTargetOp directly.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "98d4647e786e5f2bdee26ccf5f3f7acc79db7177",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/Common/BUILD",
      "new_id": "cd919c8d0b3d43d9b15f160ef41d7ad894f46bc3",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/Common/BUILD"
    },
    {
      "type": "modify",
      "old_id": "02015387f214117515d04b35a4262d8b2ca5c314",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/Common/CMakeLists.txt",
      "new_id": "23f6a30326158b4469eb42d3974378f7c47904cc",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/Common/CMakeLists.txt"
    },
    {
      "type": "rename",
      "old_id": "d434a66ec7469a49f32323198f078e73658d7b39",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/LinalgBufferizePass.cpp",
      "new_id": "426c111a8c55c9c0e5b13c2ccdf7ebe0d9f48560",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/Common/LinalgBufferizePass.cpp",
      "score": 70
    },
    {
      "type": "rename",
      "old_id": "db8f97b6d5ade61f27e341aea4e7b61cc1870f27",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/LinalgRewriteDestructiveUpdatesPass.cpp",
      "new_id": "db8f97b6d5ade61f27e341aea4e7b61cc1870f27",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/Common/LinalgRewriteDestructiveUpdatesPass.cpp",
      "score": 100
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3856f7dc71b3e633394866b3794804446027a179",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/Common/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "fa8132e368dbe05900f407baba6cc8c21ee54c82",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/Common/Passes.h",
      "new_id": "4cbdd19c1c0c45b1ab506392a3e43bda4f637911",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/Common/Passes.h"
    },
    {
      "type": "modify",
      "old_id": "cfbd280dd9a4a93d3b17b41c467d6be32e3bcc15",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/Common/Transforms.cpp",
      "new_id": "3c2bf65034be51dc83d4ab9f5152bf20113af858",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/Common/Transforms.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bfb770e651daf3b852706d1ea3052d7e993bf831",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/Common/test/linalg_bufferize.mlir"
    },
    {
      "type": "rename",
      "old_id": "d4fb97cf3279764a5785ff980d9c1e352be156ca",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/test/linalg_rewrite_destructive_updates.mlir",
      "new_id": "d4fb97cf3279764a5785ff980d9c1e352be156ca",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/Common/test/linalg_rewrite_destructive_updates.mlir",
      "score": 100
    },
    {
      "type": "modify",
      "old_id": "8298352c46d1cb14d4d5835eaa43bf1c040e09e9",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/BUILD",
      "new_id": "7a7143b38eb29bff4e704eac2f0bf40e65c5d231",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToLLVM/BUILD"
    },
    {
      "type": "modify",
      "old_id": "5420c31f875e7a388539f29985d40596a17c1e5b",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/CMakeLists.txt",
      "new_id": "60a1453568f60110825c11777aa962991b7f9efa",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToLLVM/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "fa491966a26fde121bf3282cc86d935114ec091f",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/ConvertToLLVM.cpp",
      "new_id": "6d0a605e1c4eb16bd7bd16d4d8e887b01cb3240a",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToLLVM/ConvertToLLVM.cpp"
    },
    {
      "type": "modify",
      "old_id": "307e8bcddbb1c42a5645c9ba79c857ac1f444508",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/LinalgTileAndDistributePass.cpp",
      "new_id": "4aca02cb29293ac53a06b178df5e979972e0218f",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToLLVM/LinalgTileAndDistributePass.cpp"
    },
    {
      "type": "modify",
      "old_id": "5a03a919a705f880dc2e0d45cf71bd8102dcef49",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/Passes.cpp",
      "new_id": "55d9113d8a3c118a741bfcbc0b862973df90ed92",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToLLVM/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "053d84c4cba4d0f8a9f09b0d20fc5233d54584ea",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/Passes.h",
      "new_id": "b2a3095b8b90beb43df690f65d78ecb5840b9d79",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToLLVM/Passes.h"
    },
    {
      "type": "delete",
      "old_id": "2c0634466c6e969a9350fd5c7763b6235c556a48",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/test/linalg_bufferize.mlir",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "48e8f9131461eae9bf4e1bdd451f17c4936af7f5",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/ConvertToSPIRVPass.cpp",
      "new_id": "11e3941f1a7c9623677c64d8df9bea17fec2c154",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/ConvertToSPIRVPass.cpp"
    },
    {
      "type": "modify",
      "old_id": "fa7079c232d25b881e6a674e3602d5af89bc64fe",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/KernelDispatchUtils.cpp",
      "new_id": "a1144ff9fcf947aaf4fce220613ae6b5e84767c9",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/KernelDispatchUtils.cpp"
    },
    {
      "type": "modify",
      "old_id": "aaf152c734b40874b75802a067b17fc4a097cac7",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/LinalgTileAndFusePass.cpp",
      "new_id": "91c133199b24119b4c1228207e5712ace2dc7795",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/LinalgTileAndFusePass.cpp"
    },
    {
      "type": "modify",
      "old_id": "e461709d2bb8ebdccb053b649bba9cbfb40cb3ed",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/MaterializeEntryPointsPass.cpp",
      "new_id": "85b2e6ce38e647ccc349126478df23d04571797e",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/MaterializeEntryPointsPass.cpp"
    },
    {
      "type": "modify",
      "old_id": "785d47ac9b61038052e12c3c4b8ab68e145e87bb",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/Passes.cpp",
      "new_id": "101725024afa8bbbf68b175ba4aacef85258a482",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "97c23b8ac3a140d5656526a3a58329ab7243fd8b",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/Passes.h",
      "new_id": "44eaa76e795d661e12223b7f3593875bdc697b81",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/Passes.h"
    },
    {
      "type": "modify",
      "old_id": "f2047aa5caa75bdcbacef187cecd6ca5c9f94530",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/batch_matmul_vectorization.mlir",
      "new_id": "c15dfbfcfe72e1fc5d1a1011c95d26e072ea2664",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/batch_matmul_vectorization.mlir"
    },
    {
      "type": "modify",
      "old_id": "ea292d3d28a7a6d1657d40697413c3d348daa04e",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/convert_to_spirv.mlir",
      "new_id": "506029a674b9ed4b950660c0d5961ba8c754d50c",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/convert_to_spirv.mlir"
    },
    {
      "type": "modify",
      "old_id": "da6d7717f291f036714fd6c9b6bcabea15c8742b",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/linalg_tile_and_fuse.mlir",
      "new_id": "49e26618c50e43412a358c001d5ba10d305f3e21",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/linalg_tile_and_fuse.mlir"
    },
    {
      "type": "modify",
      "old_id": "85b61c80055a70dd13f3b8d38a4fea8086e9abec",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/matmul_fused_vectorization.mlir",
      "new_id": "870461f94cb926eb70539f2a4cbc334569e7a962",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/matmul_fused_vectorization.mlir"
    },
    {
      "type": "modify",
      "old_id": "fea37cd621542e3222055aec70e83feb076c5bbc",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/matmul_vectorization.mlir",
      "new_id": "7f30860ee9d1bc24f356a11d7823b025affea9b4",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/matmul_vectorization.mlir"
    },
    {
      "type": "modify",
      "old_id": "80134942ed275075290985df7aa09f427077cf47",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/pipeline_test.mlir",
      "new_id": "948027b7c6f0fd77a0cc98c3d1a8d4d2cfaab599",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/pipeline_test.mlir"
    },
    {
      "type": "modify",
      "old_id": "27446ad56326ff77cf53bda7d1fcc9024dba4bc2",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/pipeline_test_cooperative_mat.mlir",
      "new_id": "3589eb876fd317a4f5fec9057f82306e50d7929c",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/pipeline_test_cooperative_mat.mlir"
    },
    {
      "type": "modify",
      "old_id": "d51e02446ac2c3b15c96bc8420d5c1c42d0034e7",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/workgroup_memory_promotion.mlir",
      "new_id": "3a0c412460332bb9e7093a4b0969d898d2ec2c6d",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/workgroup_memory_promotion.mlir"
    },
    {
      "type": "modify",
      "old_id": "3ea42d728272992cb5acf57195138d1a260a74a1",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/init_conversions.h",
      "new_id": "bcf49b11751db87a9e656698b8b69c74a020f247",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/init_conversions.h"
    },
    {
      "type": "modify",
      "old_id": "09ca578a0cbdb2832923a886b4dce7fd1c90a4a0",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/IR/BUILD",
      "new_id": "d759f0e3ea2e4426e413ad973b1865d3ef3a09f1",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/IR/BUILD"
    },
    {
      "type": "modify",
      "old_id": "2202d6ccd5775a22f493a4b74cc87e8c2f19c502",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/IR/CMakeLists.txt",
      "new_id": "2ae1a0c6139cec70dfc03100a8204485464f323c",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/IR/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "53ed929e0093cce232c0d1358182c4be50f179cf",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/IR/HALOps.cpp",
      "new_id": "e7a2a7ea3a5ac934ce89cf60aaca2759f4597363",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/IR/HALOps.cpp"
    },
    {
      "type": "modify",
      "old_id": "5d09c9152975dad5827941182ba1498a77c50d0d",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/Target/SPIRVCommon/SPIRVTarget.cpp",
      "new_id": "44714df9c96a175c68f5705d99f9b5c4a1a829e3",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Target/SPIRVCommon/SPIRVTarget.cpp"
    },
    {
      "type": "modify",
      "old_id": "3fe708d0bee6957ab9eee58cace6384218469a77",
      "old_mode": 33188,
      "old_path": "iree/test/e2e/linalg_tensor_ops/BUILD",
      "new_id": "2f8e0666acfe05120a9994a67acf15367bcc2ba5",
      "new_mode": 33188,
      "new_path": "iree/test/e2e/linalg_tensor_ops/BUILD"
    },
    {
      "type": "modify",
      "old_id": "2c3b5f09a60b75fe622595f3499252dca3f56e89",
      "old_mode": 33188,
      "old_path": "iree/test/e2e/linalg_tensor_ops/CMakeLists.txt",
      "new_id": "d21fa12143b8df62df7c44cc5df2351f7c31b4c7",
      "new_mode": 33188,
      "new_path": "iree/test/e2e/linalg_tensor_ops/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "19b3b10b2ef0cf221b16ffa261ff19f433e358dc",
      "old_mode": 33188,
      "old_path": "iree/test/e2e/linalg_tensor_ops/add.mlir",
      "new_id": "4d6ad5bc56c167be166e8c2ba3ec87bf49129c64",
      "new_mode": 33188,
      "new_path": "iree/test/e2e/linalg_tensor_ops/add.mlir"
    },
    {
      "type": "modify",
      "old_id": "cecd0bdb486079c6eef08b6f5ede598ba3242789",
      "old_mode": 33188,
      "old_path": "iree/test/e2e/linalg_tensor_ops/matmul.mlir",
      "new_id": "eceac5cca08db716ee4b7a66c9fc7837544c16b1",
      "new_mode": 33188,
      "new_path": "iree/test/e2e/linalg_tensor_ops/matmul.mlir"
    },
    {
      "type": "modify",
      "old_id": "fa93f367637eda06758fa0f4528e01aeb42b3d63",
      "old_mode": 33188,
      "old_path": "iree/test/e2e/regression/BUILD",
      "new_id": "8e23925ae6fd5a57f7f8b123bb89d5db53ff3620",
      "new_mode": 33188,
      "new_path": "iree/test/e2e/regression/BUILD"
    },
    {
      "type": "modify",
      "old_id": "09734e647cc18f637b1fb87348229ebd076da0bf",
      "old_mode": 33188,
      "old_path": "iree/test/e2e/regression/CMakeLists.txt",
      "new_id": "8f4a266494f45af20e8c27f051afc9e1ec7cf938",
      "new_mode": 33188,
      "new_path": "iree/test/e2e/regression/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "ed9a348ba41acaa1b64fe89574d6bb07cbaf4a9c",
      "old_mode": 33188,
      "old_path": "iree/tools/init_passes.h",
      "new_id": "021d2e58ffe4aaa12c64549321d6ed083c1acd40",
      "new_mode": 33188,
      "new_path": "iree/tools/init_passes.h"
    }
  ]
}
