)]}'
{
  "commit": "f80da2e8cdccdd976f14f70d33195a40e4d8d961",
  "tree": "d2831bece49c94c8e22858668f9c29ec679b327c",
  "parents": [
    "6564d6c2db67515b9fa85cba7d1d09360b2520f1"
  ],
  "author": {
    "name": "Ben Vanik",
    "email": "ben.vanik@gmail.com",
    "time": "Mon Apr 13 10:33:52 2020 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon Apr 13 10:36:44 2020 -0700"
  },
  "message": "Merging hal.device.switch feature branch.\n\nAdding a new `hal.device.switch` op that allows us to nicely generate backend/device-specific logic that can be transformed into efficient code for runtime. There\u0027s a lot of folders needed to help here, however this initial structure will let us begin work on #1168 as it exposes the ability to generate device-specific dispatch ops.\n\nFuture iteration will add more device matchers to allow more fine-grained codegen. For example, matchers that look for supported device-specific extensions, minimum allocation alignment, unified vs. discrete memory, maximum descriptor set count, etc can all be added in a generic way and efficiently lowered to runtime code.\n\nProgress towards heterogeneous execution will cause the `!hal.device` type to change to a `hal.device\u003cordinal\u003e` form, allowing better compile-time evaluation of the `hal.device.switch` blocks when placement happens. For now we still only have a single runtime-selected `hal.ex.shared_device` so this cannot happen.\n\nCloses https://github.com/google/iree/pull/1393\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/iree/pull/1393 from google:benvanik-hal-device-switch d0348ef32a6af9940d4f9243a1cce88921bd398e\nPiperOrigin-RevId: 306259903\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "28ced9d4e6fc3f3928278a55929d0453ec9c1902",
      "old_mode": 33188,
      "old_path": "iree/base/api.cc",
      "new_id": "c62fccee6f59fdc1b4315dd5ac6df9ef3c992a0c",
      "new_mode": 33188,
      "new_path": "iree/base/api.cc"
    },
    {
      "type": "modify",
      "old_id": "a35bb4d5fc3e49d35d154ec61deb220be627283a",
      "old_mode": 33188,
      "old_path": "iree/base/api.h",
      "new_id": "3d19268364305a2e2977f2d36c1d566ffcec471e",
      "new_mode": 33188,
      "new_path": "iree/base/api.h"
    },
    {
      "type": "modify",
      "old_id": "0347ae30f80f8a7a69c5e1f675fba78d83b51dfe",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/Flow/Analysis/Dispatchability.cpp",
      "new_id": "2bfa8ee34f55f0f05ec9e17b8f16a286b9d1d44a",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/Flow/Analysis/Dispatchability.cpp"
    },
    {
      "type": "modify",
      "old_id": "4dc0cfe3dc1ea96b453830f1137b8d6896baaed2",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/Flow/Transforms/FlattenTuplesInCFG.cpp",
      "new_id": "11da5c9b1766ebfcce76bb98bec0100a1c737375",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/Flow/Transforms/FlattenTuplesInCFG.cpp"
    },
    {
      "type": "modify",
      "old_id": "0dab859dac7484c79dbb8bc1655c60f21540330e",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/Flow/Transforms/FoldCompatibleDispatchRegions.cpp",
      "new_id": "4251d129f9c3aa714fb8ea80fc7e0a3b48dbd9f8",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/Flow/Transforms/FoldCompatibleDispatchRegions.cpp"
    },
    {
      "type": "modify",
      "old_id": "592d145f4e895ce89fc4c4667db55d7e27e02cd6",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/Flow/Transforms/FormStreams.cpp",
      "new_id": "40addc26492ae376d4a861ae705dc2ca778114ed",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/Flow/Transforms/FormStreams.cpp"
    },
    {
      "type": "modify",
      "old_id": "d33a73599838172964d2a3036ce2cb5c37d4fce6",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/Conversion/FlowToHAL/ConvertVariableOps.cpp",
      "new_id": "cc59fb488a97be548ef9b2cd86205341a4d29bc4",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Conversion/FlowToHAL/ConvertVariableOps.cpp"
    },
    {
      "type": "modify",
      "old_id": "24c4feb4516c9af5e08bb99187dc3e2b0a784ece",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/Conversion/HALToVM/ConvertDeviceOps.cpp",
      "new_id": "4131dc244548429a4610b82d60502c98f4b45196",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Conversion/HALToVM/ConvertDeviceOps.cpp"
    },
    {
      "type": "modify",
      "old_id": "04fd282d3e4a0c2740a237b86c9fa602f0acb928",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/IR/HALBase.td",
      "new_id": "65b2aacc5391e2ff2c0ebafb3a5296479b7345b1",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/IR/HALBase.td"
    },
    {
      "type": "modify",
      "old_id": "8bb4b142e9e8251cca32d79e40d4ffad96adcec8",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/IR/HALDialect.cpp",
      "new_id": "66adfecd73f7ba335b646251219dd76fb2638e6e",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/IR/HALDialect.cpp"
    },
    {
      "type": "modify",
      "old_id": "7477df5d21cc180bc435e72aae480602319b5be6",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/IR/HALOpFolders.cpp",
      "new_id": "efdd27a7324fe3961cb0ab614d462862b67e7549",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/IR/HALOpFolders.cpp"
    },
    {
      "type": "modify",
      "old_id": "90715273f52cd33b2020716d406b00fb9300f7c8",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/IR/HALOps.cpp",
      "new_id": "68d595df7c7c0c6bcc08e3615089a1f33d43da70",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/IR/HALOps.cpp"
    },
    {
      "type": "modify",
      "old_id": "26ae91d54a473afba05e2e81d65b35ea32c319a3",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/IR/HALOps.td",
      "new_id": "2e9f148a1ff571580403cbd8ec193b7dc19106ee",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/IR/HALOps.td"
    },
    {
      "type": "modify",
      "old_id": "37e00dc4fb3607a2e1c0e236cdd31af597a62533",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/IR/HALTypes.cpp",
      "new_id": "b15fd4b1b270404d06bcbd1f3348f99799fb1ebd",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/IR/HALTypes.cpp"
    },
    {
      "type": "modify",
      "old_id": "d40e27f0b246e09dd1581bd338e1b75b50de4f33",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/IR/test/device_ops.mlir",
      "new_id": "932f6f78c1c20c579d4a149ad237fec907ea012d",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/IR/test/device_ops.mlir"
    },
    {
      "type": "modify",
      "old_id": "325aedfda3030c333820a71c384cb4e3a11c817f",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/Transforms/BUILD",
      "new_id": "5da375022b82a5f2a47a5a29ea2f8a31e98018a8",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Transforms/BUILD"
    },
    {
      "type": "modify",
      "old_id": "ddd3cb3e4cbf278632320de13cf7e3bbf17f959d",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/Transforms/CMakeLists.txt",
      "new_id": "9b91962a299a5464f4345bdd2399c5440eeeac56",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Transforms/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "4ffb8df2e4ac189f9e2b1b31e5f07b9f8e189ef8",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/Transforms/MaterializeResourceCaches.cpp",
      "new_id": "caae5e53de72e310e0d360fed5f518be47fb5d62",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Transforms/MaterializeResourceCaches.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "83b18841fefb7f1630aa2cabe104bd36302c1f8f",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Transforms/MemoizeDeviceQueries.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c4f42115a4e1e2f91aa694835cb1efd6a6ef47fc",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Transforms/OutlineDeviceSwitches.cpp"
    },
    {
      "type": "modify",
      "old_id": "d7fc72fe02b06aa2f5723131ab83a607f5ad840d",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/Transforms/Passes.cpp",
      "new_id": "b74558dcad415be31bda8079a904c1d9174dde27",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Transforms/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "f5dc6c16950f50e4543ff3ddc03b51ac67786c2b",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/Transforms/Passes.h",
      "new_id": "9db239d9dc9a9abe76f8e16efb2f460b609fcbd6",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Transforms/Passes.h"
    },
    {
      "type": "modify",
      "old_id": "a03fb3e7b351cff9407ab68313860a6a44036671",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/Transforms/PublicAbiGeneration.cpp",
      "new_id": "c3bdb42d33e2d23225adaea8e2992542ea88ac0c",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Transforms/PublicAbiGeneration.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "de7f5764a15ada05e42bc6c6b043711270c09f41",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Transforms/test/memoize_device_queries.mlir"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c2ae10fd55f5124299495cb1e9f12a5557cb70c3",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/Transforms/test/outline_device_switches.mlir"
    },
    {
      "type": "modify",
      "old_id": "559b00f7781be3a5b3f872fafe7562079521f40b",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/HAL/hal.imports.mlir",
      "new_id": "6ab615385d52a36d6e2a4c25fa275a7c47f0bc70",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/HAL/hal.imports.mlir"
    },
    {
      "type": "modify",
      "old_id": "4b2ae13ef1f8541d7e2ea4a2800720787fcccdbc",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/IREE/IR/IREEAttributes.h",
      "new_id": "c4a9043d4d1012ea81b6322aa02e9b4ee5845a63",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/IREE/IR/IREEAttributes.h"
    },
    {
      "type": "modify",
      "old_id": "d200a80186b317dc56bfab1fe42b0e9ea91d563d",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/IREE/IR/IREEOps.td",
      "new_id": "f30723773059ad1d9dc4c0dcb9f37092ff8a8c89",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/IREE/IR/IREEOps.td"
    },
    {
      "type": "modify",
      "old_id": "9a1629df1962b19664d24bd384ca7d64bf542d43",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/IREE/IR/IREETypes.h",
      "new_id": "e4605cf2c209cbac27d7acfad9233b8ea7409dbf",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/IREE/IR/IREETypes.h"
    },
    {
      "type": "modify",
      "old_id": "3734ff560c842482869213d2f97dc91924031c7b",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/IREE/Tools/StructAttrGen.cpp",
      "new_id": "42bf726da367f511128bac47e48597266d24f146",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/IREE/Tools/StructAttrGen.cpp"
    },
    {
      "type": "modify",
      "old_id": "c64d620b94d6d963fded1235ce2ccf26508e9b50",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/VM/Conversion/StandardToVM/ConvertStandardToVM.cpp",
      "new_id": "841fa317516081df54d1804ee501016308c7f302",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/VM/Conversion/StandardToVM/ConvertStandardToVM.cpp"
    },
    {
      "type": "modify",
      "old_id": "d82ba6d0373d0028c410de8ba20c59ede7dca5e5",
      "old_mode": 33188,
      "old_path": "iree/compiler/Dialect/VM/IR/VMOps.cpp",
      "new_id": "82fc1be3795f8723ab116e385696af10164e1196",
      "new_mode": 33188,
      "new_path": "iree/compiler/Dialect/VM/IR/VMOps.cpp"
    },
    {
      "type": "modify",
      "old_id": "8f554b71e6d643027ce53c19d44727a72dd7df85",
      "old_mode": 33188,
      "old_path": "iree/compiler/Translation/CodegenUtils/CodegenUtils.cpp",
      "new_id": "ce0716d023777b18c8c1899ec4f4f8da1e4cec4a",
      "new_mode": 33188,
      "new_path": "iree/compiler/Translation/CodegenUtils/CodegenUtils.cpp"
    },
    {
      "type": "modify",
      "old_id": "e66c6228e03afabab8c3d48efd32ff17a0ee7e95",
      "old_mode": 33188,
      "old_path": "iree/hal/api.cc",
      "new_id": "08e008c737374ebe2042dcce98e0801040fee028",
      "new_mode": 33188,
      "new_path": "iree/hal/api.cc"
    },
    {
      "type": "modify",
      "old_id": "22e58fa6fe25844a42226f43238d6075ce05d411",
      "old_mode": 33188,
      "old_path": "iree/hal/api.h",
      "new_id": "89a96898253f4d23c80cb31b5fc079624ec08654",
      "new_mode": 33188,
      "new_path": "iree/hal/api.h"
    },
    {
      "type": "modify",
      "old_id": "f4b0b6fcdb6963f75f00d28f6e83e1564c8e14f5",
      "old_mode": 33188,
      "old_path": "iree/hal/dawn/dawn_driver.cc",
      "new_id": "34dd792d84bcd79bb6961f5a01c644b33ad465ed",
      "new_mode": 33188,
      "new_path": "iree/hal/dawn/dawn_driver.cc"
    },
    {
      "type": "modify",
      "old_id": "6d5661f206ea9ae128c31eaca7d889c3fd51eb55",
      "old_mode": 33188,
      "old_path": "iree/hal/device_info.h",
      "new_id": "4fb5ffb86bc50cf9353f4f32965d11d634481beb",
      "new_mode": 33188,
      "new_path": "iree/hal/device_info.h"
    },
    {
      "type": "modify",
      "old_id": "7b22ffd07fae2546306d9a5723b4be85615759fb",
      "old_mode": 33188,
      "old_path": "iree/hal/llvmjit/llvmjit_driver.cc",
      "new_id": "da4c6b14ba8a07a617a5cb3fb4dbcb5eda0cd997",
      "new_mode": 33188,
      "new_path": "iree/hal/llvmjit/llvmjit_driver.cc"
    },
    {
      "type": "modify",
      "old_id": "59e2ad15697f6216752df60fdab9435af9a1a3a7",
      "old_mode": 33188,
      "old_path": "iree/hal/vmla/vmla_driver.cc",
      "new_id": "6f21f7f427435d1140111a0768cdf677de6e76fa",
      "new_mode": 33188,
      "new_path": "iree/hal/vmla/vmla_driver.cc"
    },
    {
      "type": "modify",
      "old_id": "b67a762cbd8f75057db262ac1254ec1894535f11",
      "old_mode": 33188,
      "old_path": "iree/hal/vulkan/vulkan_driver.cc",
      "new_id": "f0da43f68ff2fbe1aa8baf77c28fde5050b05a83",
      "new_mode": 33188,
      "new_path": "iree/hal/vulkan/vulkan_driver.cc"
    },
    {
      "type": "modify",
      "old_id": "ca5685d5e0d34e477bead148087f7aa3608f9be2",
      "old_mode": 33188,
      "old_path": "iree/modules/hal/hal_module.cc",
      "new_id": "19e22fdb8fef0b847177038937c375cfc9b26790",
      "new_mode": 33188,
      "new_path": "iree/modules/hal/hal_module.cc"
    }
  ]
}
