)]}'
{
  "commit": "cabaa78cc57d08bcfcd75bfe99a42c19ed497d26",
  "tree": "9b358e5159a4c4ce983368ab24853fb9e50101eb",
  "parents": [
    "16eefa4b7570e0ac2463b2550308e0d1f9ded146"
  ],
  "author": {
    "name": "Martin Kustermann",
    "email": "kustermann@google.com",
    "time": "Thu Mar 21 14:29:08 2019 +0000"
  },
  "committer": {
    "name": "commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Thu Mar 21 14:29:08 2019 +0000"
  },
  "message": "[VM] Generalize generic bounds check elimination\n\nWhen eliminating bounds checks using loop information the length of\nGenericBoundsCheckInstr is directly compared to the loop bound.\n\nInstead we should compare the original definitions, ignoring any\nboxing/unboxing. This allows the elimination of more bounds checks.\n\nIssue https://github.com/dart-lang/sdk/issues/35154\n\nCq-Include-Trybots: luci.dart.try:vm-canary-linux-debug-try, vm-dartkb-linux-debug-x64-try, vm-dartkb-linux-release-x64-try, vm-kernel-asan-linux-release-x64-try, vm-kernel-checked-linux-release-x64-try, vm-kernel-linux-debug-ia32-try, vm-kernel-linux-debug-simdbc64-try, vm-kernel-linux-debug-x64-try, vm-kernel-linux-product-x64-try, vm-kernel-linux-release-ia32-try, vm-kernel-linux-release-simarm-try, vm-kernel-linux-release-simarm64-try, vm-kernel-linux-release-simdbc64-try, vm-kernel-linux-release-x64-try, vm-kernel-optcounter-threshold-linux-release-ia32-try, vm-kernel-optcounter-threshold-linux-release-x64-try, vm-kernel-precomp-android-release-arm-try, vm-kernel-precomp-bare-linux-release-simarm-try, vm-kernel-precomp-bare-linux-release-simarm64-try, vm-kernel-precomp-bare-linux-release-x64-try, vm-kernel-precomp-linux-debug-x64-try, vm-kernel-precomp-linux-product-x64-try, vm-kernel-precomp-linux-release-simarm-try, vm-kernel-precomp-linux-release-simarm64-try, vm-kernel-precomp-linux-release-x64-try, vm-kernel-precomp-obfuscate-linux-release-x64-try, vm-kernel-precomp-win-release-simarm64-try, vm-kernel-precomp-win-release-x64-try, vm-kernel-reload-linux-debug-x64-try, vm-kernel-reload-linux-release-x64-try, vm-kernel-reload-rollback-linux-debug-x64-try, vm-kernel-reload-rollback-linux-release-x64-try, vm-kernel-win-debug-ia32-try, vm-kernel-win-debug-x64-try, vm-kernel-win-product-x64-try, vm-kernel-win-release-ia32-try, vm-kernel-win-release-x64-try\nChange-Id: Ie10880f833f3b55d0804a03c4be9bd9d1ad52f66\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/97331\nCommit-Queue: Martin Kustermann \u003ckustermann@google.com\u003e\nReviewed-by: Aart Bik \u003cajcbik@google.com\u003e\nReviewed-by: Vyacheslav Egorov \u003cvegorov@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fbaf0696d02d81067f69bbfe69ae59abed2b828d",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/il.cc",
      "new_id": "4d35d2f821af2b45ea58509c2f6ea4538b29d453",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/il.cc"
    },
    {
      "type": "modify",
      "old_id": "20d2bd38bf14c36449b13ba5c3d8c12c16054f75",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/il.h",
      "new_id": "7164da8182e46d8458cbb95572778ea0baeabc81",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/il.h"
    },
    {
      "type": "modify",
      "old_id": "f307a21e957951f9bf88284bc7bc5ec6d2cc84a3",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/loops.cc",
      "new_id": "a64155790079d675eb620f0b69d752fd10a10be4",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/loops.cc"
    },
    {
      "type": "modify",
      "old_id": "8793f262b0937f8ea95bedbbc18cc3aae508316f",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/range_analysis.cc",
      "new_id": "65d61e982e01a9318e9573d560c30d7e9e1e6c81",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/range_analysis.cc"
    }
  ]
}
