)]}'
{
  "log": [
    {
      "commit": "2202d56061941b4fecbdb018d84bcefb05b6c683",
      "tree": "b6773b2bc1f7e34b7651c547a1a40a53ba8c56ef",
      "parents": [
        "66946a2cbf55d36fa7b9232a8a381a19f65b2fcb",
        "293f1c006cc283345630ea38266f3ee38b624d5d"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Nov 09 18:55:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 09 18:55:25 2017 +0000"
      },
      "message": "Merge \"Check invocation\u0027s side effects for LSE.\""
    },
    {
      "commit": "293f1c006cc283345630ea38266f3ee38b624d5d",
      "tree": "9560d72041ab5dfad71aa38030529997bc528bdc",
      "parents": [
        "3b5df92d613bb72c8e6f8a766c60835d8313414f"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 08 15:22:17 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 08 15:26:15 2017 -0800"
      },
      "message": "Check invocation\u0027s side effects for LSE.\n\nMore optimization is allowed if an invocation doesn\u0027t do read/write.\n\nTest: run-test on host.\nChange-Id: Id80e2fa90b8c843afd852778e8f7e6c69c765ad5\n"
    },
    {
      "commit": "025c1a69ea548f1477d160bd477364336109078a",
      "tree": "3ad583c8b8ecc76b800b8da6adb70480b29cb865",
      "parents": [
        "3b5df92d613bb72c8e6f8a766c60835d8313414f"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Oct 30 11:19:57 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 08 10:53:10 2017 -0800"
      },
      "message": "Simplify handling of finalizable in LSE.\n\nFinalizable is treated as being returned which simplifies its handling.\n\nTest: run-test on host, 530-checker-lse contains tests on finalizable.\nChange-Id: I492470e4d2ba88865029675c51cf10325af47057\n"
    },
    {
      "commit": "71bf7b43380eb445973f32a7f789d9670f8cc97d",
      "tree": "76425f8578b247a845fe61724d71efc63059760f",
      "parents": [
        "52f52361c2ea37941fbda71e3c653bb8096bf516"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 16 10:17:46 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 30 13:21:21 2016 -0800"
      },
      "message": "Optimizations around escape analysis. With tests.\n\nDetails:\n(1) added new intrinsics\n(2) implemented optimizations\n      more !can be null information\n      more null check removals\n      replace return-this uses with incoming parameter\n      remove dead StringBuffer/Builder calls (with escape analysis)\n(3) Fixed exposed bug in CanBeMoved()\n\nPerformance gain:\nThis improves CafeineString by about 360%\n(removes null check from first loop, eliminates second loop completely)\n\nTest: test-art-host\n\nChange-Id: Iaf16a1b9cab6a7386f43d71c6b51dd59600e81c1\n"
    },
    {
      "commit": "96fd51d52de759be442accd4df99eb2520bdd023",
      "tree": "9d63b5bde1b8c32a0f5fefea789ebc81e5400268",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 28 11:22:35 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 28 13:27:36 2016 -0800"
      },
      "message": "Moved escape analysis to reusable module\n\nRationale:\nThis prepares other optimizations that\nwant to do some simple escape analysis.\nAlso introduces ability for client\nto inject a case-specific function.\n\nTest: test-art-host\nChange-Id: Ie38a1e24e4479dc40154673db589ec1c82fb73b9\n"
    }
  ]
}
