)]}'
{
  "commit": "bfa07828a6ee0faa427dc1e3199d793016fb8910",
  "tree": "8ed64606469cf53f16fd19f1118b2a06e4116ae2",
  "parents": [
    "6157f49205e5dbfa40e617a4b2fb72d4c913776b"
  ],
  "author": {
    "name": "as4230",
    "email": "88979030+as4230@users.noreply.github.com",
    "time": "Sat May 02 05:56:33 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat May 02 17:56:33 2026 +0800"
  },
  "message": "[BugFix][Relax] Add legalize for isnan, isinf, isfinite (#19492)\n\nThe Relax ops `relax.isnan`, `relax.isinf`, and `relax.isfinite` are\nregistered in the op registry and emit valid IR, but lack FLegalize\nentries so LegalizeOps() leaves them unlowered and relax.build() crashes\nat codegen with:\n\n    InternalError: CodeGenVM cannot handle this intrinsic now:\n    Op(relax.isnan)\n\nSame crash on `isinf` and `isfinite`, on both LLVM and CUDA targets.\n\nThe TOPI implementations already exist (python/tvm/topi/math.py). The\nfix is three register_legalize calls following the\n_call_topi_without_attr pattern used by the other unary ops in the same\nfile.\n\nFixes #19452.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fc6b96a438e0cb1d89b4ebfa5200cad77b383227",
      "old_mode": 33188,
      "old_path": "python/tvm/relax/transform/legalize_ops/unary.py",
      "new_id": "4d09c6d61cc8c9af7ac085311bb2c201135320e7",
      "new_mode": 33188,
      "new_path": "python/tvm/relax/transform/legalize_ops/unary.py"
    },
    {
      "type": "modify",
      "old_id": "e32f95a3c4d218328b512aa63f081ca9a8121acb",
      "old_mode": 33188,
      "old_path": "tests/python/relax/test_transform_legalize_ops_unary.py",
      "new_id": "4f8ee67d99ee34ef365b0d11adac064c7b7d9135",
      "new_mode": 33188,
      "new_path": "tests/python/relax/test_transform_legalize_ops_unary.py"
    }
  ]
}
