)]}'
{
  "commit": "e6425d6b193843e560ed9f3f669d3e3476d590bd",
  "tree": "40c0ba28b03509f9b0374215f0404424b100d813",
  "parents": [
    "84b4802c5e505c1a1991aa4893a4bb6be6fae043"
  ],
  "author": {
    "name": "Ben Vanik",
    "email": "ben.vanik@gmail.com",
    "time": "Mon Mar 06 10:25:47 2023 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Mar 06 10:25:47 2023 -0800"
  },
  "message": "Starting support for HAL dispatch specialization. (#12483)\n\nThis allows `stream.cmd.dispatch` ops to specify multiple entry points\r\nin executables that can be dispatched. During interface materialization\r\nthe entry points are expanded for all materialized variants. HAL\r\nbackends are also able to add their own entry points either in existing\r\nvariants or new ones during translation (no helpers yet, but it\u0027s\r\npossible). When lowering the `stream.cmd.dispatch` into\r\n`hal.command_buffer.dispatch` each export now chooses the condition for\r\nwhich it should be selected.\r\n\r\nThis initial work just prepares the op for this conditional dispatch and\r\nalso solves an issue with compiler reentrancy where between interface\r\nmaterialization and HAL conversion we had IR that would not verify\r\n(stream ops still referencing un-materialized exports). Only the\r\nexisting target variant matcher condition is supported but we now have\r\nthe place where we\u0027d call out to HAL backend-produced logic for\r\nselection (`getExportConditionAttr`).\r\n\r\nThe `inline-dynamic` HAL model can support this too but for now that\u0027s\r\ndeferred until we add the backend support - the `hal.device.switch` op\r\nneeds a reworking to be used in that context.\r\n\r\nFixes #12476.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "632b0e275da894b1a9798f2124f5a18d08be5c66",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/Analysis/BindingLayout.cpp",
      "new_id": "88393be31af2d5fc974429fa65d797beb5215f65",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/Analysis/BindingLayout.cpp"
    },
    {
      "type": "modify",
      "old_id": "76f827a13806f2e26665999b1c6402ec1a6f2c5b",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/Conversion/StreamToHAL/Patterns.cpp",
      "new_id": "b7852208b2bd7a9cb5442db3707a4905a7cea467",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/Conversion/StreamToHAL/Patterns.cpp"
    },
    {
      "type": "modify",
      "old_id": "ec2686029d608258dd3dc4fefe7247561ebbf38e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/Conversion/StreamToHAL/test/cmd_ops.mlir",
      "new_id": "5d09a2171423de7679c046ddea8ee25eeabc49e1",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/Conversion/StreamToHAL/test/cmd_ops.mlir"
    },
    {
      "type": "modify",
      "old_id": "440a6d48294ff41734a095dd1f9ebbde47501d19",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/DumpExecutableBenchmarks.cpp",
      "new_id": "2b26df259abe1246f87785c7818504dc46c7aa8e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/DumpExecutableBenchmarks.cpp"
    },
    {
      "type": "modify",
      "old_id": "5426cc9cb590362ea807ecb1013cbab5d7b1f5cd",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/MaterializeDispatchInstrumentation.cpp",
      "new_id": "764f9b268efc127b2bc26da6f0a03789dc0df9a2",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/MaterializeDispatchInstrumentation.cpp"
    },
    {
      "type": "modify",
      "old_id": "0e752d82177c433e2eb8106cc1c8eb836721eb05",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/MaterializeInterfaces.cpp",
      "new_id": "b07edc31885ad0786fdc6f3de1d68fad097a7526",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/MaterializeInterfaces.cpp"
    },
    {
      "type": "modify",
      "old_id": "4c5513fb2c5c20d5ccb3a9d39137fc720915eeed",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/test/convert_to_hal.mlir",
      "new_id": "2aca6c590a142bf8189a6c14393296f2acbc0e0e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/test/convert_to_hal.mlir"
    },
    {
      "type": "modify",
      "old_id": "d9c1a3eff5d39cd87fe7ddec68d7ba2b2da24e09",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/test/dump_executable_benchmarks.mlir",
      "new_id": "c13bb59272219a2c9a4e47137e78e04ff84cb2de",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/test/dump_executable_benchmarks.mlir"
    },
    {
      "type": "modify",
      "old_id": "e13bb60e44541d4ea3ac4055febdbcfde57e3b93",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/test/materialize_interfaces.mlir",
      "new_id": "fdc093a9f724c5ce805ab77a7e6ece13ee154d3c",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/HAL/Transforms/test/materialize_interfaces.mlir"
    },
    {
      "type": "modify",
      "old_id": "a14b474588d478394e4a1bd9a15335dc350ca405",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp",
      "new_id": "fb7208bbda3b6c969bffcee3b3678361d9b19f35",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp"
    },
    {
      "type": "modify",
      "old_id": "a93b9f1fd26d666224a594626d2ed8f78e9e06bc",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.td",
      "new_id": "91c541efb1e20835588acc9c9392afca9983cb3a",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.td"
    },
    {
      "type": "modify",
      "old_id": "b2ec0879d67deddfdae8419604c61d9a1a5d0740",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/IR/test/cmd_ops.mlir",
      "new_id": "11154dedcb6c5f74459bf7d1258674aa26b486b9",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/IR/test/cmd_ops.mlir"
    },
    {
      "type": "modify",
      "old_id": "3ab708f9edd08530cb0917acda72d195bfa6a439",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/AnnotateDispatchArguments.cpp",
      "new_id": "9de64fd97e1c72a8e5380f5544ebddfedd2e4a89",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/AnnotateDispatchArguments.cpp"
    },
    {
      "type": "modify",
      "old_id": "d3b31fc0c1d8053658dd7f262e55321dd66074ff",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/DumpStatistics.cpp",
      "new_id": "c9dedea5d7b22c3a5d7715d0ef01dc7ce67f81b3",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/DumpStatistics.cpp"
    },
    {
      "type": "modify",
      "old_id": "92d41cfe10172c8482ca4d9f16af38ab470955bd",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/FoldUniformOperands.cpp",
      "new_id": "a18a52c3a4c717d485c130adbb29b901c760c37e",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/FoldUniformOperands.cpp"
    },
    {
      "type": "modify",
      "old_id": "a56e653aa50674128d6b87c73077b27e7d4b7a62",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/FuseDispatchBindings.cpp",
      "new_id": "66530b36bd810824238b7472b9becf7985a46c8d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/FuseDispatchBindings.cpp"
    },
    {
      "type": "modify",
      "old_id": "9973082479c380f414f8c00bd13063880eb9cce6",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/PackDispatchOperands.cpp",
      "new_id": "7509ca41342a07b990821a70bafe183f12e605ad",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/PackDispatchOperands.cpp"
    },
    {
      "type": "modify",
      "old_id": "9782741dbe479416d29a982d52230ad566421179",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/ScheduleAllocation.cpp",
      "new_id": "7cc0ae1d2b74cb53b2e58f48a52474825aae4612",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/ScheduleAllocation.cpp"
    },
    {
      "type": "modify",
      "old_id": "071de0112de93d2a02cdc0cd2994d533a33db148",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/SpecializeDispatches.cpp",
      "new_id": "0b72cfacc3de6261a1e745171ef0afe31e84af27",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/SpecializeDispatches.cpp"
    },
    {
      "type": "modify",
      "old_id": "496c0518f1ea479f2fec9fd0d5b3ce27da42adde",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Modules/HAL/Inline/Transforms/InlineExecutables.cpp",
      "new_id": "fba157a9e75999ef077138c95a222b947ae07a28",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Modules/HAL/Inline/Transforms/InlineExecutables.cpp"
    },
    {
      "type": "modify",
      "old_id": "aa659b91c68acc9a10babcac03a70b4d39fb05ee",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Modules/HAL/Loader/Conversion/StreamToHALLoader/Patterns.cpp",
      "new_id": "4eece6d6e1a2ed67126f471a94cd3eb9b0a0801f",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Modules/HAL/Loader/Conversion/StreamToHALLoader/Patterns.cpp"
    },
    {
      "type": "modify",
      "old_id": "dbdf89b93f0fa4b21ad1cbdb1e1cb669df9de050",
      "old_mode": 33188,
      "old_path": "samples/custom_dispatch/cpu/embedded/example_hal.mlir",
      "new_id": "e9c9b10bf5e3c0041da924197c4fc3fc33649260",
      "new_mode": 33188,
      "new_path": "samples/custom_dispatch/cpu/embedded/example_hal.mlir"
    }
  ]
}
