)]}'
{
  "commit": "f5fe759e08217de7aa7ac7d5cc25f27acfcb3c3b",
  "tree": "c0f83d71418f8bd85432f247a821611b0e38d6cb",
  "parents": [
    "b89191c4c319c208d018dfb665416ff7a19fc60a"
  ],
  "author": {
    "name": "MaheshRavishankar",
    "email": "1663364+MaheshRavishankar@users.noreply.github.com",
    "time": "Tue Sep 15 00:55:36 2020 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Sep 15 00:55:36 2020 -0700"
  },
  "message": "Use generated function to compute number of workgroups to be launched. (#3095)\n\nThe current mechanism of deciding number of workgroups to use for the\r\nlaunch uses an enumeration of fixed strategies. This is not sufficient\r\nto cover all uses. This commit adds a new mechanism where the\r\ncodegeneration passes generate the function to use that when called\r\nfrom the host side will return the number of workgroups to use. The\r\narguments to the function are the shapes of the inputs and outputs to\r\nthe dispatch region.\r\nCurrently this is enabled only for static shapes, since there are some\r\nunresolved issues w.r.t to the dynamic shape case.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "adc2f53537bd426efdeb14b473f951831bd6d552",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/CodegenUtils/FunctionUtils.h",
      "new_id": "6a4c81ecd0f47ce2ba7a6cc074da7943a4dedd02",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/CodegenUtils/FunctionUtils.h"
    },
    {
      "type": "modify",
      "old_id": "0808d42aa6c87406f64c2d1f3e2b0a2a9e362a5b",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/HLOToLinalg/FusionOfTensorOps.cpp",
      "new_id": "ebf96aa8b4d9a2eec844be8f75c763f4c0522c0c",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/HLOToLinalg/FusionOfTensorOps.cpp"
    },
    {
      "type": "modify",
      "old_id": "70a407ff2054f8d5552ca69098781112f4728bc2",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/HLOToLinalg/HLOToLinalgOnBuffers.cpp",
      "new_id": "87ed137bb9bb22ffa187044c56e0b5077f51817f",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/HLOToLinalg/HLOToLinalgOnBuffers.cpp"
    },
    {
      "type": "modify",
      "old_id": "a82179b857dcd1c3d260a6684a4d4d6efe19c4dc",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/HLOToLinalg/test/fusion.mlir",
      "new_id": "bb090b8b062b200646f708243be4fe512dfc51a4",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/HLOToLinalg/test/fusion.mlir"
    },
    {
      "type": "modify",
      "old_id": "2bab77af3ac6c6030cf3403aea2727d4824962a5",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/HLOToLinalg/test/linalg_tensor_to_buffer.mlir",
      "new_id": "93638153381ab4057d72fb3feffb68bd8b282bcb",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/HLOToLinalg/test/linalg_tensor_to_buffer.mlir"
    },
    {
      "type": "modify",
      "old_id": "c5b558b638fbb1338195b2fbd8514c19648c59da",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/HLOToLinalg/test/pipeline_test.mlir",
      "new_id": "90c47495e5a460579417763088b1c997089b10c6",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/HLOToLinalg/test/pipeline_test.mlir"
    },
    {
      "type": "modify",
      "old_id": "300c0ffc7903bd7a8642b650a5e48b8dec1c0f88",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/HLOToLinalg/test/slice.mlir",
      "new_id": "0c173112e517f50cb1b9272ce88c508fb200e53f",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/HLOToLinalg/test/slice.mlir"
    },
    {
      "type": "modify",
      "old_id": "7d47f476cf6bb10338619eebf52612929571fd48",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToLLVM/test/matmul_vectorization.mlir",
      "new_id": "123a1e094736ff0827a07341e56c826c90de11e7",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToLLVM/test/matmul_vectorization.mlir"
    },
    {
      "type": "modify",
      "old_id": "e801c90a3a0d1f8c8ac39e8d7871f975ddeece7d",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/Attributes.h",
      "new_id": "84d6393870f991cbc9ed7c8c7192077d2a0b0796",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/Attributes.h"
    },
    {
      "type": "modify",
      "old_id": "6a307139c8c6ecacd7b5124da85a863fe56b0b7a",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/BUILD",
      "new_id": "dd6717a913926828f1065efc06e179d7785ad70b",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/BUILD"
    },
    {
      "type": "modify",
      "old_id": "8e34e87ecae3150ee7c6957c246838e85f448337",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/CMakeLists.txt",
      "new_id": "ce9a6cb7f9c8f2295c187d052f6f428532a3c409",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "38794f409c39a83d78a23211b90ab91efe7c2fb3",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/ConvertToGPUPass.cpp",
      "new_id": "7f821885413fda993de6c17898bb490a4bdd553c",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/ConvertToGPUPass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3bd80740fa67b32a997bebf1aa0f513a8418c521",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/DeclareNumWorkgroupsFnPass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ea85ec213feaa229f2512bbb775eb8878f19ef45",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/KernelDispatchUtils.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1573c55853a41aa9fdc75b47a9e7df1eb74eb2ca",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/KernelDispatchUtils.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1d832c16ecdd57c8646ce127ce4f3119fd825f40",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/LegalizeNumWorkgroupsFnPass.cpp"
    },
    {
      "type": "modify",
      "old_id": "71f550f738a713c5e24de0ea2bb4a032a79d26db",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/LinalgTileAndFusePass.cpp",
      "new_id": "4c7417e2ffc965a84069898d290c0ea293a138b6",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/LinalgTileAndFusePass.cpp"
    },
    {
      "type": "modify",
      "old_id": "5c1b6725bac00c1b66e12c490ec85fbd7894c669",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/Passes.cpp",
      "new_id": "cc90ccc8848e1b3545b2da9766828f6196b93ef6",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "72872f5dee731d37c9b8379657bba82e1c9392e9",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/Passes.h",
      "new_id": "6e07cb0dbe759f5f28a57bc4d8cffe28c9477256",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/Passes.h"
    },
    {
      "type": "modify",
      "old_id": "9a98f6f86156d54254656c05e1605c9935eb77a6",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/SplitDispatchFunctionPass.cpp",
      "new_id": "94436c6598bdb65f4cc0ddd793d7f79a820d4ccc",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/SplitDispatchFunctionPass.cpp"
    },
    {
      "type": "modify",
      "old_id": "51b088b6af229584079385b435b04c53baa18f8d",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/convert_to_gpu.mlir",
      "new_id": "daa92e2b19b60de2fbf954fb45122e3f1247a69c",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/convert_to_gpu.mlir"
    },
    {
      "type": "modify",
      "old_id": "33cfde809b29bc83970c644436b2951531bcbc75",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/linalg_tile_and_fuse.mlir",
      "new_id": "e06eae522398771b50d008244e6aabed023ccccd",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/linalg_tile_and_fuse.mlir"
    },
    {
      "type": "modify",
      "old_id": "63ba65f9cdb2ccc3bca5a2289d92bea51d156999",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/matmul_vectorization.mlir",
      "new_id": "c642f62b7eb69d3645bd7df628c856c5f42bd76c",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/matmul_vectorization.mlir"
    },
    {
      "type": "modify",
      "old_id": "dbffa8727a4208ca0930a47006483aa8c6b867fd",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/split_dispatch_function.mlir",
      "new_id": "c115b4a6e26bfb7132efbad3cc87148003fd2f5a",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/split_dispatch_function.mlir"
    },
    {
      "type": "modify",
      "old_id": "fbbb4839b22e670a6ef817c91561afdb8f1f8ea1",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/workgroup_memory_promotion.mlir",
      "new_id": "9ff21ba5cbc109a7d2b1bd9be4f916d3c6ed7988",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/workgroup_memory_promotion.mlir"
    },
    {
      "type": "modify",
      "old_id": "18006a767d1060985e9f8220f074c616529dc52b",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/Target/VulkanSPIRV/BUILD",
      "new_id": "97f066272b773220249800fceca1a2a0176d45ea",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Target/VulkanSPIRV/BUILD"
    },
    {
      "type": "modify",
      "old_id": "05d27105a5ef58de5562a4610a76465e7362dbd9",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/Target/VulkanSPIRV/CMakeLists.txt",
      "new_id": "fdc991161b22f3f11b8c9ada516a404879034d75",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Target/VulkanSPIRV/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "6851ec20b9394dd91306d6f4f48d29028e2b19e4",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/Target/VulkanSPIRV/VulkanSPIRVTarget.cpp",
      "new_id": "f18c2b82e3964142315263967e2b06e19923bd0e",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Target/VulkanSPIRV/VulkanSPIRVTarget.cpp"
    }
  ]
}
