)]}'
{
  "log": [
    {
      "commit": "f66b67f50171df13f6e56938a86286e47ced406e",
      "tree": "f708075c63f7d42c85feceede391185b50f0168d",
      "parents": [
        "b38988a227534ae17045dadedc24d2131d59b42d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 28 13:32:18 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 28 14:12:35 2018 +0100"
      },
      "message": "Merge basic arithmetic tests.\n\nAnd remove obsolete \"doThrow\" statements.\n\nTest: testrunner.py --host -t 411-optimizing-arith\nChange-Id: Ie44374c3ed007c7ffd0462ae4e8eef767bb28863\n"
    },
    {
      "commit": "6a92a033c33e383541d77607fbe8cd982875d13d",
      "tree": "11ede9dc975d1c79751ce2012a4956325df24481",
      "parents": [
        "b65eb5058dd6178d329e51e9dfd6d8cf58c6a0bb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 23 12:15:01 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 27 16:18:05 2015 +0100"
      },
      "message": "Cosmetic changes in ART run-tests.\n\nPerform a copyright headers clean up mostly.\n\nChange-Id: I26c855b2f54d0887676d9b9b8281b14b7978ab29\n"
    },
    {
      "commit": "9574c4b5f5ef039d694ac12c97e25ca02eca83c0",
      "tree": "2ad3cb7ffaf3579b9ca2a7bb0d7d7e99b3c758b6",
      "parents": [
        "59321e0e10ea09694efecf6154704e2743b9bffd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 12 13:19:37 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 12 13:55:36 2014 +0000"
      },
      "message": "Implement and/or/xor in optimizing.\n\nChange-Id: I7cf6da1fd334a7177a5580931b8f174dd40b7cec\n"
    },
    {
      "commit": "2e07b4f0a84a7968b4690c2b1be2e2f75cc6fa8e",
      "tree": "2fc5c75594b2cf8be1d6bd295d36c627af1651fe",
      "parents": [
        "02567379e7099682345fd59d45a23e17711c9ddd"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 23 18:12:09 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 24 11:22:59 2014 +0100"
      },
      "message": "Revert \"Revert \"Implement long negate instruction in the optimizing compiler.\"\"\n\nThis reverts commit 30ca3d847fe72cfa33e1b2473100ea2d8bea4517.\n\nChange-Id: I188ca8d460d55d3a9966bcf31e0588575afa77d2\n"
    },
    {
      "commit": "30ca3d847fe72cfa33e1b2473100ea2d8bea4517",
      "tree": "a66582c2cb6026be2f59ba66ff437429b67bbe44",
      "parents": [
        "46fdec13b6dcaf932aa9fb1338f32df01aa0d959"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 23 18:07:44 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 23 18:07:44 2014 +0100"
      },
      "message": "Revert \"Implement long negate instruction in the optimizing compiler.\"\n\nThis reverts commit 66ce173a40eff4392e9949ede169ccf3108be2db.\n"
    },
    {
      "commit": "66ce173a40eff4392e9949ede169ccf3108be2db",
      "tree": "552bc6275388c3bc6ecd4f549ffcd1422c020f82",
      "parents": [
        "e2b2cbf8bffdf9ee3ece487fde9ac78652b4abaf"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 23 16:38:33 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 23 17:08:48 2014 +0100"
      },
      "message": "Implement long negate instruction in the optimizing compiler.\n\n- Add support for the neg-long (long integer two\u0027s\n  complement negate) instruction in the optimizing compiler.\n- Add a 64-bit NEG instruction (negq) to the x86-64\n  assembler.\n- Generate ARM, x86 and x86-64 code for integer HNeg nodes.\n- Put neg-related tests into test/415-optimizing-arith-neg.\n\nChange-Id: I1fbe9611e134408a6b8745d1df20ab6ffa5e50f2\n"
    },
    {
      "commit": "b5bfa96ff20e86316961327dec5c859239dab6a0",
      "tree": "c37c4260f59a5eb79b33e3a81142eefc7bc49390",
      "parents": [
        "46bf5e0759e80bbe69130d6731a95fd07e10507c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 21 18:02:24 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Oct 22 15:20:25 2014 +0100"
      },
      "message": "Add multiplication for floats/doubles in optimizing compiler\n\nChange-Id: I61de8ce1d9e37e30db62e776979b3f22dc643894\n"
    },
    {
      "commit": "b762d2ebf9dc604561d9915c96b377235c94960c",
      "tree": "aa6060b282db511651908d232a6b16ecbb22b755",
      "parents": [
        "4ff20eba94a2519e5bac57b5f92e04741ea90141"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 22 10:11:06 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Oct 22 10:11:06 2014 +0100"
      },
      "message": "Various fixes related to integer negate operations.\n\n- Emit an RSB instruction for HNeg nodes in the ARM code\n  generator instead of RSBS, as we do not need to update the\n  condition code flags in this case.\n- Simply punt when trying to statically evaluate a long\n  unary operation, instead of aborting.\n- Move a test case to the right place.\n\nChange-Id: I35eb8dea58ed35258d4d8df77181159c3ab07b6f\n"
    },
    {
      "commit": "88cb1755e1d6acaed0f66ce65d7a2a4465053342",
      "tree": "6ffdd07aa75a38eae9376bd95d0991a789cd624c",
      "parents": [
        "1e642b5e5b2958ffc1653f5f42f2d091bbd8549e"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Oct 20 16:36:47 2014 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Oct 21 13:48:32 2014 +0100"
      },
      "message": "Implement int negate instruction in the optimizing compiler.\n\n- Add support for the neg-int (integer two\u0027s complement\n  negate) instruction in the optimizing compiler.\n- Add a HNeg node type for control-flow graphs and an\n  intermediate HUnaryOperation base class.\n- Generate ARM, x86 and x86-64 code for integer HNeg nodes.\n\nChange-Id: I72fd3e1e5311a75c38a8cb665a9211a20325a42e\n"
    },
    {
      "commit": "34bacdf7eb46c0ffbf24ba7aa14a904bc9176fb2",
      "tree": "e8ed8e40c5f7896a9ac01bf7dcc2e56f40cfc804",
      "parents": [
        "7f758228f7904d2f65f06bfbd2b8ecbb8e8c6a9d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Oct 07 20:23:36 2014 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Oct 17 11:46:45 2014 +0100"
      },
      "message": "Add multiplication for integral types\n\nThis also fixes an issue where we could allocate a pair register even if\none of its parts was already blocked.\n\nChange-Id: I4869175933409add2a56f1ccfb369c3d3dd3cb01\n"
    }
  ]
}
