)]}'
{
  "log": [
    {
      "commit": "3f1dcd39e134d994ac88dcc4f30ec8cabcd8decf",
      "tree": "365d20ad6b68ff1dbd4903764b63880324136e4d",
      "parents": [
        "0f0a4e40667c87fbd4ae5480eddbfd701bfabfa2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 28 09:39:56 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 10:32:25 2019 -0800"
      },
      "message": "ART: Move dex structs into own header\n\nSeparating out the structs from DexFile allows them to be forward-\ndeclared, which reduces the need to include the dex_file header.\n\nBug: 119869270\nTest: m\nChange-Id: I32dde5a632884bca7435cd584b4a81883de2e7b4\n"
    },
    {
      "commit": "9b031f7e4834b263ae531409a9f6c82cfdc89477",
      "tree": "4b5fdfc3ecc12b5b7e32959bec0c26595b87d2ab",
      "parents": [
        "c71f38bdf7dca39a070ba25d436edcd758551f42"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 04 11:03:34 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 09 14:38:45 2018 -0700"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles smaller subdirectories.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I81c8f3396b9922684b68e9f3d8fccefe364f1279\n"
    },
    {
      "commit": "49ca869b7a79eaa7220eb61874fa79f1e45ba832",
      "tree": "c7e5dc76e46304dc4f27afcbb57fcfcd944129dc",
      "parents": [
        "6bfbdc7fe3751fb6af6ff65493ab9e0f74ed5ca8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 24 09:34:49 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 28 18:02:30 2018 -0700"
      },
      "message": "Add trie based greedy prefix construction\n\nDex savings for top 99 APKs:\nTrie based: 4.82%\nGreedy: 4.68%\n\nAlgorithm is to continuously pick the prefix that saves the most\nbytes until there are no more savings.\n\nTest: test-art-host\nBug: 77709234\nBug: 112311352\n\nChange-Id: I686cfc35a1f17494294816493fb2a1107f3cd114\n"
    },
    {
      "commit": "cd2edfc99c07e958cd926ae61a74ee01a32666a2",
      "tree": "fb71bb569db20bb35f771388be5ae537835951d2",
      "parents": [
        "19759b28bc9dad1581c207d76227eb74fc8eebcb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Aug 19 15:38:32 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 23 15:39:43 2018 -0700"
      },
      "message": "Add measurement of linkage pairs\n\nPrint most commonly used linkage pairs to see if it efficient to add\na table.\n\nAlso some random cleanups.\n\nBug: 77709234\nBug: 77808483\nTest: test-art-host\n\nChange-Id: Ibb4edc06b2ae922a219e4edc057e3361ac357346\n"
    },
    {
      "commit": "3782c870e9c563bef11981ab61aee6c112c329b1",
      "tree": "5c85849a69025979945e9827491c5e097b1aead0",
      "parents": [
        "92a97be0450977e40b969dec8fde66caf4aa8287"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 14 19:25:47 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 14 20:19:37 2018 -0700"
      },
      "message": "Update bytecode experiments\n\nAdd a constexpr boolean for always storing the invoke result in r0.\n\nCleaned up instruction blob counting to be correct for added prefix\ninstructions.\n\nBug: 77808483\nBug: 77721545\nTest: test-art-host\n\nChange-Id: If03451e879cccb30a544a1bb597698fa658e032e\n"
    },
    {
      "commit": "8a0ede9be3a763e12557eead5c8312769687a9de",
      "tree": "66c0a7ccfbe9122c7183bf5ed3786387ad62d170",
      "parents": [
        "33602449cf4e315330a460d8dbccdbda6bdef7da"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 12 10:24:04 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 16 18:25:55 2018 -0700"
      },
      "message": "Add analysis for move-result target\n\nAdded analysis for target of move-result. Removed useless counters.\n\nAdded verbosity options to reduce spam:\n-0: Print only summary\n-1: Print summary and distribution\n-2: Print all the things\n\nTest: test-art-host\nBug: 77721545\n\nChange-Id: Ib002754d4f50fdf4a3d2e57c83d565dc8d64a054\n"
    },
    {
      "commit": "fbc80036e833891b91706bbd9f5c7adb40f97582",
      "tree": "bfea252bc25bc4ff78fb78d2499b6816f0c41a3a",
      "parents": [
        "f3c3e83d3a98bd3ca388fca32f1c277a7945e1e3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 11 11:20:08 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 11 11:20:20 2018 -0700"
      },
      "message": "Refactor InstructionBuilder into NewRegisterInstructions experiment\n\nReduces the amount of boiler plate code.\n\nBug: 77721545\nTest: test-art-host\n\nChange-Id: Ib5baf7768ba5f8e6aa6c8644b5aabbd35e834df5\n"
    },
    {
      "commit": "b0741fc084ebca6f0dd7942fda1e5236fd916022",
      "tree": "23b64d702e03a413dce4db22e06c73181f628939",
      "parents": [
        "b808ddca3d4816132f6f05bebcc6676144b1f6b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jul 07 13:54:44 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jul 07 14:12:27 2018 -0700"
      },
      "message": "Fix typo in INSTANCE_OF bytecode analysis\n\nShould have been VRegA_22c instead of VRegB_22c.\n\nTest: manual\nChange-Id: I0799465a65b45f64eb5cd229c2cf96959067cc97\n"
    },
    {
      "commit": "12dd8a90af1f1cfae172f6d9c3443808c4fb6e40",
      "tree": "452b6f4de6b9054ede8528c1e3ea97933e642c75",
      "parents": [
        "d20a4d76c33cd6e609ad6b1b3cde09fdcbdde05c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 12 11:17:22 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 29 10:45:37 2018 -0700"
      },
      "message": "Add bytecode conversion experiments\n\nAdd a few new instructions and measure savings:\ninvoke-xx-[1-4]-[move-result].\niget/set-this\nnew-instance-invoke-this\nif-eqz4\nif-nez4\netc..\n\nCumulative Dex bytecode savings are ~14% of the Dex size.\n\nTest: test-art-host\nBug: 77721545\n\nChange-Id: Ibe2b04614e2c5782612b515fbb7f77dbcf9eb66c\n"
    }
  ]
}
