)]}'
{
  "commit": "f58a1962519383fd16e3813c51897d0aead9afed",
  "tree": "006625dd44398c7631851fc9b71d4e23eea3c643",
  "parents": [
    "fb29c73730a81080ec23636d71860e2565d5919c"
  ],
  "author": {
    "name": "Thomas Lively",
    "email": "tlively@google.com",
    "time": "Fri Jun 05 17:49:19 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jun 05 17:49:19 2026"
  },
  "message": "Improve ref.eq optimization (#8805)\n\nOptimizeInstructions would previously optimize ref.eq by checking if its\noperands were equal and foldable. If so, it would be replaced with the\ndropped operands (if they had effects that needed preserving) followed\nby a constant 1. Improve this by dropping only one of the operands; if\nthey are equal and foldable, then there is no need to keep both around.\nWhen the operands do not have effects, this leaves more work for Vacuum\nthan the old optimization did, but that\u0027s fine.\n\nAlso newly optimize when the operands are equal but not foldable. In\nthis case they can still be dropped and followed by a constant 1.\n\nFinally, replace the EffectAnalyzer `invalidates` call in\n`areConsecutiveInputsEqualAndFoldable` with an `orderedBefore` call. Add\ntests using release/acquire operations to show that the direction of the\neffect comparison is correct.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b6ed69d15d261e3ace06b8bda88ee81cb77b582e",
      "old_mode": 33188,
      "old_path": "src/passes/OptimizeInstructions.cpp",
      "new_id": "6cce997c2bfe13447c98ce89732dce11e5c2cf9d",
      "new_mode": 33188,
      "new_path": "src/passes/OptimizeInstructions.cpp"
    },
    {
      "type": "modify",
      "old_id": "feefa3435b72fad1cfa5ce1977604f13c0d18ff4",
      "old_mode": 33188,
      "old_path": "test/lit/passes/optimize-instructions-gc-iit.wast",
      "new_id": "10dd65935212ab4a02cdf1f8f1f4f2047ce719ac",
      "new_mode": 33188,
      "new_path": "test/lit/passes/optimize-instructions-gc-iit.wast"
    },
    {
      "type": "modify",
      "old_id": "9323488e3364efd64f5cb49a54c6aa6d3373aa2a",
      "old_mode": 33188,
      "old_path": "test/lit/passes/optimize-instructions-gc-tnh.wast",
      "new_id": "45674df82a2f9b37ae268f906db4ea1dca04ebd5",
      "new_mode": 33188,
      "new_path": "test/lit/passes/optimize-instructions-gc-tnh.wast"
    },
    {
      "type": "modify",
      "old_id": "c8532cf7ae480b0ecc5ef01596eae0cb32d21762",
      "old_mode": 33188,
      "old_path": "test/lit/passes/optimize-instructions-gc.wast",
      "new_id": "0e1676ef06317084db6c3a22e20b63550fb8d515",
      "new_mode": 33188,
      "new_path": "test/lit/passes/optimize-instructions-gc.wast"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dbb6af3da83012e84218ed3413c91b611eb8275f",
      "new_mode": 33188,
      "new_path": "test/lit/passes/optimize-instructions-global-effects-idempotent.wast"
    },
    {
      "type": "modify",
      "old_id": "4abb899a60054b10d60040e9faef27e5cad03460",
      "old_mode": 33188,
      "old_path": "test/lit/passes/optimize-instructions_idempotent.wast",
      "new_id": "abc999a133e59638b80106d09f6ef5a797256882",
      "new_mode": 33188,
      "new_path": "test/lit/passes/optimize-instructions_idempotent.wast"
    }
  ]
}
