)]}'
{
  "commit": "5feef4868aa2b4a088fa13c316b0e2a9f5924d01",
  "tree": "8f7589374a62e6d34f399e0d984dd78fbf3919a8",
  "parents": [
    "a25c12cdeedce472f5550cfe285dd1dbe956ae2f"
  ],
  "author": {
    "name": "bjacob",
    "email": "benoitjacob@google.com",
    "time": "Thu Oct 21 16:53:58 2021 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Oct 21 16:53:58 2021 -0400"
  },
  "message": "end-to-end matmul tests (#7347)\n\nend-to-end matmul tests, meaning: we generate input matrices, perform linalg.matmul\u0027s, check that the results are correct.\r\n\r\nIn an earlier attempt (PR #7154) the test was entirely generated code. That approach was abandoned because it potentially amounted to comparing the compiler\u0027s output with itself.\r\n\r\nThe new approach here is to have a custom C test runner that has its own C reference implementation of matmul and uses it to compare the output of the generated code, which it drives by means of replay-trace. So now each test is not just a .mlir source, but a (.mlir, .yaml) pair where the yaml file is a trace, determining the runtime values of the inputs of the code being tested. Both .mlir and .yaml files are co-generated by a Python script.\r\n\r\nA new CMake function iree_trace_runner_test is added. It is a variant of iree_check_test, taking a custom trace runner and trace file, instead of iree_check_test\u0027s behavior of just running the module in iree-check-module.\r\n\r\nA new CMake function iree_generated_trace_runner_test is added to call the Python script to co-generate the .yaml and the .mlirsource and call iree_trace_runner_test on the resulting files.\r\n\r\nOne aspect of PR #7154 is retained here: all the above-mentioned CMake functions are generalized also to allow running iree-opt (or an alternate tool) as a pre-processing step on the source .mlir file, before running iree-translate. That is because by default, new MLIR transformations are not necessarily known to iree-translate. In our case, that\u0027s the mmt4d-related transformations.\r\n\r\nThe tests added in this PR share the prefix e2e_matmul (that can be used with ctest -R).\r\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "231833c809bc2ec4b673fc2e5afa6a9063be2346",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "36b05b62d3035ca583980443fd1e18799877943f",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "04d3afe8e86c55907102e2dd5bff7b692e260cfb",
      "old_mode": 33188,
      "old_path": "build_tools/bazel/iree_check_test.bzl",
      "new_id": "92d382c96791890f5d47e6faa6432ec072d2c7a6",
      "new_mode": 33188,
      "new_path": "build_tools/bazel/iree_check_test.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4c2b50a20b5158d0ee0ca2af78fa4c4bcd8ba4b3",
      "new_mode": 33188,
      "new_path": "build_tools/bazel/iree_trace_runner_test.bzl"
    },
    {
      "type": "modify",
      "old_id": "7c1611d261004554623e941044d4351c60cf4545",
      "old_mode": 33188,
      "old_path": "build_tools/bazel_to_cmake/bazel_to_cmake_converter.py",
      "new_id": "9abd6414b9ed216faefafc07ab9b38e21a0da637",
      "new_mode": 33188,
      "new_path": "build_tools/bazel_to_cmake/bazel_to_cmake_converter.py"
    },
    {
      "type": "modify",
      "old_id": "a63495bb308c34b97f31f6ca20fe9f913807b6d7",
      "old_mode": 33188,
      "old_path": "build_tools/cmake/iree_bytecode_module.cmake",
      "new_id": "6d05eb7c155ce0eb45cf93392a7d3003bb683389",
      "new_mode": 33188,
      "new_path": "build_tools/cmake/iree_bytecode_module.cmake"
    },
    {
      "type": "modify",
      "old_id": "32cf435b3bd970189f1d2e19e9640869a0191005",
      "old_mode": 33188,
      "old_path": "build_tools/cmake/iree_check_test.cmake",
      "new_id": "9b3a79ee12a655c17b1026bb9da764eea06cfada",
      "new_mode": 33188,
      "new_path": "build_tools/cmake/iree_check_test.cmake"
    },
    {
      "type": "modify",
      "old_id": "8db938c148085fdbeea816d100ea06ccc79f4411",
      "old_mode": 33188,
      "old_path": "build_tools/cmake/iree_run_binary_test.cmake",
      "new_id": "5129c393bd179e0e1a4bc9e7d55ae7570b6a476c",
      "new_mode": 33188,
      "new_path": "build_tools/cmake/iree_run_binary_test.cmake"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2e346450985903804d62d45667eaab1a3a03d7ed",
      "new_mode": 33188,
      "new_path": "build_tools/cmake/iree_trace_runner_test.cmake"
    },
    {
      "type": "modify",
      "old_id": "201a95f8c4a354d97c26fd4f3e55b905b64cfa96",
      "old_mode": 33261,
      "old_path": "build_tools/cmake/run_android_test.sh",
      "new_id": "caf0b347926468b26b0e6e39219f65734b4b650d",
      "new_mode": 33261,
      "new_path": "build_tools/cmake/run_android_test.sh"
    },
    {
      "type": "modify",
      "old_id": "872d0b44af78c46f26c0ad75211e4357bac63112",
      "old_mode": 33188,
      "old_path": "iree/test/e2e/regression/BUILD",
      "new_id": "77e48c3a3cda9310d1b0b233aac1bdb70f3e95a2",
      "new_mode": 33188,
      "new_path": "iree/test/e2e/regression/BUILD"
    },
    {
      "type": "modify",
      "old_id": "cb1ea0b5ad79cb19cdda38cb663dd8b3400f13d0",
      "old_mode": 33188,
      "old_path": "iree/test/e2e/regression/CMakeLists.txt",
      "new_id": "795a8747bb663b197b962f78ba46401dc116af9b",
      "new_mode": 33188,
      "new_path": "iree/test/e2e/regression/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "26aa509ed6ef5de9424478078167430f3af11768",
      "new_mode": 33188,
      "new_path": "iree/test/e2e/regression/generate_e2e_matmul_tests.py"
    },
    {
      "type": "modify",
      "old_id": "fc29931b8032bc2cf9e89911f7b2a20d7f9d573a",
      "old_mode": 33188,
      "old_path": "iree/tools/CMakeLists.txt",
      "new_id": "605027780d81b716af8ebe3760fa62a7078d5300",
      "new_mode": 33188,
      "new_path": "iree/tools/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "a75a5a638a0e58de139a62b48e24f53ae0888976",
      "old_mode": 33188,
      "old_path": "iree/tools/compilation.bzl",
      "new_id": "ae4fd035c519f6e0097bbe283450c0aad49e71d2",
      "new_mode": 33188,
      "new_path": "iree/tools/compilation.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a48fb8daee1145c83bb147902a95ad5e4fa94371",
      "new_mode": 33188,
      "new_path": "iree/tools/iree-e2e-matmul-test.c"
    },
    {
      "type": "modify",
      "old_id": "9e91d62cac7335bac38e79339fefc2c7289ca6ff",
      "old_mode": 33188,
      "old_path": "iree/tools/utils/trace_replay.c",
      "new_id": "4f01524c38e812dd8885901daf03de3851436047",
      "new_mode": 33188,
      "new_path": "iree/tools/utils/trace_replay.c"
    }
  ]
}
