)]}'
{
  "commit": "aab75ed890a3e491d00e652bbfbe19edd17d38cb",
  "tree": "324d482c863119bb19defe3cc8b5b638f6bc7be1",
  "parents": [
    "7be22c4d68270573ee010938aa8cd06be89e54d2"
  ],
  "author": {
    "name": "Heejin Ahn",
    "email": "aheejin@gmail.com",
    "time": "Wed Feb 05 23:40:04 2020"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Feb 05 23:40:04 2020"
  },
  "message": "Fix LocalCSE\u0027s usable local selection (#2638)\n\nNow that we have subtypes, we cannot reuse any local that contains the\r\nsame expression, because that local\u0027s type can be a supertype. For\r\nexample:\r\n```\r\n(local $0 anyref)\r\n(local $1 nullref)\r\n...\r\n(local.set $0 (ref.null))\r\n(local.set $1 (ref.null)) ;; cannot be replaced with (local.get $0)\r\n```\r\n\r\nThis extends `usables` map\u0027s key to contain both `HashedExpression` and\r\nthe local\u0027s type, so we can get the right usable local in presence of\r\nsubtypes.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fe0a0b9588c768744a236d0d3ee4ed68c0851e6d",
      "old_mode": 33188,
      "old_path": "src/ir/hashed.h",
      "new_id": "3068966c5341486f906b8c26854df02b82cc1ad8",
      "new_mode": 33188,
      "new_path": "src/ir/hashed.h"
    },
    {
      "type": "modify",
      "old_id": "f7c1cda26ade0491a0008a279c05985cdd274c22",
      "old_mode": 33188,
      "old_path": "src/passes/LocalCSE.cpp",
      "new_id": "d6717a1ed7067a00f392ee312ea2f934d42d2ed8",
      "new_mode": 33188,
      "new_path": "src/passes/LocalCSE.cpp"
    },
    {
      "type": "modify",
      "old_id": "0697e27a57275bce5bc35e30d2f5bec2d420f976",
      "old_mode": 33188,
      "old_path": "test/passes/flatten_local-cse_all-features.txt",
      "new_id": "fc2dff3aa9e8ef26dd229f26212a0f959d9471a6",
      "new_mode": 33188,
      "new_path": "test/passes/flatten_local-cse_all-features.txt"
    },
    {
      "type": "modify",
      "old_id": "6ca1542783c1bba3cfe00da4b7ac3d03335dc500",
      "old_mode": 33188,
      "old_path": "test/passes/flatten_local-cse_all-features.wast",
      "new_id": "112dfe647381f489bbe63ceb15681ff3401aba0e",
      "new_mode": 33188,
      "new_path": "test/passes/flatten_local-cse_all-features.wast"
    }
  ]
}
