)]}'
{
  "commit": "6de4a73170e8282220bb1651da92a2e72fa4b7e9",
  "tree": "8bca29db081e99bd8f47c8fe7573022f4ddda583",
  "parents": [
    "566ed4dc140b451f7ec45b0861a73fb97c0c6b4c"
  ],
  "author": {
    "name": "Oleksandr \"Alex\" Zinenko",
    "email": "zinenko@google.com",
    "time": "Mon Jul 03 15:16:57 2023 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jul 03 15:16:57 2023 +0200"
  },
  "message": "Make barrier elimination more aggressive (#14293)\n\nContrary to the conceptual description of the barrier elimination\r\ntechnique in the paper by Moses et.al., barrier elimination in IREE is\r\nperformed by the greedy rewriter. Thus a redundant barrier is erased\r\nimmediately and the updated IR is considered after for the next barrier.\r\nTherefore, there it is sufficient to consider the effects before and\r\nafter each barrier until hitting the next barrier, rather than pairwise\r\nextending those until the end of the parallel region boundary.\r\n\r\nSpecifically, the case that wouldn\u0027t be handled correctly with non-eager\r\nrewriting,\r\n\r\n```mlir\r\n  store %A\r\n  barrier  // useless because no effects after\r\n  // nothing\r\n  barrier  // useless because no effects before\r\n  load %A\r\n```\r\n\r\nis handled correctly in IREE that removes one of the barriers and sees\r\nthe second as required when re-analyzing the eagerly rewrtitten IR.\r\n\r\nThis change lets us eliminate more barriers.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2ea8a69f12c6c25a4eb9a730f98ee525991007de",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/TransformExtensions/LLVMGPUExtensions.cpp",
      "new_id": "04a50ebfd63e21ec294c1f7ccbce31bb1736c192",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/TransformExtensions/LLVMGPUExtensions.cpp"
    },
    {
      "type": "modify",
      "old_id": "2fbbfae54a582480c48bfa575c4fcc9ae7aba9aa",
      "old_mode": 33188,
      "old_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_eliminate_gpu_barriers.mlir",
      "new_id": "51ce0c91e9f8a94759760a03ced572cf9b930d98",
      "new_mode": 33188,
      "new_path": "compiler/src/iree/compiler/Codegen/LLVMGPU/test/transform_dialect_eliminate_gpu_barriers.mlir"
    }
  ]
}
