)]}'
{
  "commit": "62dcfbfb0c7bdcbcd0a0dced9d2733a6e66cf13c",
  "tree": "e58e9ac8b90db392c4ccbee18a629507065ba9fd",
  "parents": [
    "27e1bdf922a34f59d1a3eb4a35c882063a110ba1"
  ],
  "author": {
    "name": "MaheshRavishankar",
    "email": "1663364+MaheshRavishankar@users.noreply.github.com",
    "time": "Wed Sep 16 10:57:08 2020 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Sep 16 10:57:08 2020 -0700"
  },
  "message": "Enable use of vector.contract within IREE codegen. (#2986)\n\nThis change adds two-level tiling to target subgroups. This is only\r\nbeing done for matrix-matrix multiplies for now but could be extended\r\nfor other ops. Some associated changes. The 2-level tiled code is then\r\nvectorized to get vector.contract operations.\r\n\r\nThis also changes the way tile size are computed by using a\r\nLaunchConfig class. While this change introduces a default way of\r\ncomputing this, it could be extended for switching between many\r\nheuristics based on architecture, etc.\r\n\r\nSome refactoring of the code to make it easier to see the\r\n  first tile for workgroups -\u003e\r\n  Promote to use workgroup memory -\u003e\r\n  second level tiling for subgroups -\u003e\r\n  vectorization\r\nflow.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ea85ec213feaa229f2512bbb775eb8878f19ef45",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/KernelDispatchUtils.cpp",
      "new_id": "01b35f37d3ffef1a584529ddd56ce5dec9b219c7",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/KernelDispatchUtils.cpp"
    },
    {
      "type": "modify",
      "old_id": "1573c55853a41aa9fdc75b47a9e7df1eb74eb2ca",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/KernelDispatchUtils.h",
      "new_id": "d690a0a1fe45df15cad574c7775dcfc8d70468d4",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/KernelDispatchUtils.h"
    },
    {
      "type": "modify",
      "old_id": "4c7417e2ffc965a84069898d290c0ea293a138b6",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/LinalgTileAndFusePass.cpp",
      "new_id": "135961a94334fb6749eea1674a357462afef4e29",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/LinalgTileAndFusePass.cpp"
    },
    {
      "type": "modify",
      "old_id": "d82d79f1b31b03e0aae0170475fa21202101818f",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/Passes.cpp",
      "new_id": "04044a7fb067f0d8f17a16fad87a5706e71c2ccd",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "38483ca21a1ac27cb7f1ae2afde20e700b93de98",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/Passes.h",
      "new_id": "80805e23bbeda1b29faa69828220f91d3f6bf7c5",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/Passes.h"
    },
    {
      "type": "modify",
      "old_id": "47cc37d2424520f011cf92b7369c5b22bb8e15e0",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/Utils.cpp",
      "new_id": "2c14351cf3ff862a2852ef2f5aca11b8b70094e4",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/Utils.cpp"
    },
    {
      "type": "modify",
      "old_id": "934728d0678f8fc4087cb5bf0216ac401e9436ca",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/Utils.h",
      "new_id": "682583a4164762371d6bc620da8b19edd836a9e4",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/Utils.h"
    },
    {
      "type": "modify",
      "old_id": "e06eae522398771b50d008244e6aabed023ccccd",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/linalg_tile_and_fuse.mlir",
      "new_id": "f6604bfce9a69efaccc832d691bcf2b832047af5",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/linalg_tile_and_fuse.mlir"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8421f813d8c41c64499c304aaa31196fc0a5ac01",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/matmul_subgroup.mlir"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ddd25304b14e96bd648d70b0031ff6a6746e8756",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/pipeline_test.mlir"
    },
    {
      "type": "modify",
      "old_id": "9ff21ba5cbc109a7d2b1bd9be4f916d3c6ed7988",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/LinalgToSPIRV/test/workgroup_memory_promotion.mlir",
      "new_id": "5b1d44040c2d8d277d16838b8c5539a4e9e8f82d",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/LinalgToSPIRV/test/workgroup_memory_promotion.mlir"
    },
    {
      "type": "modify",
      "old_id": "a5c42e727b135aae571fefd367f6ec708844bb30",
      "old_mode": 33188,
      "old_path": "iree/compiler/Conversion/init_conversions.h",
      "new_id": "c06e2d8d96e4f6bacefac3b52750125e2b87773b",
      "new_mode": 33188,
      "new_path": "iree/compiler/Conversion/init_conversions.h"
    }
  ]
}
