)]}'
{
  "log": [
    {
      "commit": "3db70689e3e1c92344d436a8ea4265046bdef449",
      "tree": "3db08743e968062ed5bdc143233cdb3c4564696b",
      "parents": [
        "1650dafad62578a1766bd617d78458a4cf1e2a9a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 26 15:12:03 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 27 12:56:39 2018 -0800"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles compiler.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I5cdfe73c31ac39144838a2736146b71de037425e\n"
    },
    {
      "commit": "d99f203eab7eb310f8326f2739fdf44cd0025679",
      "tree": "71107b138cd56472c77f664ee3c8320a83c5b279",
      "parents": [
        "6fcf35bc06b1eb88080863b3bd8f7e16ca099910"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Apr 06 15:24:35 2018 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Apr 06 16:10:22 2018 -0700"
      },
      "message": "Count switch as branch.\n\nRationale:\nBuilder heuristics bail for method without branches. A method with a\nswitch should not be discarded that easily.\n\nBoot size delta (oat files, sailfish arm64): + 16488 bytes\n\nTest: test-art-host,target\nBug: b/77652521\nChange-Id: I6f90fcd65263e85024d8a268bcd8bfa739af2c6f\n"
    },
    {
      "commit": "312f3b2fd0094c028a7d243b116947a35a745806",
      "tree": "3d7ec049ded98c489098c87250c75e3f711f8290",
      "parents": [
        "0a3d5eb2ff9e70fa5785638da938439835d0337e"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Mar 19 08:39:26 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Mar 19 11:02:48 2018 -0700"
      },
      "message": "Move some remaining dex utilities\n\nThere were several utilities related to building/walking/testing dex\nfiles that were not in libdexfile.  This change consolidates these.\n\nBug: 22322814\nTest: make -j 50 test-art-host\nChange-Id: Id76e9179d03b8ec7d67f7e0f267121f54f0ec2e0\n"
    },
    {
      "commit": "9e734c7ab4599d7747a05db0dc73c7b668cb6683",
      "tree": "dce1d1993734a947fb2e6f626eb1b425cb72143b",
      "parents": [
        "b496af808eaf3af5ebac50aef4fbec33323b5016"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Jan 04 17:56:19 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Jan 05 11:07:19 2018 -0800"
      },
      "message": "Create dex subdirectory\n\nMove all the DexFile related source to a common subdirectory dex/ of\nruntime.\n\nBug: 71361973\nTest: make -j 50 test-art-host\nChange-Id: I59e984ed660b93e0776556308be3d653722f5223\n"
    },
    {
      "commit": "dc578c7e47b2db623b382932bfe4dbc6dce41aa4",
      "tree": "409e6dc0c338bf75c1ce55acfae91fe86ef3028e",
      "parents": [
        "1d32a16f93d8bb479523fd237277ecbbff5bf1f4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 27 11:51:45 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 27 13:24:11 2017 -0800"
      },
      "message": "Move dex exception helpers to their own file and use dex accessor\n\nAlso change the input argument to be a code item accessor\ninstead of a code item pointer. This removes the dependency on\nthe code item layout.\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: If75a168d0b5a77d08fa3c6ba38d00705158911db\n"
    },
    {
      "commit": "808c7a57bb913b13c22884f57cdacd59bf1fdb3f",
      "tree": "d7f0d7cabaac5a7646c25bae584a82a9aa279cc0",
      "parents": [
        "64bae9fb677aa0e2406d13ea9f8ebaa92e16f978"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 15 11:19:33 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 22 09:41:17 2017 -0800"
      },
      "message": "Make CodeItem fields private\n\nMake code item fields private and use accessors. Added a hand full of\nfriend classes to reduce the size of the change.\n\nChanged default to be nullable and removed CreateNullable.\nCreateNullable was a bad API since it defaulted to the unsafe, may\nadd a CreateNonNullable if it\u0027s important for performance.\n\nMotivation:\nHave a different layout for code items in cdex.\n\nBug: 63756964\nTest: test-art-host-gtest\nTest: test/testrunner/testrunner.py --host\nTest: art/tools/run-jdwp-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX32\u0027 --debug\n\nChange-Id: I42bc7435e20358682075cb6de52713b595f95bf9\n"
    },
    {
      "commit": "57943810cfc789da890d73621741729da5feaaf8",
      "tree": "367677a982a45af98ffe3e79543615875e8550b4",
      "parents": [
        "d5153627778e71ef68b510ce03c77467fa4d85bd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 06 21:39:13 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 07 16:26:11 2017 -0800"
      },
      "message": "ART: Replace base/logging with android-base/logging\n\nReplace wherever possible. ART\u0027s base/logging is now mainly VLOG\nand initialization code that is unnecessary to pull in and makes\nchanges to verbose logging more painful than they have to be.\n\nTest: m test-art-host\nChange-Id: I3e3a4672ba5b621e57590a526c7d1c8b749e4f6e\n"
    },
    {
      "commit": "dbb9aef046301940d0b253c918a5c78b277330ba",
      "tree": "8803fa971c0200d56aa8eba7386374eecda01c17",
      "parents": [
        "65e0432cdaf3ee170045b21943c24eae5d6a0357"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 23 10:44:11 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 01 13:03:29 2017 +0000"
      },
      "message": "Log at places we fail to compile.\n\nUseful when diagnosing some compiler issues / limitations.\n\nTest: test.py\n\nChange-Id: I8759d0e78b0682b300ddcadfe02793432cab2036\n"
    },
    {
      "commit": "92f7f3ce3b01f7c7df1c15b81c900e087248093f",
      "tree": "37647ac824e450f80d752539cabbe631ba795c75",
      "parents": [
        "5dcb0d2cabe9d67987a6a7477fb124cef92abefb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 31 11:38:30 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 15 14:29:52 2017 +0000"
      },
      "message": "Use intrinsic codegen for compiling intrinsic methods.\n\nWhen compiling an intrinsic method, generate a graph that\ninvokes the same method and try to compile it. If the call\nis actually intrinsified (or simplified to other HIR) and\nyields a leaf method, use the result of this compilation\nattempt, otherwise compile the actual code or JNI stub.\n\nNote that CodeGenerator::CreateThrowingSlowPathLocations()\nactually marks the locations as kNoCall if the throw is not\nin a catch block, thus considering some throwing methods\n(for example, String.charAt()) as leaf methods.\n\nWe would ideally want to use the intrinsic codegen for all\nintrinsics that do not generate a slow-path call to the\ndefault implementation. Relying on the leaf method is\nsuboptimal as we\u0027re missing out on methods that do other\ntypes of calls, for example runtime calls. This shall be\nfixed in a subsequent CL.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 67717501\nChange-Id: I640fda7c22d4ff494b5ff77ebec3b7f5f75af652\n"
    },
    {
      "commit": "3da1d0f0881e130ebab95e2d06abe7d2beff57f0",
      "tree": "00b655e97955b317e995e4884ac726a1146b489d",
      "parents": [
        "5552e535951f2feb10bfd492b8abb54bd41a9f4b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 06 20:02:24 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 13 09:18:38 2017 -0800"
      },
      "message": "Use CodeItemAccessor helpers for method verifier\n\nCreate a code_item_accessor_ in the verifier and replace the existing\ncode_item field. Added some handling in DexFile to deal with\ntry/catch items.\n\nBug: 63756964\nTest: test-art-host\nChange-Id: I4e073c9cb29f94518f0016fccbe1628185884df4\n"
    },
    {
      "commit": "0021feb36ca7021e2c255e6eaf16b967180290c6",
      "tree": "43f1ce8f6d91630a831d03b51a465d57c2a47119",
      "parents": [
        "550c0aee52bf8981dfe1d22d3b661d61e80cc7ee"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 07 00:08:52 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 07 13:15:41 2017 -0800"
      },
      "message": "Delete CodeItemIterator\n\nReplace uses with DexInstructionIterator.\n\nBug: 63756964\nTest: test-art-host-gtest\n\nChange-Id: I28c839c372edcb60583867355d46b14f8752d41b\n"
    },
    {
      "commit": "69d310e0317e2fce97bf8c9c133c5c2c0332e61d",
      "tree": "fba05a1530e6fc4a2e6950303c1f7c6b0ffbb936",
      "parents": [
        "e764d2e50c544c2cb98ee61a15d613161ac6bd17"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 09 14:12:23 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 11 09:44:26 2017 +0100"
      },
      "message": "Use ScopedArenaAllocator for building HGraph.\n\nMemory needed to compile the two most expensive methods for\naosp_angler-userdebug boot image:\n  BatteryStats.dumpCheckinLocked() : 21.1MiB -\u003e 20.2MiB\n  BatteryStats.dumpLocked(): 42.0MiB -\u003e 40.3MiB\nThis is because all the memory previously used by the graph\nbuilder is reused by later passes.\n\nAnd finish the \"arena\"-\u003e\"allocator\" renaming; make renamed\nallocator pointers that are members of classes const when\nappropriate (and make a few more members around them const).\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 64312607\nChange-Id: Ia50aafc80c05941ae5b96984ba4f31ed4c78255e\n"
    },
    {
      "commit": "de4b08ff24c330d5b36b5c4dc8664ed4848eeca6",
      "tree": "79835478b8b631bbf006b5e023704f3cf53bda7c",
      "parents": [
        "c9267c48979698a9217760c914aba13ea20b5990"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 10 14:13:41 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 12 17:54:49 2017 -0700"
      },
      "message": "Reduce quicken info size\n\nMove the quicken info from using a map of \u003cdex pc, index\u003e to an array\nof indices. Removed leb encoding since it is harmful for 16 bit\nindices. The map is indexed by the dequickenable instruction index\nfrom the start of the code item.\n\nNumbers for a certain large app compiled with quicken filter:\ndex2oat native alloc: 85345936B -\u003e 81527072B\noat file size: 9068968B -\u003e 8659368B\nvdex file size: 90479120B -\u003e 86321184B\n\nBug: 63467744\nBug: 36457259\nTest: test-art-host\n\n(cherry picked from commit 959f348acabc48efbb18c547dad6300c0f610c1c)\n\nChange-Id: I85546d8cd409cbf96140cbdddabd7e228797b9e3\n"
    },
    {
      "commit": "7d157fcaaae137cc98dbfb872aa1bdc0105a898f",
      "tree": "2b7d8affda23908e5bfbfaad446079db2ef1ee09",
      "parents": [
        "58d7ddc678e5bcd2364c24c4bdc8a3cfbcfc5358"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 10 16:29:23 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 11 11:14:54 2017 +0100"
      },
      "message": "Clean up some uses of \"auto\".\n\nMake actual types more explicit, either by replacing \"auto\"\nwith actual type or by assigning std::pair\u003c\u003e elements of\nan \"auto\" variable to typed variables. Avoid binding const\nreferences to temporaries. Avoid copying a container.\n\nTest: m test-art-host-gtest\nChange-Id: I1a59f9ba1ee15950cacfc5853bd010c1726de603\n"
    },
    {
      "commit": "86ea7eeabe30c98bbe1651a51d03cb89776724e7",
      "tree": "01702f6df5c39925b354a3152dd04289e7d97062",
      "parents": [
        "0cb5c86b7021e70cbf584c1455aad1ef383af786"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Feb 16 09:26:07 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 04 11:21:20 2016 +0100"
      },
      "message": "Build dominator tree before generating HInstructions\n\nSecond CL in the series of merging HGraphBuilder and SsaBuilder. This\npatch refactors the builders so that dominator tree can be built\nbefore any HInstructions are generated. This puts the SsaBuilder\nremoval of HLoadLocals/HStoreLocals straight after HGraphBuilder\u0027s\nHInstruction generation phase. Next CL will therefore be able to\nmerge them.\n\nThis patch also adds util classes for iterating bytecode and switch\ntables which allowed to simplify the code.\n\nBug: 27894376\nChange-Id: Ic425d298b2e6e7980481ed697230b1a0b7904526\n"
    }
  ]
}
