)]}'
{
  "commit": "b5bbe0b7142993350b647eec6c5b061a3e2afb1f",
  "tree": "3bc340a5952a1a6d58526ec5113ee6381e5dc395",
  "parents": [
    "4608864d557862009cbed2bb8f10c5fe06cb2e10"
  ],
  "author": {
    "name": "Mads Ager",
    "email": "ager@google.com",
    "time": "Tue Oct 10 15:59:07 2017 +0200"
  },
  "committer": {
    "name": "Mads Ager",
    "email": "ager@google.com",
    "time": "Tue Oct 10 15:59:07 2017 +0200"
  },
  "message": "Split edges after transformations that might introduce new critical edges.\n\nRegister allocation needs all critical edges to be split. Additionally,\nsome of our optimizations rely on edge split form (such as switch\nrewriting). Therefore, we should maintain edge split form throughout.\n\nThis change adds asserts to isConsistentSSA to verify that we\nhave no critical edges. Additionally, it resplits edges after the\ntransformations that can introduce new critical edges.\n\nThe other option is to update all rewriting to not rely on\nedge split form and only split critical edges before register\nallocations. We can consider going that route as well, but this\nis the quick fix for critical edges making its way to the\nregister allocator resulting in wrong code generation.\n\nR\u003dherhut@google.com, sgjesse@google.com\n\nChange-Id: Ie7b80503cce91bf07f15b8e66eeb8c5bd59a19a8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2324f8ee114950956af9268bb6014001c4727dab",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/BasicBlock.java",
      "new_id": "54f961de9fd173379f5b3c683fe4f0160878a691",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/BasicBlock.java"
    },
    {
      "type": "modify",
      "old_id": "d9fdaf279f18b6c3022b0329fa1908afe115d17e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/IRCode.java",
      "new_id": "477c9d715a1c8ba86f67a04e886c3f01f28a61ef",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/IRCode.java"
    },
    {
      "type": "modify",
      "old_id": "35cd7fac7846f0a7796f60ac85c5f7476a7da43d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java",
      "new_id": "08bc75e018af3c4d11fc87a077fe4aed3fc02ef6",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java"
    },
    {
      "type": "modify",
      "old_id": "7cb186f699dc379e06938485a170b7b288aaab07",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java",
      "new_id": "193770d1acf0327df752c72ac97e6c5e10068b0b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java"
    },
    {
      "type": "modify",
      "old_id": "e7baec9181804be9a401680839ab7d0ac71abb6c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/shaking/protolite/ProtoLitePruner.java",
      "new_id": "9ccdedcec442e3bcb63433a52b6ab342dab4154e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/shaking/protolite/ProtoLitePruner.java"
    }
  ]
}
