)]}'
{
  "log": [
    {
      "commit": "75be28332b278cff9039b54bfb228ac72f539ccc",
      "tree": "a01829ba0412d0f6637a833b41694f0d757d8f43",
      "parents": [
        "ffb078ee815a38123581e706099a3bed65a6cb24"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 17 17:02:00 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 17 17:11:43 2014 +0100"
      },
      "message": "Revert \"Revert \"Introduce a class to implement optimization passes.\"\"\n\nThis reverts commit 1ddbf6d4b37979a9f11a203c12befd5ae8b65df4.\n\nChange-Id: I110a14668d1564ee0604dc958b91394b40da89fc\n"
    },
    {
      "commit": "633021e6ff6b9a57a374a994e74cfd69275ce100",
      "tree": "78755b7e5d90f1374b317cea2193605de9bdd2d9",
      "parents": [
        "a8069ce1c3caa4f9b1651988986f3732152c186d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 01 14:12:25 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Oct 14 14:44:16 2014 +0100"
      },
      "message": "Implement default traversals in CFG \u0026 SSA graph checkers.\n\n- Check CFG graphs using an insertion order traversal.\n- Check SSA form graphs using a reverse post-order traversal.\n\nChange-Id: Ib9062599bdbf3c17b9f213b743274b2d71a9fa90\n"
    },
    {
      "commit": "1ddbf6d4b37979a9f11a203c12befd5ae8b65df4",
      "tree": "2bc48925657e791441aa947d4d629994a0696e78",
      "parents": [
        "bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 01 14:59:23 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 01 14:59:23 2014 +0000"
      },
      "message": "Revert \"Introduce a class to implement optimization passes.\"\n\nThis reverts commit bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8.\n\nChange-Id: I0a483446666c9c24c45925a5fc199debdefd8b3e\n"
    },
    {
      "commit": "bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8",
      "tree": "0bd049b173d23fcaed5c1b5cb4299e8faef840da",
      "parents": [
        "34bb808affbed7a1db177b9ef4ab5461c2b2106b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 30 16:15:14 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 01 11:52:58 2014 +0100"
      },
      "message": "Introduce a class to implement optimization passes.\n\n- Add art::HOptimization.\n- Rename art::ConstantPropagation to art::HConstantFolding in\n  compiler/optimizing/constant_folding.h to avoid name\n  clashes with a class of the same name in\n  compiler/dex/post_opt_passes.h.\n- Rename art::DeadCodeElimination to\n  art::HDeadCodeElimination for consistency reasons.\n- Have art::HDeadCodeElimination and art::HConstantFolding\n  derive from art::HOptimization.\n- Start to use these optimizations in\n  art:OptimizingCompiler::TryCompile.\n\nChange-Id: Iaab350c122d87b2333b3760312b15c0592d7e010\n"
    },
    {
      "commit": "72bceff11a98cc1ecdb64a6fae16c521f99ec6a7",
      "tree": "d326cc4fd32315735466efbb17ea22adf121395c",
      "parents": [
        "ccc07a9579c554443cd03a306ca9b4f943fd2a93"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Sep 15 18:29:00 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Sep 17 18:23:21 2014 +0100"
      },
      "message": "Initiate a dead code elimination pass in the optimizing compiler.\n\nChange-Id: Ie9db5d8e2c2c30e34145a0f7d2386b8ec58cfc4e\n"
    }
  ]
}
