)]}'
{
  "log": [
    {
      "commit": "693bfbfce9867f19573d352bd754c81c2f0f91a4",
      "tree": "3b5880a4073869fc34d258b0778350a7907d08f8",
      "parents": [
        "4720046dfa1c3f396ac7dbcd3fe6179c1230bed1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 10 12:23:31 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 10 12:25:30 2017 -0800"
      },
      "message": "ART: Fix test dependencies and code\n\nLet profman target test correctly depend on profmand.\n\nCreate a debug version of dexlayout to be used in dexlayout_test.\nFix a bug in ProfileCompilationInfo referring to a nonexisting\nelement.\n\nTest: m test-art-host\nChange-Id: If2220f26c37c25a600399b2637f081c62cae9718\n"
    },
    {
      "commit": "f95a75e83782eb2bd6d778db516ad66388542517",
      "tree": "a4c9d4628a05284699990bbd374497e7b0f01da7",
      "parents": [
        "f404dda8a48f2fac24ca3525257db7bc9157ba61"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 03 15:25:52 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 06 11:51:45 2017 -0800"
      },
      "message": "Refactor compact dex writing\n\nRefactor compact dex writing into compact_dex_writer.cc, change\ndexlayout writing logic to use the header structs instead of having\nan array with indicies.\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: I58879aefc1672c965789ee539450986c9d830c82\n"
    },
    {
      "commit": "5f317039d87d74f25d3b0a442072557086742d17",
      "tree": "6beae56f543d234b49a2f973dcbeb5f6f0bd2b90",
      "parents": [
        "72627a5f675b1c664beb2ad33d60a1c8dca80826",
        "2b2bef245d5b2c6faa2d6f36da14866b2d8f5e4f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 03 15:56:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 03 15:56:22 2017 +0000"
      },
      "message": "Merge \"Refactor DexInstructionIterator\""
    },
    {
      "commit": "2b2bef245d5b2c6faa2d6f36da14866b2d8f5e4f",
      "tree": "7948ee1d32e211198a595bb7ed35558d22838da8",
      "parents": [
        "f199f1d3a9816edf9282766a8874d894d7bf87c3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 26 17:10:19 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 01 15:36:21 2017 -0700"
      },
      "message": "Refactor DexInstructionIterator\n\nAdd a way to get the dex PC for the \"for each\" use case.\n\nBug: 67104794\nTest: test-art-host\nChange-Id: I144c459c9a2a03ec8d56842280338d1f7ce1caf0\n"
    },
    {
      "commit": "ca4e1014634aefb9c2dbb431d6b312e4ad912ca2",
      "tree": "14536ce9ee60c1c55c55d20d99845128dbfbc548",
      "parents": [
        "7e26cc3b2c1c23d4e03961dfec70bf24d0b6e06c",
        "891a50e9dc0f02ee34bd7348f80b621249153af5"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Nov 01 20:30:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 01 20:30:03 2017 +0000"
      },
      "message": "Merge \"Separate file utilities from utils.cc\""
    },
    {
      "commit": "891a50e9dc0f02ee34bd7348f80b621249153af5",
      "tree": "6af57b3aa8961ed8e6cd39fdf5a0ac335905b4c6",
      "parents": [
        "13e6f2935d67742e9eec14b412d33bf71b20697b"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Oct 27 17:01:07 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Nov 01 11:39:19 2017 -0700"
      },
      "message": "Separate file utilities from utils.cc\n\nReduce the dependencies from utils.cc to arch/ subdirectories, etc.\n\nBug: 22322814\nTest: make test-art-host\nChange-Id: I4decd15ff4ec460735bfb58cebb1c6a1bf32b68f\n"
    },
    {
      "commit": "176190cbf621f867b0cfcabdec8645fc97065567",
      "tree": "dd0d797e7acb1ef3bfdb450b168fc7c6db318225",
      "parents": [
        "62540e3cc58abde95e147210d584614651d858b5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 31 09:58:07 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 01 10:34:30 2017 -0700"
      },
      "message": "Make SafeDexInstructionIterator more robust\n\nMake operator++ set the error state when if incrementing would go\npast the end of the code region.\n\nAdded test in CodeItemOverrun.\n\nBug: 67104794\nTest: test-art-host\n\nChange-Id: I7b27a1ddb60aaae08ae9ed4ba8762ce2a7746770\n"
    },
    {
      "commit": "af7c9028905ccc0bb876e07dbe06921a80be9ebd",
      "tree": "53d7b80fb299e0a34b9951610740935f6f3ca802",
      "parents": [
        "460e09c5a5a09937825fe101d260d5c917144369"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 27 09:42:46 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 30 16:12:55 2017 -0700"
      },
      "message": "Fix DexInstructionIterator overrun bug\n\nHandle cases where the dex instructions can go past the end of the\ncode item in dexlayout.\n\nSince dexlayout runs before method verification, we need to be\ncareful to not go past the end of the code item.\n\nAdded test.\n\nBug: 67104794\nTest: test-art-host\n\nChange-Id: Idf7d51344659b2c75207bdf444e39f271feb8d3a\n"
    },
    {
      "commit": "2ef3b88203961af0022540ea5893bfe91cab14b7",
      "tree": "da815b15e6cc68ba0b3a79f9b5cceffe8ee891a4",
      "parents": [
        "0aff0fffa828a1a1920a3db10599642b45b2c68e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 20 19:50:39 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 26 11:03:41 2017 -0700"
      },
      "message": "Re-generate dex IR to verify dex file\n\nInstead of using the existing IR, re-generate it to catch possible\nbugs writing the output dex.\n\nTest: test-art-host\nBug: 63756964\nChange-Id: Ib63f3137f5807ee5de1b05f8278137a3b3a3aee0\n"
    },
    {
      "commit": "24066ec509949f777a4c6e61ef631de33bfdc28a",
      "tree": "5620a9f0ef3f476ada8b1763a1854877d136f022",
      "parents": [
        "31275df5ea1b91ed668618d6ec64a76d67cee73c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Oct 21 16:01:08 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 26 09:35:02 2017 -0700"
      },
      "message": "Re-enable dex verifier after dexlayout\n\nDisabled class def ordering since it violates the spec regarding\nsuperclasses occurring before subclasses. This fixes a dex verifier\nfailure.\n\nAdjust the data section size based on string data and code item\ndiff. This fixes dex2oat_image_test failing dex file verification.\n\nFixed handling of unreference annotations. Previously, these would\nnot get written back out. This resulted the dex file verifier\nprematurely ending for annotations during CheckIntraSectionIterate\nand then complaining about non zero padding (that was actually an\nannotation).\n\nTest: test-art-host\nBug: 63756964\nBug: 68208404\n\nChange-Id: Id2b9b360640c360ac562826e9193971f7bb30eea\n"
    },
    {
      "commit": "6291ac84088ba32888d6b7d714f9965eeb82d345",
      "tree": "af7a80adcced7432125398be36657a5e8e651ee5",
      "parents": [
        "358347ae8fcf662def560367fe35a9ed9ee3b187",
        "b4156286f889c7dea1fc3e3db85ecfcc53880ac3"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Oct 24 13:25:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 24 13:25:55 2017 +0000"
      },
      "message": "Merge \"Handle de-duped CodeItems in dexlayout\""
    },
    {
      "commit": "b4156286f889c7dea1fc3e3db85ecfcc53880ac3",
      "tree": "f05aac1dd50512abe6afd265b7d8425d3ca15320",
      "parents": [
        "716f34dd5517d348fe7ce6626d1250c8853083c6"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 19 17:57:02 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Oct 23 20:52:56 2017 -0700"
      },
      "message": "Handle de-duped CodeItems in dexlayout\n\nDe-duplicated (shared) CodeItems were added to the layout structures\nmultiple times, resulting in multiple update of offsets and\nuninitialized data in the resulting dex files.\n\nBug: 67024225\nTest: make test-art-host\nChange-Id: I76ffd2cb52fe72eab3fb0dbf6ad8607951cee595\n"
    },
    {
      "commit": "9e842d3e7d6102d964178e36e5d596ca91895147",
      "tree": "0903b495d4742e17bd6f7d0b89dbf5bd67e8a93d",
      "parents": [
        "e4df8d98afd512e8ed0b7664b31856ab49edb13a",
        "603ccabb82511824a2a9d9531397005009a0e28a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 23 16:27:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 23 16:27:01 2017 +0000"
      },
      "message": "Merge \"Add basic support for writing cdex container in dexlayout\""
    },
    {
      "commit": "dfeec3a983c81e62fbfeb4eb81d4f58b65effd80",
      "tree": "fe80df785c35671790d13728d1f6d114278c43c2",
      "parents": [
        "59c5dfe792d3288c5df75a035f6614cb228d7352",
        "095c6c96236476b605b3ac672f6d2b8c151e9479"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 23 08:29:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 23 08:29:27 2017 +0000"
      },
      "message": "Merge \"Pass the verify flag to DexFileLoader utilities.\""
    },
    {
      "commit": "5929beb4994f55da3afdb58298225094f959976e",
      "tree": "c350c564fa39436c68f887cd741c75316af8bbea",
      "parents": [
        "6479e488e627c0e470e2068422316f6966d254f5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 20 23:24:10 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 20 23:34:00 2017 -0700"
      },
      "message": "Make libdexlayoutd actually have art debug flags\n\nPreviously it didn\u0027t, this caused DCHECKs to not happen. Disabled\ndex verifier for dexlayout since it fails for dex2oat_image_test\nnow that DCHECKs are actually run.\n\nThe failure is:\nCheck failed: output_dex_file !\u003d nullptr Failed to re-open output\nfile:Failure to verify dex file \u0027memory mapped file for\n.../core-oj-hostdex.jar\u0027: Out-of-bounds end of data subsection:\n4c56d1\n\nTest: test-art-host\nBug: 63756964\nChange-Id: I05a6617ffdf24fd45024a13576c2a5ff1fcd84a8\n"
    },
    {
      "commit": "603ccabb82511824a2a9d9531397005009a0e28a",
      "tree": "2c83d0e217b87f9ddb1d2e16085abb437a6d389d",
      "parents": [
        "6479e488e627c0e470e2068422316f6966d254f5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 20 14:34:28 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 20 18:03:48 2017 -0700"
      },
      "message": "Add basic support for writing cdex container in dexlayout\n\nPass compact dex level option to dexlayout and generate a file with\na compact dex header if it is enabled.\n\nAdded test in dex2oat_test.\n\nAdded logic to check for CompactDexFile header in\nDexFileLoader::OpenCommon.\n\nBug: 63756964\nTest: test-art-host-gtest-dex2oat_test\n\nChange-Id: Icfec03cdb64f71de900b92754ab4be3789c71cc3\n"
    },
    {
      "commit": "652e9628c18fc8771aa3406f6609257f011e59dd",
      "tree": "e047b426feb0aee56e9360385b2d22420481d57c",
      "parents": [
        "f0536a524bfa750c91d458bf777e517287b50186"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 19 21:58:01 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Oct 20 14:52:23 2017 +0000"
      },
      "message": "Revert \"Temporarily always enable dexlayout output verification.\"\n\nThis reverts commit 0f1530021934b5defd30ded0e19ee8aa80ae812a.\n\nTurn off the output verifier to save the double IR memory usage.\n\nBug: 67957356\nTest: make test-art-host\nChange-Id: I2077870124068aa5f2d43f2326055e95b2f8dd7e\n"
    },
    {
      "commit": "095c6c96236476b605b3ac672f6d2b8c151e9479",
      "tree": "fe04b7fe93e65efadd3f019dd1ecba4c2c40df18",
      "parents": [
        "b277aa1385f7f4593c9978d8106669142d158f4f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 19 13:59:55 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 20 14:22:52 2017 +0100"
      },
      "message": "Pass the verify flag to DexFileLoader utilities.\n\nRefactoring-only change.\n\nAlso remove unused DexFilerLoader::OpenMemory.\n\nbug: 30972906\nbug: 63920015\n\nTest: build.\n\nChange-Id: I7cd4b5787565ab1a3457ce2be6bb14657229c550\n"
    },
    {
      "commit": "aa6abb081cbe14ccd693459bf016b14627f58616",
      "tree": "3f7c8d392ef39c12e5ab902de3922115f312695e",
      "parents": [
        "776f0b98414fe0d996928e7dce982c93195fc113"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 12 08:25:11 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Oct 16 16:57:40 2017 +0000"
      },
      "message": "Fix dexlayout debug info printing\n\nParsing local info and position info made shared debug info print\nincorrectly.  Remove the dexlayout structs that represent the pre-parsed\nversions and print from the byte buffer.\n\nBug: 67664147\nTest: make test-art-host\nChange-Id: Iae33ae8ff486914d8d7a5973f81faaf3c95615a6\n"
    },
    {
      "commit": "79c87da9d4698ec58ece65af0065eebd55a1cfe0",
      "tree": "399797f37712da9d20829d5b5059b6c84943cb02",
      "parents": [
        "656e97f949df4081fba908113406b32915174502"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 10 11:54:29 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 11 14:47:06 2017 -0700"
      },
      "message": "Add DexFileLoader class\n\nAdded DexFileLoader class, moved functionality from DexFile there:\n- Multidex loading logic\n- DexFile opening logic for Zip and etc\n- Some other helpers\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: Ic3dfa458947d4b69912dea5cdd836e7e8f55061c\n"
    },
    {
      "commit": "9486eab7114f7d20f42030998406c2068e256121",
      "tree": "dca743f22e1e63411f91cbb22a2c423b9dfafa31",
      "parents": [
        "2a7b84ba85caa95f6bdb9ad5be3f93b2c742d366",
        "2ca278036432eefbdbf39502dfcfb7e38a54332c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 28 00:19:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 28 00:19:45 2017 +0000"
      },
      "message": "Merge changes Iec406b73,I18aa6aa5\n\n* changes:\n  Run bpfmt\n  Simplify Android.bp files\n"
    },
    {
      "commit": "2ca278036432eefbdbf39502dfcfb7e38a54332c",
      "tree": "8aa7ab585414f2b54186ee4285f2435be90de335",
      "parents": [
        "9389ae7309180f4dccc3c34e26798ed428f0d054"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 27 14:57:43 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 27 15:11:33 2017 -0700"
      },
      "message": "Run bpfmt\n\ncd art; find . -name \u0027*.bp\u0027 | xargs bpfmt -w\n\nTest: mmma art\nChange-Id: Iec406b734180313b98a58b99a776738772e63cc1\n"
    },
    {
      "commit": "1d2d4ff8570bb88d9d2d4633706fd7f6fb18d75e",
      "tree": "cbe67e8e9214828656314117121e8ce906a762ab",
      "parents": [
        "e5b35ed787fbfb388d162361310bae5b0e7682a7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Sep 23 16:11:06 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 27 11:51:53 2017 -0700"
      },
      "message": "Add DexInstructionIterator and use it a few places\n\nMotivation:\nWant to start abstracting away dex specific functionality to enable\nCompactDex. Adding an iterator will enable CompactDex iteration to\nwork differently than normal dex iteration.\n\nWill eventually replace CodeItemIterator.\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: I90e67c1a994b7698aaac0523a82816b0a003fbdc\n"
    },
    {
      "commit": "e2abbc604ce003c776c00ecf1293796bb4c4ac5a",
      "tree": "f7d124d1861cad2162c30dfe932bb4e1beaf41ef",
      "parents": [
        "7090dfe84f78b1928fcbdfd664d0dd9ea52633ff"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 15 11:59:26 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 11:36:24 2017 -0700"
      },
      "message": "ART: Move kDexNoIndex to dex_file_types.h\n\nDefine the constant with the types to allow lowering the dependency\non DexFile.\n\nTest: m\nChange-Id: I3c61421db45be96d2057e01b1a7825883d8bd178\n"
    },
    {
      "commit": "641a473912b3bcaaff2c71070611490b7c547cfc",
      "tree": "67bf5b2eaaeaf19c6cebac29984b49c19f172f9b",
      "parents": [
        "5555dd1df3c7f3aaea548c3b657b9325538e9780"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 24 13:21:35 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 25 08:59:29 2017 -0700"
      },
      "message": "ART: Fix reference-related warnings\n\nMake some parameters and locals references to avoid unnecessary\ncopies.\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: Idfed600c7c5492a80f72f51424253bcbea824a94\n"
    },
    {
      "commit": "5555dd1df3c7f3aaea548c3b657b9325538e9780",
      "tree": "41dc0a668aa007540ba9b576e7ece6474019735a",
      "parents": [
        "9e1fb35145bc3fdb36169f6b6717f981d2d102b1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 24 13:50:21 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 25 08:58:26 2017 -0700"
      },
      "message": "ART: Fix inefficent find/rfind\n\nUse character instead of string versions where possible.\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: Ifa0a68f17cf9fac5a8c15a6a1f1d085f0c8dcdd7\n"
    },
    {
      "commit": "2c30e4a2a2bd73c3e9d327d4b5d059b75cc0f798",
      "tree": "698286ee61f457069b5a53ca6869319b8d9e5acb",
      "parents": [
        "3157fc26d96951ff4acfb4feb4597e74a92da2a7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 23 11:31:32 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 23 16:06:00 2017 -0700"
      },
      "message": "ART: Remove art and art/runtime include_dir directives\n\nRemove some overly broad or unnecessary include directives. Fix up\ncode.\n\nTest: mmma art\nChange-Id: Ic2da319f39102d59566e780f3e15fe007a3c36d6\n"
    },
    {
      "commit": "120aa286ab6adf3e76a31bc61fb4e583e5158d71",
      "tree": "07f1546ce7a090af8c88110598920769bfb5e669",
      "parents": [
        "5bfead584f56b2a1cfb69f78c385965ec57f7e8b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Aug 05 16:03:03 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 14 17:47:25 2017 -0700"
      },
      "message": "Store layout info in dex files\n\nStore layout info for code sections inside of the oat file. This will\nbe used to advise the kernel when dex files are loaded in\na follow up CL.\n\nAdded unit test in dex2oat_test.\n\nBug: 63178181\nTest: test-art-host\n\n(cherry-picked from commit 75c5ed6e75f70002db5fa7c609137c04dd2bdf40)\n\nChange-Id: I4777506886bde42ff0affdac412a8395e8013a40\n"
    },
    {
      "commit": "8cf9cb386cd9286d67e879f1ee501ec00d72a4e1",
      "tree": "88e86e214b425e444760fe4e0ffeee677e1558a2",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 19 09:28:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 16:07:10 2017 -0700"
      },
      "message": "ART: Include cleanup\n\nLet clang-format reorder the header includes.\n\nDerived with:\n\n* .clang-format:\n BasedOnStyle: Google\n IncludeIsMainRegex: \u0027(_test|-inl)?$\u0027\n\n* Steps:\n find . -name \u0027*.cc\u0027 -o -name \u0027*.h\u0027 | xargs sed -i.bak -e \u0027s/^#include/ #include/\u0027 ; git commit -a -m \u0027ART: Include cleanup\u0027\n git-clang-format -style\u003dfile HEAD^\n manual inspection\n git commit -a --amend\n\nTest: mmma art\nChange-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02\n"
    },
    {
      "commit": "acc83d77cc99e6280391604ebd3e2e51d9a60b99",
      "tree": "1cc7bd5b7d33d9eb0bba0f4d7b0dd48c95b6e02e",
      "parents": [
        "6d2e76b421181ebb3a419b51bfc2d3243572a677"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jul 06 17:51:01 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jul 06 17:51:01 2017 -0700"
      },
      "message": "Improve string layout in dexlayout.\n\nAdds more strings to what dexlayout considers hot:\n  - A profiled class\u0027s superclass and interface class names\n  - The class names of accessed fields\n  - The class name, name, and shorty of methods accessed by clinits\n\nTODO: Gather memory numbers\n\nBug: 35800981\nTest: mm test-art-host\nChange-Id: I1a7de5bd5b1b73559624af939de05a2111f78195\n"
    },
    {
      "commit": "0f1530021934b5defd30ded0e19ee8aa80ae812a",
      "tree": "0fc40a5f45b4c2e67be703b322633fded3323a68",
      "parents": [
        "209b4c7141d7da61790844cd58bd0a9bab2951d8"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jul 06 10:27:15 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jul 06 10:39:48 2017 -0700"
      },
      "message": "Temporarily always enable dexlayout output verification.\n\nEnable the IR-level check by default for debugging b/62840842.\nWill ensure that output of dexlayout is valid.\n\nBug: 62840842\nTest: mm test-art-host\nChange-Id: Ide10005f427e64a4fdc0603ccbace59e110a67fb\n"
    },
    {
      "commit": "631827d9b200c93f24816c6869d72426f9fed8e3",
      "tree": "9d5d768df39e21a2678d4b9148c5ec4d1c016911",
      "parents": [
        "d64fbfa3471c47d6628d6014bc4a3ac780abd26a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Apr 10 14:53:47 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jul 04 11:57:13 2017 +0100"
      },
      "message": "Fixes for constant method handles\n\nAdd support for constant direct and interface method handles in the\nDEX file.\n\nAdd error handling for field and method resolution failures in\nClassLinker::ResolveMethodHandle().\n\nBug: 36957105\nTest: art/test/run-test --host 952-invoke-custom-kinds\nChange-Id: I91a2a23ba3365310eccb8cadd193b62f57e5811c\n"
    },
    {
      "commit": "51d80ccca5eb2ea0eef0de836dcc03e0545f63db",
      "tree": "14ff2bf5b9a9ca86d8a8d6f736cf27d8a1d47554",
      "parents": [
        "19df565ffcb30cb7b5217f074771078f0bb6cc1c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 21 21:05:13 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 22 16:04:07 2017 -0700"
      },
      "message": "ART: Refactor abort code\n\nRemove Runtime::Aborter and let Runtime::Abort set the abort message\non target.\n\nThis works around a missing tail-call optimization that leads to a\nsuperfluous frame on the call-stack when aborting.\n\nPartially reverts commit 3fec9ac0d5af1358d216eb2fdc2000ec0205f3f0.\n\nBug: 62810360\nTest: m test-art-host\nTest: Manual inspection of abort dump\nChange-Id: Ie4efc8bbdc8b665b23081b37a11921fe26b182b4\n"
    },
    {
      "commit": "e46f3a8399fec0f2cbb6d730f4f8316c37d7f3c5",
      "tree": "b23f2da67063bee35ae64032f4d0b389a22e7adf",
      "parents": [
        "e882b6dc06804c08206a9fd027a7f67705941f48"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 19 19:54:12 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 20 16:21:31 2017 -0700"
      },
      "message": "Address some review comments for aog/415919\n\nTest: test-art-host\nBug: 62040831\nChange-Id: I9d8c359ab3a1ff090fe664bbb798a215a3d9eb52\n"
    },
    {
      "commit": "2ebc76e6655e5e74f66955937dcff7c8ed53cede",
      "tree": "d86ff2d53aec3687bb02ebe8a8845f31e4d8a0dc",
      "parents": [
        "8b0673f022711bc725b63517bf338447a00cb45c",
        "7c1be8ba84b81ad2edfb6461bb4e2f3073bbc553"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 16 23:03:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 16 23:03:09 2017 +0000"
      },
      "message": "Merge \"Layout code items of post startup methods\""
    },
    {
      "commit": "7c1be8ba84b81ad2edfb6461bb4e2f3073bbc553",
      "tree": "3da1fa92b59386134d0dae307ba21a21ee2f530d",
      "parents": [
        "2bc159ebd1115f71d80639e47fc38663aa84ba4a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 15 13:56:05 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 16 14:02:04 2017 -0700"
      },
      "message": "Layout code items of post startup methods\n\nLayout code items in the following manner:\n\u003chot\u003e\n\u003cstartup only\u003e\n\u003cother clinit\u003e\n\u003cexecuted\u003e\n\u003cnot executed\u003e\n\nFor basic use cases (write email, start navigation)\nMaps vdex PSS: 17464k -\u003e 16856k\nGmail vdex PSS: 4004k -\u003e 3820k\nNumbers are from marlin\n\nTest: test-art-host\nBug: 36457259\n\nChange-Id: Id7ae676b45d5ba4f5b4dabfdc954875756fd2bcb\n"
    },
    {
      "commit": "5d3ae5b607c80c8df7e7b3d72bd3659f4c62a867",
      "tree": "1256fc9368e19af8e401d3ad8f15a6ffe26420ec",
      "parents": [
        "2bc159ebd1115f71d80639e47fc38663aa84ba4a",
        "9804e9ee90a3e6da05cbfe602deb29fb79a82f50"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 15 23:21:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 15 23:21:11 2017 +0000"
      },
      "message": "Merge \"Add a bounds check when getting indexed items in dexlayout.\""
    },
    {
      "commit": "9804e9ee90a3e6da05cbfe602deb29fb79a82f50",
      "tree": "2190c2d3a65eba72153487cc43c6c13e8b9782e8",
      "parents": [
        "aebfd208a5ca46833a110dfa392a0298b0347917"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jun 15 14:04:51 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jun 15 14:18:09 2017 -0700"
      },
      "message": "Add a bounds check when getting indexed items in dexlayout.\n\nWill be useful to help diagnose issues caused by a corrupted dex file.\n\nBug: 62515426\nTest: mm test-art-host\nChange-Id: I8d62f379e85464ce7b418c77843e98cc195f494a\n"
    },
    {
      "commit": "bbe3a5efcdfb2fb15a4e5f724cc323ae0ada5111",
      "tree": "65fd149e1159674681d866e47e485d85b8464334",
      "parents": [
        "d58932f98a673c9d687863a7efafb2da168063a2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 13 16:36:17 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 15 11:45:06 2017 -0700"
      },
      "message": "Refactor some profiling info functions\n\nDeleted profile_compilation_info-inl.h\n\nAdded a new helper class MethodHotness to reduce the number of\nrequired getters for reading method hotness, startup, and post\nstartup booleans.\n\nTest: test-art-host\nBug: 62040831\n\nChange-Id: I799a38e2bea6177ba5816c54524f4ccacedba772\n"
    },
    {
      "commit": "5678db5b3a0275d04bc610236f89fac9f76b5b1e",
      "tree": "efc4ffe5d59a0c6c5f4c15a886459962d24de4aa",
      "parents": [
        "83b140474aa1759739c8ee4464bf226c4fa0f6d7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 14:11:18 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 14:11:18 2017 -0700"
      },
      "message": "ART: Refactor bit_utils and stl_util\n\nMove iterator code from bit_utils.h into bit_utils_iterator.h. Move\nIdentity into stl_util_identity.h. Remove now unnecessary includes,\nand fix up transitive users.\n\nTest: m\nChange-Id: Id1ce9cda66827c5d00584f39ed310b6b37629906\n"
    },
    {
      "commit": "83b140474aa1759739c8ee4464bf226c4fa0f6d7",
      "tree": "f85fb1e8c825e6f130ea2191a1e18d5d8152b278",
      "parents": [
        "355b57656960160901f66133e3cca52bb4e2f326",
        "206cbaabf42430347f8d83e7b9e8fd9f0d29d010"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 08 16:44:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 08 16:44:04 2017 +0000"
      },
      "message": "Merge \"Layout clinit code items of profiled methods together.\""
    },
    {
      "commit": "355b57656960160901f66133e3cca52bb4e2f326",
      "tree": "3fa427ebd087e1388fa78e70562e5811b3d0efca",
      "parents": [
        "074408d75ee439ad7b9b1eb38d688040706041db",
        "043c9088bec3d48e93477206b59fb2b5360d7bb3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 08 16:42:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 08 16:42:37 2017 +0000"
      },
      "message": "Merge \"Added more functionality to dex file tracking\""
    },
    {
      "commit": "206cbaabf42430347f8d83e7b9e8fd9f0d29d010",
      "tree": "169a4a136973067b2901290d70b66aa7516e2942",
      "parents": [
        "4d3df9131c4098828f889b9470c82880efdc91be"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jun 07 19:11:01 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jun 07 19:11:01 2017 -0700"
      },
      "message": "Layout clinit code items of profiled methods together.\n\nMaps startup dex file pss drops from 9.88MB -\u003e 9.12MB.\n\nBug: 35800981\nTest: mm test-art-host\nChange-Id: I5c0167c553cd21c23bed05e824f14ab19f505d59\n"
    },
    {
      "commit": "043c9088bec3d48e93477206b59fb2b5360d7bb3",
      "tree": "5f337b0a6a5d802ba32f976739706ae0e82f98a2",
      "parents": [
        "11d72c608e0565fabcf6b2d6c13fbc85c560a608"
      ],
      "author": {
        "name": "Bharadwaj Kalandhabhatta",
        "email": "bharadwajsk@google.com",
        "time": "Tue Jun 06 17:14:12 2017 -0700"
      },
      "committer": {
        "name": "Bharadwaj Kalandhabhatta",
        "email": "bharadwajsk@google.com",
        "time": "Wed Jun 07 11:19:13 2017 -0700"
      },
      "message": "Added more functionality to dex file tracking\n\nAdditional functions were added for (un)poisoning only certain sections\nof a dex file. All functions related to tracking are now in a class\n(DexFileTrackingRegistrar) since unpoisoning subsections of an already\npoisoned section cause poison reads. Static variables were added\nrepresenting specific configurations that were used for testing.\n\nGetCodeItem from art/dex/layout/dex_ir.cc was moved to\nart/runtime/dex_file.cc because dex_file_tracking_registrar calls\nGetCodeItem and GetCodeItem returns a property of a DexFile.\n\nBug: 37754950\nTest: export ART_DEX_FILE_ACCESS_TRACKING\u003dtrue \u0026\u0026 m -j \u0026\u0026 m -j\nSANITIZE_TARGET\u003daddress SANITIZE_LITE\u003dtrue test-art-host\n\nChange-Id: Ie4e5aefb6f80b18fdaae5b5e8aa3bc99d77cbeac\n"
    },
    {
      "commit": "7b135c80fedea16844892527555b144c64651a65",
      "tree": "cb0da182ae9752f64811cb2f994236058f41dc7e",
      "parents": [
        "6ecff4d2127e70738aa2493d6deceb946c204eff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 05 12:54:01 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 06 16:49:08 2017 -0700"
      },
      "message": "Only compile hot methods\n\nInstead of compiling all startup + hot methods, we now only compile\nhot methods. However, the current logic still marks all startup\nmethods that have a counter greater than hot_method_sample_threshold_\nas hot methods. Since hot-startup-method-samples is currently 1,\nthere is no current behavioral change.\n\nThe goal is to increase hot_method_sample_threshold_ in a follow up\nCL.\n\nRenamed startup-method-samples to hot-startup-method-samples to\nbetter reflect the new behavior of the option.\n\nTest: test-art-host\nBug: 36457259\n\nChange-Id: I820bdcd4426769d76131b08a8b41f3b7eebfbc23\n"
    },
    {
      "commit": "ea650f3bc4f54eb2c647cf0f7134398ef5038792",
      "tree": "cdddde74424cf9fbeb2ef62e6bebca619c5ed989",
      "parents": [
        "6559ba1cfb9d24fdca4b1b1ec9e0b8dc31679982"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 24 12:04:13 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 02 18:25:09 2017 +0000"
      },
      "message": "Move profiles to use bitmaps for startup methods\n\nThis CL enables changes like compiling only hot methods while still\ndoing layout for hot and startup methods.  The bitmaps are also a\nbit smaller for post-launch use cases.\n\nNo change in compilation strategy yet.\n\nFixed some bugs in dexlayout test like using a profile with the wrong\ndex location. This meant the second invocation of dexlayout didn\u0027t\nhave any profile data.\n\nAdded profman support for dump-classes-and-methods,\ncreate-profile-from, and related test.\n\nProfile sizes (bytes) post launch:\nGmail: 7290 -\u003e 6136\nMaps: 22896 -\u003e 18984\nMusic: 8582 -\u003e 7050\nYouTube: 16733 -\u003e 14592\n\nTest: test-art-host\n\nBug: 62040831\n\nChange-Id: I9915b81a2ff2c47464acbbdeb55ce30a33d5483f\n"
    },
    {
      "commit": "d00e02b7614e8edc2e1fd8426ec249747881ccee",
      "tree": "eefbab768f128bdde43d2396f02e3e1fcf2039d3",
      "parents": [
        "0a5ace58e973da278049f837bf2cdbaf7b44849c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 24 12:04:13 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 28 17:59:07 2017 -0700"
      },
      "message": "Fix dexlayout fixed point test\n\nPreviously, the dex location did not match the one in the profile.\nThis caused the second dexlayout to not match the checksum and not\nuse the profile.\n\nAlso added a generic function to generate a profile based on an input\ndex.\n\nTest: test-art-host\n\nBug: 62040831\n\nChange-Id: I2b4fb383ec7a46b158f763de13ecbcd8a8c6180d\n"
    },
    {
      "commit": "02ef6403398bb7a2304c321bb37cc916af7e6261",
      "tree": "a519f5785a84f3901209f8521b3b0a5b4f53ff6f",
      "parents": [
        "76e9b6152f3c1fd137cb0686f728ab59299c33d4"
      ],
      "author": {
        "name": "Bharadwaj Kalandhabhatta",
        "email": "bharadwajsk@google.com",
        "time": "Wed May 17 17:13:39 2017 -0700"
      },
      "committer": {
        "name": "Bharadwaj Kalandhabhatta",
        "email": "bharadwajsk@google.com",
        "time": "Thu May 18 17:47:52 2017 -0700"
      },
      "message": "Added a fixed point test in dexlayout\n\nBug: 36107940\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: Ied99aa41fbf49b97e3a3421cb78c92c25d9375da\n"
    },
    {
      "commit": "a07394a0f356513a08266e2e198a0f4064f6e694",
      "tree": "1bbbd89b3772c852e5cbdd49d19b3fa3966cf910",
      "parents": [
        "aad63d06328e745a7f13e812bf41676274aa8f49"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed May 17 10:29:56 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed May 17 10:29:56 2017 -0700"
      },
      "message": "Enable dex diff check on debug builds.\n\nDex diff checks that the input and output dex files are equivalent at\nthe IR level. Normally enabled by passing -v to dexlayout, dex diff is\nnow enabled for debug builds as well.\n\nBug: 36107940\nTest: mm test-art-host\nChange-Id: I8c5ebb6a7cc0f699299a7200e8bc019762601feb\n"
    },
    {
      "commit": "4b8a96be815a921926f2712287ac7bea26131754",
      "tree": "d98e0c6f45c47b7a8c2bc9312b32834e1173b5c7",
      "parents": [
        "4d198e08d2f67c1f63489e3bb1c6c9f71d398917"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 18:00:14 2017 +0000"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 18:00:42 2017 +0000"
      },
      "message": "Revert \"Revert \"Profile compression: Replace method index with difference with the last method_index\"\"\n\nThis reverts commit 509d4240279c09aa755ebbd399fd333380ba40f2.\n\nChange-Id: I9bc1b461b7a34c2016b5a3027011434e1025f7b6\n"
    },
    {
      "commit": "4d198e08d2f67c1f63489e3bb1c6c9f71d398917",
      "tree": "05655c2cccfa668105725afab42715d46a9d7b68",
      "parents": [
        "13b392640f95c1153524096435f939b2908cfb2f"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 17:45:29 2017 +0000"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 10:56:58 2017 -0700"
      },
      "message": "Revert \"Revert \"Compress profile files\"\"\n\nThis reverts commit 1cf1fe29533e63858f094e4b6595b0d8a03aa7cd.\n\nReason for revert: Fixed the test\n\nTest: ART_HEAP_POISONING\u003dtrue \\\n     make -j64 valgrind-test-art-host-gtest-profile_compilation_info_test64\nBug: 36281963\nChange-Id: I5ae8003436d4d2140cd3512aedfc2bf5982ba277\n"
    },
    {
      "commit": "d6705a0586377f1b0d7d14d3abe2b270bb0adb18",
      "tree": "2fcd1e87f58a794130b51d20aa9396d400d20aa4",
      "parents": [
        "0af0ec2b59e624861dc3461ba9ce192fd350fd12",
        "1cf1fe29533e63858f094e4b6595b0d8a03aa7cd"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:48:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 12 02:48:06 2017 +0000"
      },
      "message": "Merge changes I73637476,I5a94be6c\n\n* changes:\n  Revert \"Compress profile files\"\n  Revert \"Profile compression: Replace method index with difference with the last method_index\"\n"
    },
    {
      "commit": "1cf1fe29533e63858f094e4b6595b0d8a03aa7cd",
      "tree": "70520486d9746dbae04345b600bf95858a7c0ff7",
      "parents": [
        "509d4240279c09aa755ebbd399fd333380ba40f2"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:43:23 2017 +0000"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:46:20 2017 +0000"
      },
      "message": "Revert \"Compress profile files\"\n\nThis reverts commit 4f0a15a85eaa0a7665f703d435a9b61059eed536.\n\nReason for revert: art-test gtest-heap-poisoning is broken with this change.\n\nChange-Id: I736374766b216122cae4e7e97451951cda1551f9\n"
    },
    {
      "commit": "509d4240279c09aa755ebbd399fd333380ba40f2",
      "tree": "830bea8dd99157a92bdefdee061781fcb23282de",
      "parents": [
        "d59f564f9bb9301855a3613912e287c4eba49655"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:42:45 2017 +0000"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:44:31 2017 +0000"
      },
      "message": "Revert \"Profile compression: Replace method index with difference with the last method_index\"\n\nThis reverts commit d59f564f9bb9301855a3613912e287c4eba49655.\n\nReason for revert: git_master-art-host - art-gtest-heap-poisoning is broken with this change.\n\nChange-Id: I5a94be6c4609defcee1c0d374009b16e70310a0d\n"
    },
    {
      "commit": "cad518333be281786548437f6be459d8efc791d2",
      "tree": "a7f7fb3af7cda514a8d1a0218f7729ab0b011055",
      "parents": [
        "05850204bdd25621a1264a400f7f68eba24f30a5",
        "d59f564f9bb9301855a3613912e287c4eba49655"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu May 11 21:42:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 21:42:34 2017 +0000"
      },
      "message": "Merge \"Profile compression: Replace method index with difference with the last method_index\""
    },
    {
      "commit": "05850204bdd25621a1264a400f7f68eba24f30a5",
      "tree": "3c36cac50eb6fd22a0a860d725b0dcd6acae26b5",
      "parents": [
        "f1373968236e720d88ebe64c101e417053bf2f7b",
        "4f0a15a85eaa0a7665f703d435a9b61059eed536"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu May 11 19:54:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 19:54:32 2017 +0000"
      },
      "message": "Merge \"Compress profile files\""
    },
    {
      "commit": "d59f564f9bb9301855a3613912e287c4eba49655",
      "tree": "19c46a2191b1a363ea95cc90cbfb8129e1df5093",
      "parents": [
        "4f0a15a85eaa0a7665f703d435a9b61059eed536"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Mon May 08 17:01:48 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu May 11 12:53:45 2017 -0700"
      },
      "message": "Profile compression: Replace method index with difference with the last method_index\n\nStore the difference with the last method index in the profile rather than\nputting the actual method index. Leveraging the common difference values,\ncompressing the profile will reduce the size further.\n\nResults:\n\nApp1\n    Without - 74K\n    With - 58K\nApp2\n    Without - 54K\n    With - 30K\nApp3\n    Without 40K,\n    With - 24K\n\nBug: 36281963\n\nTest: dexlayout_test, profile_assistant_test, \\\n     profman_test, profile_compilation_info_test\n\nChange-Id: I96bcadac250c08aaf23ade7465c5ac6ba9ea75dc\n"
    },
    {
      "commit": "4f0a15a85eaa0a7665f703d435a9b61059eed536",
      "tree": "830bea8dd99157a92bdefdee061781fcb23282de",
      "parents": [
        "b75e66e7636b3100432c7459130f55e12c12e0ab"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Wed Apr 26 19:26:46 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu May 11 10:31:40 2017 -0700"
      },
      "message": "Compress profile files\n\nThe change brings in new serialization format:\nmagic,version,number_of_dex_files,uncompressed_size_of_zipped_data,\n    compressed_data_size\nzipped[dex_location1,number_of_classes1,methods_region_size,dex_location_checksum1, \\\n        method_encoding_11,method_encoding_12...,class_id1,class_id2...\n    dex_location2,number_of_classes2,methods_region_size,dex_location_checksum2, \\\n        method_encoding_21,method_encoding_22...,,class_id1,class_id2...\n .....]\n\nThe data is compressed using zlib level 1 compression.\n\nSample app profile statistics on host with and without the change:\n\nApp1\n    Without - 10ms, 160K\n    With - 15ms, 74K\nApp2\n    Without - 4ms, 106K\n    With - 7ms, 54K\nApp3\n    Without 3ms, 74K,\n    With - 7ms, 54K\n\nBug: 36281963\nTest: dexlayout_test, profile_assistant_test, \\\n     profman_test, profile_compilation_info_test\nChange-Id: Iefa51a5a76adb33eef22aa76cdf85c3fe0a59a2a\n"
    },
    {
      "commit": "093a6fbcaa1f9fd2924e97906109482a8f31a247",
      "tree": "cd19863d64d8526de6d3adc1bf1f3b6bfcd041e7",
      "parents": [
        "0ac500f2d5d8e9948e5041e601c9dec805c7b74b"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue May 09 15:41:09 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed May 10 12:50:43 2017 -0700"
      },
      "message": "Fix page accounting for multidex\n\nDexdiag was using the offset into the mapping rather than into the dex\nfile for determining the types of pages.  This resulted in multidex\nfiles having incorrect accounting.\n\nBug: 38181622\nTest: make test-art-target-gtest-dexdiag_test\nChange-Id: I00a4e21db5f57f75642a17e8edaa9c73b8b529b6\n(cherry picked from commit dda59691e059101b00c70c49e7e2718d3b7c5d99)\n"
    },
    {
      "commit": "853656aaa0bf99e452211cb8f18a4b1bae70325e",
      "tree": "2f4d3110fc1c956ab1771391bd46db07eed168ba",
      "parents": [
        "59cd177687681ff9a1bd4b005e77f2a15e290641",
        "5daee90642aa44ac67e7e0c200204c86fa5425a8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 05 18:14:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 05 18:14:37 2017 +0000"
      },
      "message": "Merge \"Add dexlayout support for call sites and method handles.\""
    },
    {
      "commit": "592f802937be408eb0f205c8940e54162d809dda",
      "tree": "ee75e1e191c71c7448a6c3995321d0f7919a3c73",
      "parents": [
        "05a252b52b4f94f78759e6099dd420ca5a4e1b2f"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu May 04 13:58:29 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu May 04 14:47:18 2017 -0700"
      },
      "message": "Dexdiag returns error when no maps found\n\nWhen dexdiag does not find a mapping that is either from an oat or from\na vdex, it returns a non-zero exit status.\n\nBug: 35800981\nTest: make -j 40 test-art-target-gtest-dexdiag_test\nChange-Id: I346dd2f578b89ce16305f4118a0749ac62ba8e1d\n"
    },
    {
      "commit": "5daee90642aa44ac67e7e0c200204c86fa5425a8",
      "tree": "d520c12b41177244b4e0c0b3099be96ac6f91647",
      "parents": [
        "acac09dad3d5aa3922e6cdf54ff2e4fa6f176484"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 27 18:00:38 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu May 04 14:34:29 2017 -0700"
      },
      "message": "Add dexlayout support for call sites and method handles.\n\nTested that it works with Orion\u0027s test dex files. Can generate output\nfiles that match the test input files.\n\nUnit tests to follow.\n\nBug: 37732062\nTest: mm test-art-host\nChange-Id: Icb76cf858d29e52022f98ac625bd35c3bd763e9f\n"
    },
    {
      "commit": "55232f13e4a34ab36c13f337642b57f9def00da8",
      "tree": "493a3588e5eefcff12902bb3f5318e83dcca3aad",
      "parents": [
        "3650acb134b4e68ba3f190772b02105f74081bf2"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Apr 19 14:06:49 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Wed May 03 16:12:38 2017 -0700"
      },
      "message": "Add dexdiag_test\n\nNow with --contains\u003d[match] does\u0027t match any mapping, the process will\nreturn error.\n\nBug: 35800981\nTest: make test-art-target-gtest-dexdiag_test\nChange-Id: I252c6467c449db13abec7c7ddf07825f41b0078b\n"
    },
    {
      "commit": "04471122e705aba2b3b30651457097a8f3ac97b6",
      "tree": "a0a72bfbaeff39ad8efe8ce9dbe8a3ec74f808f7",
      "parents": [
        "34ed966ae7e232817dd70afb924518b7cb8fb6a9",
        "fd80b17832b793801f10fa90e1d98324a3405e21"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 27 19:54:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 27 19:54:31 2017 +0000"
      },
      "message": "Merge changes If6bd630c,Iade01cd5,I2ca823e1,Ib2899bce,I123f30f9\n\n* changes:\n  ART: Blacklist dex2oat test under sanitization\n  ART: Fix leaks in oat symbolizer\n  ART: Free resources in dexlayout\n  ART: Destroy temporary holder in dex_ir\n  ART: Shut down runtime in dexoptanalyzer\n"
    },
    {
      "commit": "4e868fa7b8c47600695ff92deeb373674956a67d",
      "tree": "acdb92a2b765cc87a08459267e430a8866e608cf",
      "parents": [
        "4dc06e2ef900132d8395539842c35533da8b912a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 21 17:16:44 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 27 16:04:13 2017 +0100"
      },
      "message": "Make vdex and dexlayout compatible.\n\nUnquicken the vdex before dexlayout, to keep the dex integrity.\n\nbug: 37558732\nTest: run-test with speed-profile\n\nChange-Id: Ifcd5c2e4378ccb0df0a66d07f68df31d94b83220\n"
    },
    {
      "commit": "08ae77f1159ad92d83ed4d955eb3a0a1a04f2058",
      "tree": "26b1be046d05c72641d2fd402f25bd5a724c41c6",
      "parents": [
        "2ae2ddae15b649e73e87d765cb49c9b59fc700fa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 26 22:02:33 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 26 22:02:33 2017 -0700"
      },
      "message": "ART: Free resources in dexlayout\n\nEnsure that loaded resources are freed once done.\n\nBug: 37727496\nTest: m SANITIZE_HOST\u003daddress test-art-host-gtest-dexlayout_test\nChange-Id: I2ca823e185c1b414781dab62ec8f87d64bd6f4fc\n"
    },
    {
      "commit": "2ae2ddae15b649e73e87d765cb49c9b59fc700fa",
      "tree": "92e6e8ea0e5ae5996d394010b8a5e91b6db42e0e",
      "parents": [
        "39f44b7452a7fa01c20f0e3554ff035726d9ebee"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 26 22:01:01 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 26 22:01:01 2017 -0700"
      },
      "message": "ART: Destroy temporary holder in dex_ir\n\nEnsure that a temporary wrapper is freed.\n\nBug: 37728266\nTest: m SANITIZE_HOST\u003daddress test-art-host-gtest-dexlayout_test\nChange-Id: Ib2899bce74566346f2b278d7f6c50e33add3252f\n"
    },
    {
      "commit": "d212d5b4dcd8ebee9858d863062d7f827ea3a9ea",
      "tree": "e3fca5360949b125347647db204dbcc86dcb628b",
      "parents": [
        "b66ca57ecadc494f1b257f890fef6e1d84005841"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 26 12:09:06 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 26 12:09:06 2017 -0700"
      },
      "message": "Allow dexlayout to handle duplicate code items.\n\nDexlayout now checks to see if a code item already exists at a\nparticular offset before trying to construct a new one. If so, the\nexisting one is returned instead.\n\nBug: 37287151\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: I9d89912fa6f00b80ce0e1c866b7800c02d36ee8c\n"
    },
    {
      "commit": "3a2380da2496423daff1eedee2a1b0882dbd3154",
      "tree": "3fbf84a3f16a35ed531f190d1a54b7ffcebf90aa",
      "parents": [
        "0d2ea2f09937e55600f8a1eda6b102fef1ab9c0b",
        "36a282b8714071d9f16c98c316efa4304fd8d36a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 25 18:42:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 25 18:42:28 2017 +0000"
      },
      "message": "Merge \"Layout codeitems based on profile data\""
    },
    {
      "commit": "36a282b8714071d9f16c98c316efa4304fd8d36a",
      "tree": "85c41bcb9d70778be8afe273eb57ef469f7b11d4",
      "parents": [
        "4e34bd190287f10214e8ea11a61025f18d2429b8"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Mon Apr 03 10:04:28 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Mon Apr 24 14:54:23 2017 -0700"
      },
      "message": "Layout codeitems based on profile data\n\nTest: ./art/test/testrunner/testrunner.py --host -t 638-c\n\nChange-Id: I15cef5d8bd25cbb74f844bd4c8241700b0f7dc13\n"
    },
    {
      "commit": "0dfc315a096bf5678cb5182771e3fdcca8ea4433",
      "tree": "ac04fef45e7d002734d3d79b9ab9a128cb5dc263",
      "parents": [
        "291ce17ada5a126be99f0fc069a028d2100bcf9e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 24 07:58:06 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 24 14:18:45 2017 -0700"
      },
      "message": "ART: More header cleanup - mem_map.h\n\nMove MemMap maps_ into cc file and move allocator include. Remove\nother unused includes. Force clients to import sys/mman.h if they\nneed it. Try to lower dependencies on ART by using libbase helpers\nmore.\n\nTest: mmma art\nChange-Id: I8f31e5f371789b3d72e12af377181fee2ac9a611\n"
    },
    {
      "commit": "cc05a77e6cf715084724c0b53577d12e0ff3ae1c",
      "tree": "508288450220028cfc2ebe5be668aa08623ad6cc",
      "parents": [
        "2120ad43acc0ab0fa74c151069948ef9698c009f"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Apr 19 19:44:08 2017 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Apr 19 19:44:08 2017 +0000"
      },
      "message": "Revert \"Add dexdiag_test\"\n\nThis reverts commit 2120ad43acc0ab0fa74c151069948ef9698c009f.\n\nChange-Id: Icdb42e47eb2f099cbfbd302477ad6614bb8524f1\n"
    },
    {
      "commit": "2120ad43acc0ab0fa74c151069948ef9698c009f",
      "tree": "2cf32a88d1f7daee2c9412f5288aa1669e7c2a55",
      "parents": [
        "741a81af441cbcb7255229bf250bc009d2894e92"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Apr 14 15:26:09 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Apr 18 16:12:13 2017 -0700"
      },
      "message": "Add dexdiag_test\n\nTests that dexdiag runs on the current process and returns with a\nnon-error status for a variety of command line options.\n\nBug: 35800981\nTest: make test-art-target-gtest-dexdiag_test\nChange-Id: Ib6f21a99ddec270cf8026a6123b028fe4b3fb840\n"
    },
    {
      "commit": "7639cdcf4dbbbb4ef63cc8c3ae2f2b4e170a5c83",
      "tree": "4b9e74bdf3fd4ef9ab7d29bca1e6234ac02c53f1",
      "parents": [
        "39d562895ab3ff835003fe3df6c13a93db492aa8"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Sat Apr 15 10:06:21 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Sat Apr 15 10:06:21 2017 -0700"
      },
      "message": "Add art_defaults to dexlayout\n\nThe build rule defaults for dexlayout targets didn\u0027t include defaults\nfrom the ART project.  Because of this ART_TARGET_* weren\u0027t defined,\namong other problems\n\nBug: 35800981\nTest: make -j 40 test-art-host\nChange-Id: Ic528bfc6b622fa9b4f5c0ddf883f15912641b720\n"
    },
    {
      "commit": "3ba51e854d6ee3287641d37ca5e108dd78de697b",
      "tree": "3f0939d171df1fd70e14118aa4494254c1b25f58",
      "parents": [
        "ce121a5fe3e537872af077c801443be9a525859b"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 12 16:14:54 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 13 10:16:18 2017 -0700"
      },
      "message": "Add check that dexlayout can open output file.\n\nTest: mm test-art-host\nChange-Id: I49b37b3e3696c8c002e22533c2e86e47a0e13e51\n"
    },
    {
      "commit": "3f3ec67df7dc40ee0df54a43b0df90142f829eaa",
      "tree": "dda06f5033831e10d29aec9ca3d70e6cfcfd8fb1",
      "parents": [
        "66e226ac2fb525c7a7cbbb21a9cbbe347f531a1c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Apr 05 14:43:38 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Apr 12 12:48:37 2017 -0700"
      },
      "message": "Add OAT file mapping to dexdiag\n\nAdds the ability to visualize the executable mapped sections of an OAT\nfile.\n\nBug: 37217968\nTest: test-art-target-gtest-dexdiag_test\nChange-Id: Id9f33885ee38a3753e781f955127eb8e1b83fe4d\n"
    },
    {
      "commit": "c0e638f0608bd6f3422ac7f1f1380d6ef56527a3",
      "tree": "c25bf897b3bbbaf357a5a19f9bd5cfe2aa20a0f2",
      "parents": [
        "b361403515606c4b287b43a9dbb45d29d8d90cba"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Apr 07 16:56:46 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Apr 07 16:56:46 2017 -0700"
      },
      "message": "Fix dexdiag start end address\n\nThe end address was computed incorrectly due to a mix-up between pages\nand addresses.\n\nBug: 35800981\nTest: dexdiag -s `pid zygote`\nChange-Id: I25d6c4b9a1e5395dc05b276111d9ec63c45951e0\n"
    },
    {
      "commit": "7851a5339d5ebd6fd2a3a8d40abc15aad694d024",
      "tree": "562a05b5951f605a0eaf7cb8bfc17576b6965eaf",
      "parents": [
        "6bca1c6389bb002d44f1c0cabf7641de8c935c4b",
        "eeabc03c9eb556e28a935636d80d467d058c8ea7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 06 07:05:37 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 06 07:05:38 2017 +0000"
      },
      "message": "Merge \"Revert \"Add dexdiag_test\"\""
    },
    {
      "commit": "eeabc03c9eb556e28a935636d80d467d058c8ea7",
      "tree": "2aaab2ad3d40d9044d02a8818991f6845190e118",
      "parents": [
        "146c3fac3a1e86b944d866e286551957c7513fd4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 06 05:37:08 2017 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 06 05:37:08 2017 +0000"
      },
      "message": "Revert \"Add dexdiag_test\"\n\nMissing dependencies in test branches.\n\nThis reverts commit 146c3fac3a1e86b944d866e286551957c7513fd4.\n\nBug: 35800981\nChange-Id: I6251b4b7132594a65f2f5faf48ed60eed96403af\nTest: none\n"
    },
    {
      "commit": "30b262c298fe7bd08f28d2f0f23a97cb1a1eb2fe",
      "tree": "cc606785bd064d5c7f6ba815c87bb0b055c2f597",
      "parents": [
        "b629050b198db14495444ff0211b84c6c740982c",
        "d9be768f6e7f6787bce27b2ec4e1c3736218495a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 05 21:18:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 05 21:18:40 2017 +0000"
      },
      "message": "Merge \"Check LocalInfo descriptor for nullptr in dexlayout.\""
    },
    {
      "commit": "d9be768f6e7f6787bce27b2ec4e1c3736218495a",
      "tree": "caf57ded21afcaac2489977d45041dfbb6bd982d",
      "parents": [
        "207f9bac6f87e652e9ffb6d49ea8b058378b4bb3"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 05 09:29:43 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 05 10:53:32 2017 -0700"
      },
      "message": "Check LocalInfo descriptor for nullptr in dexlayout.\n\nBug: 36966414\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: Iff289e4b877354d6ae7922a55ded961072aa0186\n"
    },
    {
      "commit": "146c3fac3a1e86b944d866e286551957c7513fd4",
      "tree": "72515c2c0e12b4d62033fc894a862e731e66ecc4",
      "parents": [
        "820b72ab4434d9fba36d885f96a9ef13f7b5df50"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Apr 04 15:40:12 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Apr 05 08:54:01 2017 -0700"
      },
      "message": "Add dexdiag_test\n\nTests that dexdiag runs on the current process and returns with a\nnon-error status.\n\nBug: 35800981\nTest: make test-art-target-gtest-dexdiag_test\nChange-Id: I4254939307b035dfe2a83667ef6c853f710dde47\n"
    },
    {
      "commit": "beca4fe440a106daf65379a6c55d24418269f842",
      "tree": "73566797ace08fb2948f80bb66346bef1543c0a6",
      "parents": [
        "432fccc4c001fcd822f401aea1a4214b713bd896"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Mar 30 17:50:24 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Apr 04 08:25:31 2017 -0700"
      },
      "message": "Add analyzer for dex memory map\n\nUse libpagemap to process vdex pages that are resident in memory.\nWalks over each vdex file mapping in a given pid, processing in one of\ntwo ways.\n\nUsing the -s (summarize) option gives, e.g.:\n\nMAPPING /system/framework/arm64/boot.vdex: 7e90133000-7e90641000\nDEX classes.dex: 7e90133000-7e90608000\nSection name                resident     total % of   % of\n                               pages     pages sect.  total\nHeader                             0         0   0.00   0.00\nAnnotationSetReferenceItem         0         0   0.00   0.00\nStringId                           1        33   3.03   0.08\nTypeId                             0         4   0.00   0.00\nProtoId                            1        21   4.76   0.08\nFieldId                            0        25   0.00   0.00\nMethodId                           2        69   2.90   0.16\nClassDef                           0        26   0.00   0.00\nAnnotationSetItem                  0        13   0.00   0.00\nCodeItem                           1       555   0.18   0.08\nAnnotationsDirectoryItem           0        34   0.00   0.00\nTypeList                           0        10   0.00   0.00\nStringData                         2       174   1.15   0.16\nDebugInfo                          0       175   0.00   0.00\nAnnotationItem                     0        29   0.00   0.00\nEncodedArrayItem                   0         3   0.00   0.00\nClassData                          0        59   0.00   0.00\nGRAND TOTAL                        7      1230          0.57\n\nUsing the -v (verbose) option gives, e.g.:\n\nMAPPING /system/framework/arm64/boot.vdex: 7e90133000-7e90641000\nDEX classes.dex: 7e90133000-7e90608000\nSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS\nSTTTTPPPPPPP.PPPPPPPPPPPPPPFFFFF\nFFF.FFFF.F.F.FFFF...MMMMMMMMMMMM\nMMMMMMMM.MM.....MMMMMMMMMMM..MMM\n.M.MMM..MMMM.MMMMMMMMMMM.CCCCCCC\nCCCCCCCCCCC.C.CCCCCC22.2........\n.XX...XXX..XXXXXXX.............X\n.XXXX......XXXXX..XXXX.XXXX..XXX\n.............X..XX....X.XXXX....\n..X....X...X..X..XXX.XXXXX.XXX.X\nX.X.X..........X.X...........XXX\nX...............................\n.......X.....................XXX\n..XX...XX.....X............XX.X.\n.....XXXX......X.X..X...........\n.XXXXXXX..XXXXXXXX..............\n......XXXX...XX...XX..XXXX...X..\n.......................X........\n.......................X.XX..XX.\nX...........X.X.X.X.............\nX.....XXX..........XXXXX.XX.XX.X\nXXXXX...........................\n............X.................X.\nX..............4....4...........\n............4.tttttttttts...sss.\n.ss.ss..s.ss.sssssss.sssssssssss\nssssssssssssssssssssssssssssssss\nssssssssssssssssssss.ss...ssss.s\nssssssssssssssssssssssssssssssss\nssssssssssssssssssssssssssssssss\nsssssssss..DD.DD...DD...........\n............D...................\n................................\n...................D.....DD.....\n...........................D.D..\n.D........................3...3.\n......................EEE.c..ccc\n.cc.ccc.c.c.....c.cc.ccc..c.....\n.c...ccc.cc.ccc......\n\nWhere the letters indicate a page of a particular dex file section are\nresident in memory and \u0027.\u0027 indicates a page is not resident.\n\nBug: 35800981\nTest: dexdiag \u003cpid\u003e\nChange-Id: Ib4662fe499ad82d4f0baace2affab0d56f0890c9\n"
    },
    {
      "commit": "9037a3a030c8693e1bffa0b4caef85d73a05abce",
      "tree": "7b614e147567713f29350f3c626a92db63e8da2b",
      "parents": [
        "5b92c48f99391ae764e1699a22881f9d5cbce721"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Mar 30 17:50:24 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Sun Apr 02 21:54:10 2017 -0700"
      },
      "message": "Make GetSortedDexFileSections a utility\n\nMake this method a utility in preparation for other users outside\ndexlayout.\n\nBug: 35800981\nTest: make -j 40 test-art-host\nChange-Id: I054c1e1c82834a0c94be6b9ee63d1992fa9f52df\n"
    },
    {
      "commit": "4f0250ca952cb3d489604c0de4f318bbc1bb12ba",
      "tree": "81a8e73d4505515b2c0d38bed93cff61dfab7086",
      "parents": [
        "f62940eab11f6d8fa6f07a3976245939c3db7ab7",
        "16d7ec4bf7483bb1b3d2317c8c5f03cf3cc6d208"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 30 23:17:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 30 23:17:20 2017 +0000"
      },
      "message": "Merge \"Update profile version\""
    },
    {
      "commit": "16d7ec4bf7483bb1b3d2317c8c5f03cf3cc6d208",
      "tree": "3ff8295a8f0ae3b15c8b9ee9cf6e5cbf1695a0da",
      "parents": [
        "d07f2ba2c60cb8aa920d2b428e414628078e233e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 29 16:50:25 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 30 13:54:39 2017 -0700"
      },
      "message": "Update profile version\n\nI forgot to do it in cea9e9d26c32372ec8c75e6c89b1bfc08c5e1911. This will\nforce regeneration of possibly faulty profiles.\n\nTest: m test-art-host\nBug: 36371709\nChange-Id: I476c97005b6c17a22c57117c06028a2371276326\n"
    },
    {
      "commit": "fa0aa0953875427d7381ac44a6427bd5b1d5020a",
      "tree": "ffffbc915c05b8a5d0a830618364261dedfa3948",
      "parents": [
        "8b71f086ade1f48f3780cc81706669abbfe9c184"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 27 15:43:54 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 29 10:42:47 2017 -0700"
      },
      "message": "Layout string data\n\nInspect dex code in class initializers and hot methods to find out\nwhat const strings are likely to be resolved. Along with these,\nlook at static field accesses and group the field name and type with\nother hot strings.\n\nGroup method shorties together.\n\nMaps vdex PSS: 7478k -\u003e 6900k\nNo change in odex PSS.\n\nChanged dexlayout_test to use -v instead of comparing to a hex\noutput.\n\nBug: 36457259\nBug: 35800981\n\nTest: test-art-host\n\nChange-Id: Iaa5de649c5b2b1d9f178525d2f42fe00e3fb879f\n"
    },
    {
      "commit": "37c5846be19f28bd629ffe7d6cfde779abbccb89",
      "tree": "794faf53dceaff722889a94c01122cc2ef6b632a",
      "parents": [
        "46bfb7c047a590ac5c24b658f31c170631556bb6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 27 15:14:27 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 27 15:14:27 2017 -0700"
      },
      "message": "ART: Fix some tidy warnings\n\nFix some tidy warnings for macros and references.\n\nTest: m test-art-host\nChange-Id: I2f8ed2174634263d4784c08e637f60ed70977b73\n"
    },
    {
      "commit": "ff907f66a36edec9a0f4374956dcb8ac7d027b67",
      "tree": "5954d61e821596fb6124ff5539a2f95ff687103e",
      "parents": [
        "fc1361d322e34c16dde6b0deaa710c8dd23e2bd9",
        "332b19e31e13d1c4e497a9f30f3f3217af8d067c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Mar 17 20:25:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 17 20:25:40 2017 +0000"
      },
      "message": "Merge \"Add byte count to section\""
    },
    {
      "commit": "332b19e31e13d1c4e497a9f30f3f3217af8d067c",
      "tree": "cbc975ac332ee1a76773713d8398586838c206ce",
      "parents": [
        "fcfaa8d823017eb209fd6e18a6fe496f4c979026"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Mar 15 10:42:46 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Mar 17 09:59:10 2017 -0700"
      },
      "message": "Add byte count to section\n\nDump the number of bytes, pages, and percentage for each section in the dex file.\n\nBug: none\nTest: test-art-host\nChange-Id: I1a032c4994422bfa697e48caf2cacd216ba9ce5f\n"
    },
    {
      "commit": "cc8295946caf3b965bff778fd7ae3adbcba47de3",
      "tree": "d7c9b77d14217d049911ded65f346271cf5c7849",
      "parents": [
        "fcfaa8d823017eb209fd6e18a6fe496f4c979026"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 14 16:13:39 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 15 19:25:02 2017 -0700"
      },
      "message": "Finish adding checks to dex ir verification.\n\nAdds missing checks for class defs, annotations, class data, code, etc.\n\nBug: 36107940\nTest: mm test-art-host\nChange-Id: Ifaac07299cf237827160c29b4230b0dc0845dc41\n"
    },
    {
      "commit": "ec7f1a96683836d9375adc48c6bf802c0ce2160e",
      "tree": "f07435d668c04c239dca0036b6b072611d45b046",
      "parents": [
        "13ef0447b43ecbf18d3c4e4c72d66bbbc1815f0c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 13 16:24:24 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 13 16:59:46 2017 -0700"
      },
      "message": "Added new -v option to dexlayout to verify output dex file.\n\nPassing -v will cause dexlayout to do an IR level comparison of the\noutput with the original input dex file. This checks that the data in\nthe dex files are the same, but allows for different offsets since the\noutput dex file may have a different layout.\n\nTest: mm test-art-host\nBug: 36107940\nChange-Id: If75a93973ffdd2d91111727f089713c800d8cee8\n"
    },
    {
      "commit": "8f48f4cb1760cd5d1b193e87ba6b56043bb08f35",
      "tree": "467c2da76191237292be4b0cbe3f36d9315c3a0a",
      "parents": [
        "5442ff6bad80f910f84ddf265393796d5fa9d977",
        "4a436ac4b4daa4e322d2a7cc2395462fbb16cd54"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 11 02:29:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 11 02:29:10 2017 +0000"
      },
      "message": "Merge \"Fix dex file verification check for dexlayout output file.\""
    },
    {
      "commit": "4a436ac4b4daa4e322d2a7cc2395462fbb16cd54",
      "tree": "243bc4a490fc31203f7fcb0e8747ac3eedc57477",
      "parents": [
        "1352e02ceeb30a3191809df4a7ee9fd711962f30"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 10 17:05:01 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 10 17:05:01 2017 -0800"
      },
      "message": "Fix dex file verification check for dexlayout output file.\n\nFor debug builds, we want to run the output dex file through the dex\nfile verifier as a sanity check. The initial check was actually checking\nthe input dex file again...\n\nBug: 36107940\nTest: mm test-art-host\nChange-Id: Ibd434d67f661c325a443d4ca9cced481e7a9b02c\n"
    },
    {
      "commit": "bd40af72aac39c53fadca6fe2e8d90f2ba2c4502",
      "tree": "37aa77fec55f4fa97190efbe49278dde27a13cf5",
      "parents": [
        "1352e02ceeb30a3191809df4a7ee9fd711962f30",
        "9335749d25f8826c72ea7ea4d470ee8bc171fa87"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Mar 10 18:08:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 10 18:08:51 2017 +0000"
      },
      "message": "Merge \"Add section size statistics\""
    },
    {
      "commit": "9335749d25f8826c72ea7ea4d470ee8bc171fa87",
      "tree": "9f6fffab6b8c44d1d38434e66a8f345cb5eeceeb",
      "parents": [
        "74f94dd8edb4a6070f6f7bfef6d28a8b4a21fc30"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Mar 09 08:02:44 2017 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Mar 10 08:02:08 2017 -0800"
      },
      "message": "Add section size statistics\n\nAdd an option to display the size of dex file sections for easier\nanalysis.\n\nBug: none\nTest: test-art-host\n\nChange-Id: I779f776657ad79e7a50c18c2b9486e6778c70f13\n"
    },
    {
      "commit": "b756815e581e2bcc3db7ee0cb3ae6c031fb22ae8",
      "tree": "c49999dc1d8683d14d628f1e595f86900368bc93",
      "parents": [
        "74f94dd8edb4a6070f6f7bfef6d28a8b4a21fc30"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Mar 09 18:14:48 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Mar 09 18:14:48 2017 -0800"
      },
      "message": "Add dex file verification check for dexlayout output file.\n\nFor debug builds, run the output dex file of dexlayout through the dex\nfile verifier as a sanity check.\n\nBug: 36107940\nTest: mm test-art-host\nChange-Id: I2b556db32cfd360cc4fe8d1d080508deebd27aa0\n"
    },
    {
      "commit": "a64a64cfae5c6dd7c2bdb039a92e9313dfd1e315",
      "tree": "173b22c4293d00b1f50dcbf19edb991fedd6be70",
      "parents": [
        "ef81e988d0eb4db390e576aac346701b2d820916"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 06 15:05:38 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 06 16:24:05 2017 -0800"
      },
      "message": "Fix dexlayout calculation of code item size.\n\nCalculation of code item size was based on looking for the latest catch\nhandler referenced by a try block, but there can be handlers that aren\u0027t\nreferenced by any try blocks. This fix manually reads all handlers to\nensure the end is actually reached.\n\nBug: 35978524\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: I33b30087845f806cd34b888f1ec457ee692f2af4\n"
    },
    {
      "commit": "e0ac1151b360be7147fa20320c0b427688b1424f",
      "tree": "c33419b00c47b731075bcfd7b75b81f366beda91",
      "parents": [
        "425b5d23e2c60d295471817a75b1b554481c5334"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 13 19:03:47 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 03 13:12:31 2017 -0800"
      },
      "message": "Extend profman to generate profiles with inline caches\n\nExtend profman logic to generate profiles based on a simple textual\nrespresentation. This will help writing tests for profile guided\ncompilation.\n\nBefore this CL, profman was able to generate profiles based on a list of\nclasses like:\njava.lang.Comparable\njava.lang.Math\njava.lang.Object\n\nThis CL, enables profman to understand methods and classes alike. The\nnew format is:\n\n# Classes\nLjava/lang/Comparable;\nLjava/lang/Math;\n# Methods with inline caches\nLTestInline;-\u003einlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;\nLTestInline;-\u003enoInlineCache(LSuper;)I\n\n\"LTestInline;-\u003einlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;\"\nmeans that method `int inlineMonomorphicSubA(Super)` from class Main\nwill be added to the profile with the inline cache (SubA,SubB) for its\none and only invoke virtual.\n\n@Main#noInlineCache:(LSuper;)I+;\nmeaning that method `int noInlineCache\u0027 from class Main will be added\nto the profile with no inline cache.\n\nNote that the methods are allowed to have a single invoke virtual in\ntheir dex bytecode. That is to keep the parsing the file format\nsimple and easy to use.\n\nAlso, add a few more tests for profiles and fix an issue caused by\nwriting the dex files in a possibly wrong order.\n\nTest: m run-test-host-gtest-profile_assistant_test\nBug: 32434870\nChange-Id: I6b7340cf613007117d9818be206ccb3a27b815bf\n"
    },
    {
      "commit": "3d0485493eabbaf01799de4576384cc57dfe66f8",
      "tree": "b2da9d706afc6a321c219b73073494df49af7f4e",
      "parents": [
        "ec78cc266a5ec7fdbaeb41eb645fa1a431eaa61d",
        "ac4627157871734db2864ab44a284bd28229d055"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 03 01:56:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 03 01:56:39 2017 +0000"
      },
      "message": "Merge \"Fix dexlayout manual walking of 0 length catch handler.\""
    }
  ],
  "next": "ac4627157871734db2864ab44a284bd28229d055"
}
