)]}'
{
  "commit": "40c19e36b4fb32f0ae59589328cbe10a0056bad2",
  "tree": "99afc96db7ff1d94e3ee2423ed7a1509b66c1311",
  "parents": [
    "88d5f59c764c096d46a5ca0eaa1729aa87e1bc4b"
  ],
  "author": {
    "name": "Rob Suderman",
    "email": "rob.suderman@gmail.com",
    "time": "Mon Jan 13 08:57:33 2025 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jan 13 08:57:33 2025 -0800"
  },
  "message": "Better support multidevice placement with `stream.async.barrier` (#19651)\n\nBarriers / transfers should have semantics that attempt to parallelize\r\npartitioning. If a value has a barrier placed it should divide\r\npartitions to avoid spaning behavior with cross device dependencies.\r\n\r\nIntermediate and ending transfers we want to place on the producing\r\npartition so that any produced operator ends by producing the value at\r\nthe needed desetination\r\n\r\nFor incoming transfers we place in the destination partition as these\r\nwill not add a dependency on the incoming data.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "88ac0205214ffa15c31312ad62ffa2d06d157f6e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/IR/FlowOpFolders.cpp",
      "new_id": "ebbbfe2b6a6242815d45e46310c6603e7904113d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/IR/FlowOpFolders.cpp"
    },
    {
      "type": "modify",
      "old_id": "e4732c3f6742b47b7207236e8a090892bd596127",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/IR/FlowOps.cpp",
      "new_id": "df56f0d76e677b5945d484df7613fc60c4552db9",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/IR/FlowOps.cpp"
    },
    {
      "type": "modify",
      "old_id": "98cdf5be66c3087528b751699f9eaf7448f28fcc",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Flow/IR/FlowOps.td",
      "new_id": "2666072cdcb1104e8b97e462dc1cd4e75b90973d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Flow/IR/FlowOps.td"
    },
    {
      "type": "modify",
      "old_id": "9cb10137874cac8c5a64fa7698ee05557799f92e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Analysis/Partitioning/ReferencePartitioning.cpp",
      "new_id": "79d147afcd25a10f5d782b705bdc16cc9f5269ff",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Analysis/Partitioning/ReferencePartitioning.cpp"
    },
    {
      "type": "modify",
      "old_id": "44c8a4630ea0dccaae80d073d4d982794ee084ad",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Conversion/FlowToStream/Patterns.cpp",
      "new_id": "02939d8eaf2cca7cb135e428e1bf82fc93d093a4",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Conversion/FlowToStream/Patterns.cpp"
    },
    {
      "type": "modify",
      "old_id": "ee68211df04f4d8375357e224cce092b3fe72cb4",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Conversion/FlowToStream/test/tensor_ops.mlir",
      "new_id": "4fb2216faeec1744c1bb896d33b37e19e2e559b1",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Conversion/FlowToStream/test/tensor_ops.mlir"
    },
    {
      "type": "modify",
      "old_id": "b14bb0863eb342d903089e3ddadba7226bad7395",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp",
      "new_id": "0f4ef350e928c204fa80d75bd60b08afb3429294",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/IR/StreamOpFolders.cpp"
    },
    {
      "type": "modify",
      "old_id": "3c898954ea312c9d802a27f5c228a69a097f5cd0",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp",
      "new_id": "c3bf0cf3546c34f6c061c0dcdb7b8d0193f83cc7",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp"
    },
    {
      "type": "modify",
      "old_id": "d499dd00a7ceffd91d66fdc7f0bcd0c7ac2dc4b0",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.td",
      "new_id": "768cbde878c24a14192648f33c0b16e47c72108d",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.td"
    },
    {
      "type": "modify",
      "old_id": "123f090ef1ff692b7348179af795277100d67a8e",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/RefineUsage.cpp",
      "new_id": "525b8c49f7ff30933668c59f94432d8cd90410c4",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/RefineUsage.cpp"
    },
    {
      "type": "modify",
      "old_id": "43f5269cff7ecfbd16045b3921e245660c3284e0",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/ScheduleAllocation.cpp",
      "new_id": "20ee5728ef3511f0931b26f7bb276ea417c7facc",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/ScheduleAllocation.cpp"
    },
    {
      "type": "modify",
      "old_id": "b5ecc53df47a6b243487e135deb0d93159f380a0",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/schedule_execution.mlir",
      "new_id": "d913525fb1a53f150163c2d02945a7659bea1347",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Dialect/Stream/Transforms/test/schedule_execution.mlir"
    },
    {
      "type": "modify",
      "old_id": "ab1adf05eabcbc140ed19cb4c13fd0ed4bd17401",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/ExternalInterfaces/StreamExternalModels.cpp",
      "new_id": "763e2191afe32ba9c531cffb83d0bf905ba44622",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/ExternalInterfaces/StreamExternalModels.cpp"
    }
  ]
}
