)]}'
{
  "commit": "18c3da6eaab13e4a972d6fcb93bb3f183e490046",
  "tree": "d0768b8cad0f83aa764349f2324b7c6b0823d2db",
  "parents": [
    "21c6cd2649e6d060c95af90a715eab3a42e83d95"
  ],
  "author": {
    "name": "pstarkcdpr",
    "email": "paul.stark@cdprojektred.com",
    "time": "Fri Jul 31 12:19:40 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jul 31 21:19:40 2026 +0200"
  },
  "message": "[StableHLO] Legalize composite ops to calls in the input pipeline (#24777)\n\nThe StableHLO input conversion pipeline had no handling for\n`stablehlo.composite`, so any composite reaching the conversion to\nLinalg failed with:\n```\n  error: failed to legalize operation \u0027stablehlo.composite\u0027 that was explicitly marked illegal\n```\n\nJAX emits composites for some CHLO operations, e.g.\n```\n  %0 \u003d stablehlo.composite \"chlo.acos\" %arg0\n      {decomposition \u003d @chlo.acos.impl, version \u003d 1 : i32}\n      : (tensor\u003c8x32xf32\u003e) -\u003e tensor\u003c8x32xf32\u003e\n```\nwhich made such models uncompilable.\n\nRun `stablehlo-legalize-composite-to-call` early in the pipeline, right\nafter deserialization. It replaces each composite with a call to the\nfunction holding its decomposition, which the inliner later in the\npipeline folds away, so the remaining conversions only ever see the\ndecomposed form. The pass is given an explicit empty exception list to\ndocument where composites that should be preserved as a unit can be\nopted out.\n\nSigned-off-by: Paul Stark \u003cpaul.stark@cdprojektred.com\u003e\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7887e2d38ae52f4a45f9b0483b89d972419e8727",
      "old_mode": 33188,
      "old_path": "compiler/plugins/input/StableHLO/Conversion/Passes.cpp",
      "new_id": "3a0dd8e467d172c09d30447540c21a75440655f2",
      "new_mode": 33188,
      "new_path": "compiler/plugins/input/StableHLO/Conversion/Passes.cpp"
    },
    {
      "type": "modify",
      "old_id": "ca0da7f359e908aa92e7315db3f6e73a6564afdc",
      "old_mode": 33188,
      "old_path": "compiler/plugins/input/StableHLO/Conversion/test/BUILD.bazel",
      "new_id": "21e06dd7822f859cc64eb786591ee6a057aa6d80",
      "new_mode": 33188,
      "new_path": "compiler/plugins/input/StableHLO/Conversion/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "5f7202150f84f095cddab51fac78de0a47ced7aa",
      "old_mode": 33188,
      "old_path": "compiler/plugins/input/StableHLO/Conversion/test/CMakeLists.txt",
      "new_id": "43755f73d3cc8af78767a6868cdd533cefe03873",
      "new_mode": 33188,
      "new_path": "compiler/plugins/input/StableHLO/Conversion/test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e8dfbdba998459da0ee1ea75d182b50afcee439a",
      "new_mode": 33188,
      "new_path": "compiler/plugins/input/StableHLO/Conversion/test/legalize_composite.mlir"
    }
  ]
}
