)]}'
{
  "log": [
    {
      "commit": "18b36abc7cc03076fe1c399c0bb8ec8793cc6806",
      "tree": "3e38ee71b94c7bbde6f93976e16416a2f6d33ee0",
      "parents": [
        "defccc564481c2c892792680c6abb6020e36bacd"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Apr 13 16:41:35 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Apr 15 10:49:34 2016 -0700"
      },
      "message": "Remove the no-longer-needed F/I and D/J alias.\n\nRationale:\nNow that our HIR is type clean (yeah!), we no longer have\nto conservatively assume F/I and D/J are aliased. This\nenables more accurate side effects analysis, with improvements\nin all clients, such a LICM.\n\nRefinement:\nThe HIR is not completely clean between building and SSA.\nThis refinement takes care of that, with new tests.\n\nBUG\u003d22538329\n\nChange-Id: Id78ff0ff4e325aeebf0022d868937cff73d3a742\n"
    },
    {
      "commit": "1f7624c3bc41251ff72b1409441f541d992967c7",
      "tree": "d6f91bc54a8216358cfc7aa62aab2a615a41160f",
      "parents": [
        "2f52064dcfe5ebce5a998d30766ca079a366c920"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Apr 13 21:17:17 2016 +0000"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Apr 13 21:17:17 2016 +0000"
      },
      "message": "Revert \"Remove the no-longer-needed F/I and D/J alias.\"\n\nThis reverts commit 2f52064dcfe5ebce5a998d30766ca079a366c920.\n\nReason:\n\nArrays.sort() returns wrong result on double[] and this CL is the most likely suspect. Rolling back to buy some time for careful analysis and debugging.\n\nChange-Id: I58223c42e95c2287520eef863fbcb738b0736d4d\n"
    },
    {
      "commit": "2f52064dcfe5ebce5a998d30766ca079a366c920",
      "tree": "4c49114f810e22e83d662f42705ac908d473b9f4",
      "parents": [
        "ec9a828fa4a4638d2d17124c4fa835f15c7c5589"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Apr 12 15:05:45 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Apr 12 19:25:42 2016 -0700"
      },
      "message": "Remove the no-longer-needed F/I and D/J alias.\n\nRationale:\nNow that our HIR is type clean (yeah!), we no longer have\nto conservatively assume F/I and D/J are aliased. This\nenables more accurate side effects analysis, with improvements\nin all clients, such a LICM.\n\nBUG\u003d22538329\n\nChange-Id: Iba1fb09ff063f31b5893f588aa6d0c5ab3b42f39\n"
    },
    {
      "commit": "0d5a281c671444bfa75d63caf1427a8c0e6e1177",
      "tree": "fd9bbe0f1c581bcc7c05bbfb2643ffe0b1fb014e",
      "parents": [
        "dd4cbcc924c8ba2a578914a4a366996693bdcd74"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 13 10:07:31 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sun Nov 15 12:16:41 2015 +0000"
      },
      "message": "x86/x86-64 read barrier support for concurrent GC in Optimizing.\n\nThis first implementation uses slow paths to instrument heap\nreference loads and GC root loads for the concurrent copying\ncollector, respectively calling the artReadBarrierSlow and\nartReadBarrierForRootSlow (new) runtime entry points.\n\nNotes:\n- This implementation does not instrument HInvokeVirtual\n  nor HInvokeInterface instructions (for class reference\n  loads), as the corresponding read barriers are not stricly\n  required with the current concurrent copying collector.\n- Intrinsics which may eventually call (on slow path) are\n  disabled when read barriers are enabled, as the current\n  slow path infrastructure does not support this case.\n- When read barriers are enabled, the code generated for a\n  HArraySet instruction always go into the array set slow\n  path for object arrays (delegating the operation to the\n  runtime), as we are lacking a mechanism to keep a\n  temporary register live accross a runtime call (needed for\n  the instrumentation of type checking code, which requires\n  two successive read barriers).\n\nBug: 12687968\nChange-Id: I14cd6107233c326389120336f93955b28ffbb329\n"
    },
    {
      "commit": "78e3ef6bc5f8aa149f2f8bf0c78ce854c2f910fa",
      "tree": "b8aa83bef462e20e2e7e09650e6c15d3a8d97fa6",
      "parents": [
        "6a5037eb3340e4c981fd7de3ff45167ee5b7fc82"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Wed Aug 12 13:43:29 2015 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Wed Aug 12 13:43:29 2015 +0100"
      },
      "message": "Add a GVN dependency \u0027GC\u0027 for garbage collection.\n\nThis will be used by incoming architecture specific optimizations. The\ndependencies must be conservative. When an HInstruction is created we\nmay not be sure whether it can trigger GC. In that case the\n\u0027ChangesGC\u0027 dependency must be set. We control at code-generation time\nthat HInstructions that can call have the \u0027ChangesGC\u0027 dependency\nset.\n\nChange-Id: Iea6a7f430009f37a9599b0a0039207049906e45d\n"
    },
    {
      "commit": "34c3ba93e74d14ab832297ff590cb76c3f0f519d",
      "tree": "c78f14c5971546b7f216b42b0d26f2a536867ddb",
      "parents": [
        "e07300b712f44397ecbfed1ef7f880686e46274a"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 20 14:08:59 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 20 17:09:24 2015 -0700"
      },
      "message": "Fix broken tests.\n\nRationale:\n  (1) volatile field write/read need to apply to all\n      to comply with Java memory model\n  (2) clinit only needs only the write\n  (3) added conservative assumptions to memory barrier\n      (nothing broke, but this seems better)\n\nChange-Id: I37787ec8f3f2c8d6166a94c57193fa4544ad3372\n"
    },
    {
      "commit": "854a02b1b488327f80c544ca1119b386b8715c26",
      "tree": "7f48f01a7624d07b0c24bf589308673dcb05683c",
      "parents": [
        "8ae3588989ea99d8c60f885e3d830e6e0c87ff5f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jul 14 16:07:00 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 20 10:25:26 2015 -0700"
      },
      "message": "Improved side effect analysis (field/array write/read).\n\nRationale:\nTypes (int, float etc.) and access type (field vs. array)\ncan be used to disambiguate write/read side-effects analysis.\nThis directly improves e.g. dead code elimination and licm.\n\nChange-Id: I371f6909a3f42bda13190a03f04c4a867bde1d06\n"
    }
  ]
}
