)]}'
{
  "commit": "d96a246e5b103bfc167acaa6315bd8abca9de493",
  "tree": "3e99f24bc30d53bc9cfc9fb1e0f3dc92c0ce1daf",
  "parents": [
    "3920099f578fd8015777bc3c1c7392a08b1e08e7"
  ],
  "author": {
    "name": "Vladimir Marko",
    "email": "vmarko@google.com",
    "time": "Wed Mar 23 16:01:47 2016 +0000"
  },
  "committer": {
    "name": "Vladimir Marko",
    "email": "vmarko@google.com",
    "time": "Wed Mar 23 19:17:51 2016 +0000"
  },
  "message": "Optimizing: Do not insert suspend checks on back-edges.\n\nRely on HGraph::SimplifyLoop() to insert suspend checks.\n\nCodeGenerator\u0027s CheckLoopEntriesCanBeUsedForOsr() checks the\ndex pcs of suspend checks against branch targets to verify\nthat we always have an appropriate point for OSR transition.\nHowever, the HSuspendChecks that were added by HGraphBuilder\nto support the recently removed \"baseline\" interfered with\nthis in a specific case, namely an infinite loop where the\nback-branch jumps to a nop. In that case, the HSuspendCheck\nadded by HGraphBuilder had a dex pc different from the block\nand the branch target but its presence would stop the\nHGraph::SimplifyLoop() from adding a new HSuspendCheck with\nthe correct dex pc.\n\nBug: 27623547\nChange-Id: I83566a260210bc05aea0c44509a39bb490aa7003\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "124afbc73be0cb4c6d7ab7c9ef3589ed45421ab8",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/builder.cc",
      "new_id": "483bdd562f8eb556d831dcb9c21f953cf2c4ade6",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/builder.cc"
    },
    {
      "type": "modify",
      "old_id": "e3dd0e8216d06c847315700909f37a0a9e762136",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/builder.h",
      "new_id": "48f53162229767feb22dc8ddcf5d616d7883ddf6",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/builder.h"
    },
    {
      "type": "modify",
      "old_id": "9c69f8c75bbe39999a1b66adbdb601461db1896d",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/constant_folding_test.cc",
      "new_id": "1e54a0adfa72f4a82f07bfa26e1e2332c6516c13",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/constant_folding_test.cc"
    },
    {
      "type": "modify",
      "old_id": "930795b4f6d31667a759dc6a8a72542ae0ac89e9",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/dead_code_elimination_test.cc",
      "new_id": "83e724ba29ca5c779208a2ead46f815fa4c43d7b",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/dead_code_elimination_test.cc"
    },
    {
      "type": "modify",
      "old_id": "820c696033c25da0ba88a197e824730a0c9b4e48",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/instruction_simplifier.cc",
      "new_id": "58f333eb87675d295f621dc3d53975b7fb9582b2",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/instruction_simplifier.cc"
    },
    {
      "type": "modify",
      "old_id": "2de0c1be72bd44e31b8e2838756a4a7d3b31f4d3",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/pretty_printer_test.cc",
      "new_id": "d5b95d284a4563c943523b8c5272d5e896e78a6a",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/pretty_printer_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "test/590-infinite-loop-with-nop/expected.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ee0970918ba4a57ded0dd39f1a428ddeede742c2",
      "new_mode": 33188,
      "new_path": "test/590-infinite-loop-with-nop/info.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7ea495d00acfad03135703426b05f6ee82d25ac5",
      "new_mode": 33188,
      "new_path": "test/590-infinite-loop-with-nop/smali/TestCase.smali"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "531ff2811ac2dcd3adc93635a0eea0d2613ff25c",
      "new_mode": 33188,
      "new_path": "test/590-infinite-loop-with-nop/src/Main.java"
    }
  ]
}
