)]}'
{
  "log": [
    {
      "commit": "cd09e1f4f9902b82fa62cb2da984ea499e3b2d70",
      "tree": "535f7f75849af30b67c560804125ead95909d72b",
      "parents": [
        "72a3f1da3a300b486626b066e33280108b5ce994"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 24 15:02:40 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 27 19:02:34 2017 +0000"
      },
      "message": "Fix stats reporting over 100% methods compiled.\n\nAdd statistics for intrinsic and native stub compilation\nand JIT failing to allocate memory for committing the\ncode. Clean up recording of compilation statistics.\n\nNew statistics when building aosp_taimen-userdebug boot\nimage with --dump-stats:\n  Attempted compilation of 94304 methods: 99.99% (94295) compiled.\n  OptStat#AttemptBytecodeCompilation: 89487\n  OptStat#AttemptIntrinsicCompilation: 160\n  OptStat#CompiledNativeStub: 4733\n  OptStat#CompiledIntrinsic: 84\n  OptStat#CompiledBytecode: 89478\n  ...\nwhere 94304\u003d89487+4733+84 and 94295\u003d89478+4733+84.\n\nTest: testrunner.py -b --host --optimizing\nTest: Manually inspect output of building boot image\n      with --dump-stats.\nBug: 69627511\nChange-Id: I15eb2b062a96f09a7721948bcc77b83ee4f18efd\n"
    },
    {
      "commit": "ca6fff898afcb62491458ae8bcd428bfb3043da1",
      "tree": "195a6b16d3a4b34acc2faf91ce56f448efb15e07",
      "parents": [
        "aa7273e56fbafc2692c8d20a31b50d2f4bdd2aa1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 03 14:49:14 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 06 17:53:50 2017 +0100"
      },
      "message": "ART: Use ScopedArenaAllocator for pass-local data.\n\nPasses using local ArenaAllocator were hiding their memory\nusage from the allocation counting, making it difficult to\ntrack down where memory was used. Using ScopedArenaAllocator\nreveals the memory usage.\n\nThis changes the HGraph constructor which requires a lot of\nchanges in tests. Refactor these tests to limit the amount\nof work needed the next time we change that constructor.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Build with kArenaAllocatorCountAllocations \u003d true.\nBug: 64312607\nChange-Id: I34939e4086b500d6e827ff3ef2211d1a421ac91a\n"
    },
    {
      "commit": "a290160f74ee53c0ffb51c7b3ac916d239c9556a",
      "tree": "0bfc9728ccee68dbd359b023319423f703448aac",
      "parents": [
        "86d244ec33f333b32301a9ee09088300c8544a7b"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Sep 21 13:50:52 2017 +0200"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Oct 05 11:43:34 2017 +0200"
      },
      "message": "MIPS32R2: Share address computation\n\nFor array accesses the element address has the following structure:\nAddress \u003d CONST_OFFSET + base_addr + index \u003c\u003c ELEM_SHIFT\n\nThe address part (index \u003c\u003c ELEM_SHIFT) can be shared across array\naccesses with the same data type and index.\n\nFor example, in the following loop 5 accesses can share address\ncomputation:\n\nvoid foo(int[] a, int[] b, int[] c) {\n  for (i...) {\n    a[i] \u003d a[i] + 5;\n    b[i] \u003d b[i] + c[i];\n  }\n}\n\nTest: test-art-host, test-art-target\nChange-Id: Id09fa782934aad4ee47669275e7e1a4d7d23b0fa\n"
    }
  ]
}
