)]}'
{
  "log": [
    {
      "commit": "d6ececa9628126dc92a7d9ca24dd6709149d2073",
      "tree": "7b1caaed8d2b12a60b62a24e95233dd0faa55da4",
      "parents": [
        "c670a8df21d1f047fcc2c7f90701a7f65e9cff6e"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Dec 27 16:20:15 2011 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Feb 16 02:04:01 2012 -0800"
      },
      "message": "Add Dalvik registers initialization codegen.\n\nChange-Id: Ibfec30a2badd30d6cfd450f2af122d5a551ac321\n"
    },
    {
      "commit": "c670a8df21d1f047fcc2c7f90701a7f65e9cff6e",
      "tree": "0f5573ee9c3c17bf37fa7ed3ba91a0126174eb9c",
      "parents": [
        "d6c239ab3174eb19ec43818a8b344ea04f2037ba"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Dec 20 21:25:56 2011 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Feb 16 02:01:14 2012 -0800"
      },
      "message": "Add Dalvik register allocation codegen.\n\nChange-Id: I8842b1b03ff3fa362b69d386cc5927be6d65b460\n"
    },
    {
      "commit": "d6c239ab3174eb19ec43818a8b344ea04f2037ba",
      "tree": "f132070b77d1b37973a2e1b30716e7f734e54629",
      "parents": [
        "0b827109e3d8dea0f943bc41f2462d24c6e967a1"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri Dec 23 15:11:45 2011 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Feb 16 01:11:24 2012 -0800"
      },
      "message": "Add basic block implementation.\n\nChange-Id: I90874960be0afdacaeeb2ce3d3965e0c934d842a\n"
    },
    {
      "commit": "0b827109e3d8dea0f943bc41f2462d24c6e967a1",
      "tree": "05e88d1d27e6120713eff4dfb3c33da05c490044",
      "parents": [
        "7e6e33d45f96ca36803455f158d02fd1f5c21a1a"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Dec 20 19:46:14 2011 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Feb 16 00:29:01 2012 -0800"
      },
      "message": "Add LLVM function declaration codegen.\n\nChange-Id: I1ad54dd54ea73eba5ecc8ab17479fe161c308b88\n"
    },
    {
      "commit": "7e6e33d45f96ca36803455f158d02fd1f5c21a1a",
      "tree": "8c43cc858851f428c334e127e0f5d8ba2a86303b",
      "parents": [
        "fca7e87c4831ac52073bdd0b2c7342488ce286d8"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Jan 31 09:22:09 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Feb 15 23:39:54 2012 -0800"
      },
      "message": "Add name mangling function for LLVM.\n\nChange-Id: I0fb352e946ef4be532fec540362468dba7a8138b\n"
    },
    {
      "commit": "fca7e87c4831ac52073bdd0b2c7342488ce286d8",
      "tree": "058bbda5b4ea617ebef826f2e4b4fd08773e84d6",
      "parents": [
        "53a25dba44cb38d83931d47613cfe5b2abc5c299"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Dec 20 20:08:22 2011 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Feb 15 23:30:22 2012 -0800"
      },
      "message": "Add inferred register category map to Method object.\n\nChange-Id: I69456c79eb3ce3df1924bffe4db5314b0552f1de\n"
    },
    {
      "commit": "53a25dba44cb38d83931d47613cfe5b2abc5c299",
      "tree": "26e9e60a76686616cb849ff703669a8dd9d5e4a2",
      "parents": [
        "83426160568b62b22a1f1559cace78b5152c7749",
        "7c3757fb51450d0669883c82375040ece051e189"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 15 17:20:46 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 15 17:20:46 2012 -0800"
      },
      "message": "Merge \"Missing initialization\" into dalvik-dev"
    },
    {
      "commit": "7c3757fb51450d0669883c82375040ece051e189",
      "tree": "82b1e786eaea355798a5d6185577c579e738804a",
      "parents": [
        "4c1f425f62a21e181a437ec45520167332344917"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 15 17:18:53 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 15 17:18:53 2012 -0800"
      },
      "message": "Missing initialization\n\nChange-Id: Ib2a75f3fac032e19efb89119d5aabed1aed6b05a\n"
    },
    {
      "commit": "83426160568b62b22a1f1559cace78b5152c7749",
      "tree": "32116b8210d81cdfc8be9a38c111a4a3ab0232fc",
      "parents": [
        "4c1f425f62a21e181a437ec45520167332344917"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri Dec 09 09:29:50 2011 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Feb 15 11:44:11 2012 -0800"
      },
      "message": "Cleanup \"Beginning of LLVM backend for ART.\"\n\nChange-Id: I290e4d46b880256b6bf2eae7b3c828ee8d7595f2\n"
    },
    {
      "commit": "4c1f425f62a21e181a437ec45520167332344917",
      "tree": "4b6ec8c7f84db54dd517f94b9640897dd0a47a7c",
      "parents": [
        "d1fec81868a3567560a3868350e0a945248e925b"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Feb 13 09:57:20 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Feb 15 00:10:41 2012 -0800"
      },
      "message": "Add pointer arithmetic helper function.\n\nChange-Id: I735295c715564093db6d6e6aaaeb05914e0e826e\n"
    },
    {
      "commit": "d1fec81868a3567560a3868350e0a945248e925b",
      "tree": "749615f244e92d7f18b1713950d8110322b7645f",
      "parents": [
        "0401b68ec5ddf2aface872d756558aafcada3655"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Feb 13 09:51:10 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Feb 14 23:46:16 2012 -0800"
      },
      "message": "Beginning of LLVM backend for ART.\n\nChange-Id: I03466aed94670ac72d489ebc6e34d7ee1c9c857e\n"
    },
    {
      "commit": "0401b68ec5ddf2aface872d756558aafcada3655",
      "tree": "6c3757cc85b12a8cdb456566af3e836b686f8b81",
      "parents": [
        "91bf6cd47174f5c17265320f7a350722720390a5",
        "996cc586ce76235ee3efa1eff86de51dabcc5d53"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 22:56:44 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 22:56:44 2012 -0800"
      },
      "message": "Merge \"Add compiler stats, fix super call slow path\" into dalvik-dev"
    },
    {
      "commit": "996cc586ce76235ee3efa1eff86de51dabcc5d53",
      "tree": "b47d503da60ac10e52e9c09a6cb762aa6f959203",
      "parents": [
        "16f93671923979733cb46fc6f053c8f65754d5eb"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 22:23:29 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 22:37:35 2012 -0800"
      },
      "message": "Add compiler stats, fix super call slow path\n\nAdd statistics of when the compiler framework has allowed AOT\ncompilation to be optimistic.\nFix bug that was forcing many calls to be unnecessarily slow path.\n\nChange-Id: I8f0f6ab4738b11161855cf0dc424babed774c998\n"
    },
    {
      "commit": "91bf6cd47174f5c17265320f7a350722720390a5",
      "tree": "f4823c09793162e00b2fdd43990e12f2837d7562",
      "parents": [
        "f05d0dd011d3dbcf78bf35d0771f67371f5f6b58"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 17:27:48 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 17:27:48 2012 -0800"
      },
      "message": "More debugger support.\n\nThis wires up method-entry events and fixes a bug in exception events.\n\nChange-Id: Ia7c46786a8073434fbb4546615072622f301ef84\n"
    },
    {
      "commit": "f05d0dd011d3dbcf78bf35d0771f67371f5f6b58",
      "tree": "c2e00badfb03b3769effe66f26dd14ef316c5c9e",
      "parents": [
        "16f93671923979733cb46fc6f053c8f65754d5eb",
        "58bcc40e42d0438d3a71149ac53420d50a71fd8c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 15:34:09 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 15:34:09 2012 -0800"
      },
      "message": "Merge \"We replace -d with -O recently, but not uniformly.\" into dalvik-dev"
    },
    {
      "commit": "16f93671923979733cb46fc6f053c8f65754d5eb",
      "tree": "1bcb06e29786c5c93e0dc588b4ad6e8e94de0034",
      "parents": [
        "b305770f45e9cec66c3bdf792c4e7fa9cff5ec6e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 12:29:06 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 14:39:26 2012 -0800"
      },
      "message": "Remove dexCacheResolvedMethods, address Proxy issue\n\nChange-Id: Iab8c7edb954d241bd5a92260db07696b9559155f\n"
    },
    {
      "commit": "58bcc40e42d0438d3a71149ac53420d50a71fd8c",
      "tree": "23e7904af3a7d40e11b52b59d15e2f33c6eb22f9",
      "parents": [
        "b305770f45e9cec66c3bdf792c4e7fa9cff5ec6e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 14:10:10 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 14:10:10 2012 -0800"
      },
      "message": "We replace -d with -O recently, but not uniformly.\n\nChange-Id: Ia66037addabe8f0c61531d955bf570aa4c7c83e6\n"
    },
    {
      "commit": "b305770f45e9cec66c3bdf792c4e7fa9cff5ec6e",
      "tree": "65edf838d32560b88d2221743f2232e235888e4f",
      "parents": [
        "edad6a280cfc63cba9646a83724957c71f1c31ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 10:44:29 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 11:24:47 2012 -0800"
      },
      "message": "Only JDWP exposes ACC_SUPER.\n\nAlso track the use of suppressed exceptions with ClassNotFoundException.\n\nChange-Id: I5349d2e397f94c162cf44435cd36cab71f233480\n"
    },
    {
      "commit": "edad6a280cfc63cba9646a83724957c71f1c31ba",
      "tree": "0ad19278ff6fc6f84df0e5b80384f6b67f04aca2",
      "parents": [
        "310d8d463edef33ef14e089b17feb461831ed262",
        "b5d6a4983732387dd9fe9f0024d19a766819755d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 10:29:52 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 10:29:52 2012 -0800"
      },
      "message": "Merge \"Revert \"Remove dexCacheResolvedMethods from Method/Constructor\"\" into dalvik-dev"
    },
    {
      "commit": "310d8d463edef33ef14e089b17feb461831ed262",
      "tree": "e78953e883d6b54b127f8a8c4acdcbef4f9016a7",
      "parents": [
        "66a556f94e5dc9ba55bec9a11bee5671faa03e23",
        "1fe7afb88498d48d1f808ee31e986324f2a1c842"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 14 08:41:57 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 08:41:57 2012 -0800"
      },
      "message": "Merge \"Fix more JDWP bugs.\" into dalvik-dev"
    },
    {
      "commit": "b5d6a4983732387dd9fe9f0024d19a766819755d",
      "tree": "c7945cf6ebf6ebe0438421758884abb7ad240046",
      "parents": [
        "42882d1ae5a297b037f560a6ec190be1a584579d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 04:00:51 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 04:00:51 2012 -0800"
      },
      "message": "Revert \"Remove dexCacheResolvedMethods from Method/Constructor\"\n\nThis reverts commit 42882d1ae5a297b037f560a6ec190be1a584579d"
    },
    {
      "commit": "66a556f94e5dc9ba55bec9a11bee5671faa03e23",
      "tree": "52b304c17a0a5c33b235f60ebfa3d8c19810b7cd",
      "parents": [
        "42882d1ae5a297b037f560a6ec190be1a584579d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 00:05:38 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 14 00:05:38 2012 -0800"
      },
      "message": "Move DexFile.defineClass exception suppression to managed code\n\nChange-Id: I8abb16f6a2752a04eccce2b501d20236d65adaaa\n"
    },
    {
      "commit": "42882d1ae5a297b037f560a6ec190be1a584579d",
      "tree": "b702812d71828f757872b5cd1b915f2baf74a251",
      "parents": [
        "60f83e3274739317d8c3a1b069cebc6bf1e40f29"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 19:18:37 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 22:00:50 2012 -0800"
      },
      "message": "Remove dexCacheResolvedMethods from Method/Constructor\n\nThis short-cut is no longer directly accessed via compiled code.\n\nAlso fix compiler_test which requires isFinalizable to be explicitly\ncompiled when Object.\u003cinit\u003e is handled in managed code.\n\nChange-Id: I028cf0fc8fa25a44df4adacc7c686ade413a5a42\n"
    },
    {
      "commit": "60f83e3274739317d8c3a1b069cebc6bf1e40f29",
      "tree": "c7945cf6ebf6ebe0438421758884abb7ad240046",
      "parents": [
        "c281ec5f3a8177cd5921075716977639ceb5676d"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Feb 13 17:16:30 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Feb 13 19:12:18 2012 -0800"
      },
      "message": "More fixes for vm-tests.\n\nFailing to open a dex file is no longer a fatal error.\n\nSetRegisterType in the verifier returns true/false for success/failure\nto prevent Fail from being called twice.\n\nVerifier checks that all catch blocks begin with a move-exception.\n\nGc maps can now support 65536 registers, with the size using some bits\nthat were usused in the format.\n\nChange-Id: Idfa92c627efff8fd8360e933f54def397c953688\n"
    },
    {
      "commit": "1fe7afb88498d48d1f808ee31e986324f2a1c842",
      "tree": "08352a9caec6a5d26d5d47dfb7bd4543a2f22c39",
      "parents": [
        "cd1410aec0aff8b5cece062303311c20c23158fa"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 17:23:03 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 18:32:19 2012 -0800"
      },
      "message": "Fix more JDWP bugs.\n\nChange-Id: I475d14e196a7463e70f7cce6a8b8d77f867e9e46\n"
    },
    {
      "commit": "c281ec5f3a8177cd5921075716977639ceb5676d",
      "tree": "fafee7522883a52d33eefefa3ad7252c2bf1ec09",
      "parents": [
        "cd1410aec0aff8b5cece062303311c20c23158fa",
        "f3773f0913f8b76eee2088bfd999aaca6a50e750"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 16:59:59 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 13 16:59:59 2012 -0800"
      },
      "message": "Merge \"Move finalizer registration into managed code\" into dalvik-dev"
    },
    {
      "commit": "f3773f0913f8b76eee2088bfd999aaca6a50e750",
      "tree": "d9c2f8ce0736a6260d96586cbb3fcdb75430d4b2",
      "parents": [
        "a32a6fd4a781262dff4fec102da053d16b7ef6c0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 16:45:29 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 16:56:22 2012 -0800"
      },
      "message": "Move finalizer registration into managed code\n\nAlso move Object.getClass into managed code.\n\nChange-Id: If32674ac496116aaa82c461d8e6196e27fa7b591\n"
    },
    {
      "commit": "cd1410aec0aff8b5cece062303311c20c23158fa",
      "tree": "29cbf1ce7ea820668ea93d5f6b4c3baa5bf348dd",
      "parents": [
        "af1dd26c008b63b9aad99e1164cb40801c3b20a2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 16:06:39 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 16:06:39 2012 -0800"
      },
      "message": "Even though dex files don\u0027t contain ACC_SUPER, make it look like every class has it set.\n\nBecause in practice, all classes must have it set (which is why the dex file doesn\u0027t\nneed to explicitly contain this information).\n\nChange-Id: I140a8145ca3b7f14d3f03fd2905e9e91c6dc009a\n"
    },
    {
      "commit": "af1dd26c008b63b9aad99e1164cb40801c3b20a2",
      "tree": "8181fbe364337b78b38104bbe64ad9d3fcfc5d7b",
      "parents": [
        "a32a6fd4a781262dff4fec102da053d16b7ef6c0",
        "3d1ca6de2ddf3d9e39755d629c896bfecd9640fd"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 15:50:27 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 13 15:50:27 2012 -0800"
      },
      "message": "Merge \"Fix a bunch of JDWP bugs.\" into dalvik-dev"
    },
    {
      "commit": "3d1ca6de2ddf3d9e39755d629c896bfecd9640fd",
      "tree": "e44da249879ec6718d60f00b2333932f714711a3",
      "parents": [
        "d08547a802e6dbb71fde3ed3dac9aa0b03a5b17b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 15:43:19 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 13 15:43:19 2012 -0800"
      },
      "message": "Fix a bunch of JDWP bugs.\n\nMost of these were broken in dalvikvm too.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d20856\nChange-Id: I88bc89e00a19edc21953cd4f42833f35bb5456a8\n"
    },
    {
      "commit": "a32a6fd4a781262dff4fec102da053d16b7ef6c0",
      "tree": "5c2a35aec522902cfdf508a74898ee091c91f7ab",
      "parents": [
        "d08547a802e6dbb71fde3ed3dac9aa0b03a5b17b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 20:18:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 13 15:41:26 2012 -0800"
      },
      "message": "Runtime access checks on virtual method calls\n\nAt verification time we may not know that an illegal access or method\nnot found exception should be raised and so we defer the decision to\nruntime. When the decision is deferred we perform an appropriate slow\npath method invocation that can check for access violations.\n\nThis change also attempts to reduce code duplication, improve the\ndiagnostic information in exceptions, clean up field slow paths slightly\nand to move the slow path calls lower in the Thread class so that they\ndon\u0027t effect the offsets of data items when calls are added or removed.\n\nChange-Id: I8376b83dcd7e302cbbddf44c1a55a25687b9dcdb\n"
    },
    {
      "commit": "d08547a802e6dbb71fde3ed3dac9aa0b03a5b17b",
      "tree": "12e28d1a9b738370fd6aa7362c52298664741d43",
      "parents": [
        "ceb4c5acaf3fa96a22c01b3ec9bd486ee05e4547",
        "f1a5adc87760f938b01df26d906295063546b259"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Feb 12 10:37:14 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Feb 12 10:37:14 2012 -0800"
      },
      "message": "Merge \"Reduce StringPiece usage a bit.\" into dalvik-dev"
    },
    {
      "commit": "ceb4c5acaf3fa96a22c01b3ec9bd486ee05e4547",
      "tree": "42e9b20f70c00a21ea54a4e631a5146561acc4c5",
      "parents": [
        "5b1f162d9cbec1c6b2863bd220bdaecdcb18b139",
        "07ce1d7fcc65001bd9fad31bd171c9c198a57bdf"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Feb 10 19:36:43 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 19:36:43 2012 -0800"
      },
      "message": "Merge \"Dataflow fix\" into dalvik-dev"
    },
    {
      "commit": "f1a5adc87760f938b01df26d906295063546b259",
      "tree": "99f9a917b667cdaab69fa7df0978e4310eb6c207",
      "parents": [
        "5b1f162d9cbec1c6b2863bd220bdaecdcb18b139"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 10 18:09:35 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 10 18:09:35 2012 -0800"
      },
      "message": "Reduce StringPiece usage a bit.\n\nVarious easy cases, in case we want to move towards making the StringPiece\nconstructors explicit.\n\nChange-Id: I49e5efc5b787f847ab4cb12d66d1d16aed03fa67\n"
    },
    {
      "commit": "07ce1d7fcc65001bd9fad31bd171c9c198a57bdf",
      "tree": "c618267d1ce834add1ab5a634d28602005d57b64",
      "parents": [
        "44b412bb795fa6999129b2bc16f5eec1ea97e8f8"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Feb 10 17:22:02 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Feb 10 17:22:02 2012 -0800"
      },
      "message": "Dataflow fix\n\nThe live-in computation failed to account for Dalvik opcodes with\nvariable number of arguments.  This in turn led to missing Phi\nnodes and the type inference pass missing uses of Dalvik variables\nas float - knowledge of which is required by the register promotion\nmechanism.\n\nChange-Id: I4a2d60b77ad5274b09c4ed7546c207a3a54b3ad9\n"
    },
    {
      "commit": "5b1f162d9cbec1c6b2863bd220bdaecdcb18b139",
      "tree": "16c67376ecbb5e19d5f40992143ce79bd272e79d",
      "parents": [
        "44b412bb795fa6999129b2bc16f5eec1ea97e8f8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 10 16:11:54 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 10 16:12:44 2012 -0800"
      },
      "message": "Add a new dalvik run-test test to art.\n\nOriginal: https://android-review.googlesource.com/32551\n\nChange-Id: I0503818af15f427c6419a7a7a49689b3c2596ede\n"
    },
    {
      "commit": "44b412bb795fa6999129b2bc16f5eec1ea97e8f8",
      "tree": "bf2a45463f46c506130f319b1a176b49db4d5252",
      "parents": [
        "959f8ed11ef9493a89b90a1f9a82a811dbc7ae0e"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Feb 04 08:50:53 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Feb 07 18:19:52 2012 -0800"
      },
      "message": "Codegen support for debugger\n\nAdd the ability to generate code with support for debugging.\nThis involves generating a callout to an equivalent of the\nold \"updateDebugger()\" before each Dalvik opcode, method\nentry and method exit.\n\nThe added code is fairly compact - 8 bytes per Dalvik opcode,\nplus 4 additional bytes per safe point.\n\nI dislike the idea of always making this call, so I\u0027m reusing\nthe dedicated register rSUSPEND to hold the address of the callout.\nrSUSPEND is normally used to reduce the frequency of full suspend\nchecks, but when debugging this isn\u0027t necessary - allowing\nus to resuse this register to hold the address of the callout.\nIf it is non-null we make the callout, otherwise we continue.  I refresh\nthis register from a slot in the Thread structure on method entry\nand also following the return of taken suspend checks.  In this way,\nthe debugger has the ability to control updates on a per-thread basis,\nand the performance penalty is greatly reduced for threads that don\u0027t\nhave any pending debugger requests.  Once the debugger attaches,\nit would suspend all threads, walk through the thread list, set\nthread-\u003epUpdateDebuggerFromCode to art_update_debugger and then\nturn everything loose.\n\nOne thing I\u0027m not doing, though, is debugger updates before and after\ncalls to native methods.  This is something that will have to be done\nby the stubs, because I don\u0027t know which invokes are native.  Oh, and\nthere will also need to be an artUpdateDebugger call on the exception\npath.\n\nI\u0027m passing the DalvikPC to the stub, and am using special\ncodes (-1 and -2) to denote method entry and exit.  The stub\nrecovers the current Method* and Thread* and passes them on to\nartUpdateDebugger().\n\nWhen we\u0027re compiling in this special mode, all optimizations which\nmight result in code motion or suppressed load/store of a Dalvik\nregister are turned off.  No register promotion is done, so everything\nwill be in its home location.\n\nChange-Id: Iaf66f4d0d094a1699269d0a1ad1ed33e7613aef8\n"
    },
    {
      "commit": "959f8ed11ef9493a89b90a1f9a82a811dbc7ae0e",
      "tree": "2f6c0751fbdc6e87b55b398317ff53b8f6aadda8",
      "parents": [
        "a92853eb60fbce1fa6d3bbd6a6013fb514fdf5cb"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 07 16:33:37 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 07 16:46:49 2012 -0800"
      },
      "message": "Don\u0027t abort DeleteLocalRef for an argument to a method\n\nThis odd behavior is seen in clank.\n\nChange-Id: Id7b0ae0d3504ab8f6228ac0f1b3bc6d62cc2bfc3\n"
    },
    {
      "commit": "a92853eb60fbce1fa6d3bbd6a6013fb514fdf5cb",
      "tree": "05784f6ad43dcb8645419a88638230b8ca3ec267",
      "parents": [
        "48436bbff87aae61bba20029b4382fa41ce787fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 07 16:09:27 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 07 16:09:27 2012 -0800"
      },
      "message": "Spot NULL jobjects passed to MonitorEnter/MonitorExit.\n\n(Rather than aborting inside the monitor implementation.)\n\nChange-Id: I1dd30726c56d9d5707616f1c998ab2bff170a649\n"
    },
    {
      "commit": "48436bbff87aae61bba20029b4382fa41ce787fe",
      "tree": "f05982ea479f43a86c81ab715341238fa56a4d42",
      "parents": [
        "06e3ad4a651c2c58dba5e865cd06d2f98462bf1d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 07 15:23:28 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 07 15:52:48 2012 -0800"
      },
      "message": "Split should have a matching Join, if only for convenient debugging output.\n\nChange-Id: I68275a6410af706875f53540db4ef0242f414470\n"
    },
    {
      "commit": "06e3ad4a651c2c58dba5e865cd06d2f98462bf1d",
      "tree": "8110ea5a4880e0a6b2c39ce26dab934af29a91c0",
      "parents": [
        "bd411021057416e56a1544b98831b92faf66a1a1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 07 14:51:57 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 07 15:09:59 2012 -0800"
      },
      "message": "Turn on some basic tsan annotations.\n\nThe most useful bit here is that tsan now knows the names of our threads.\n\nChange-Id: I8eef8f31e954ffc373555b392d6d9678d76ead34\n"
    },
    {
      "commit": "bd411021057416e56a1544b98831b92faf66a1a1",
      "tree": "df8515d553d7d6169218cff05ba8e137a825f916",
      "parents": [
        "17165ef481abc838e761239d4453b00d01be4f49"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 07 12:09:09 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 07 13:01:28 2012 -0800"
      },
      "message": "trygon support\n\nChange-Id: I27ff7e26b583614f2577aed79dcd629ad4595e63\n"
    },
    {
      "commit": "17165ef481abc838e761239d4453b00d01be4f49",
      "tree": "4425d465d66e92a67794802af8280938cf685c67",
      "parents": [
        "72e8925371774b00165853916c6a839725bbb9eb",
        "6d0b13e931fb73d5e964d14b0a7ecd1f3f5db547"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 07 11:33:39 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 07 11:33:39 2012 -0800"
      },
      "message": "Merge \"Increase debug information for failed monitor exits\" into dalvik-dev"
    },
    {
      "commit": "6d0b13e931fb73d5e964d14b0a7ecd1f3f5db547",
      "tree": "56c2c2a889df39662397c7fe97acf77b90d0ff8d",
      "parents": [
        "fe1b29c35c7bbfa102ae48c5159056634bc28a08"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 07 09:25:29 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 07 11:30:53 2012 -0800"
      },
      "message": "Increase debug information for failed monitor exits\n\nCTS has shown IllegalMonitorStateExceptions where they shouldn\u0027t occur.\nRatchet up the debug information in the case of unlocks so the kind of\nproblem can be better diagnosed. This code is only executed in\nexceptional cases and so better debugging wins out over performance.\n\nAlso, add helper to dump thread state as something human readable.\n\nAlso, JNI internal unit test of monitor enter/exit.\n\nChange-Id: I9c06fbce7e6c9ebbb950a4e400f65c791ebe2ba4\n"
    },
    {
      "commit": "72e8925371774b00165853916c6a839725bbb9eb",
      "tree": "4a1eec0a6612eede2c2e50f0242b11ad09de1b53",
      "parents": [
        "fe1b29c35c7bbfa102ae48c5159056634bc28a08",
        "c1e041ac7bd8f5428fe05cd1528f5c6d1a78b792"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Feb 07 10:30:10 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 07 10:30:10 2012 -0800"
      },
      "message": "Merge \"Include the filename and line number in FATAL logging.\" into dalvik-dev"
    },
    {
      "commit": "fe1b29c35c7bbfa102ae48c5159056634bc28a08",
      "tree": "c07165f1a10634954ed4c800ac11c73386c3f9d3",
      "parents": [
        "5643742f61f04ac003836747bcae88f2278eb61b",
        "5643b786dd48df1f4b89a39e6024a22d032c79d4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Feb 06 21:49:50 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 06 21:49:50 2012 -0800"
      },
      "message": "Merge \"On demand generation of boot files\" into dalvik-dev"
    },
    {
      "commit": "5643742f61f04ac003836747bcae88f2278eb61b",
      "tree": "9fd2f36bb37dfd7bfc52478e996a3f0a55cf01d2",
      "parents": [
        "d857b632cb23846ef656c330b89c4d1cb727116e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 21:46:00 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 21:46:00 2012 -0800"
      },
      "message": "Don\u0027t report miranda methods in declared methods\n\nChange-Id: I8b7e0da78c1b05f2e1d54b1dde74426b24147a7e\n"
    },
    {
      "commit": "5643b786dd48df1f4b89a39e6024a22d032c79d4",
      "tree": "69223946129459afe9d8e713cafc0a79c717d5c7",
      "parents": [
        "223f20fa939c386c695977263780dea2195093db"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Feb 05 12:32:53 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Feb 06 21:38:01 2012 -0800"
      },
      "message": "On demand generation of boot files\n\nChange-Id: I7ba2a3cb627e1dc53410a4d3e67364550bdd995b\n"
    },
    {
      "commit": "d857b632cb23846ef656c330b89c4d1cb727116e",
      "tree": "36e55f4ebb5a53f947db963659de70240f9242f6",
      "parents": [
        "4103ad2ab59488fe4eb36b88259e402e8878878b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 20:42:33 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 20:42:33 2012 -0800"
      },
      "message": "Compute size of source_space after lazy field initialization.\n\nFixes image_test.\n\nChange-Id: I3ba8072cf34d881b36c43dfbe8c6b1d895c1b21c\n"
    },
    {
      "commit": "4103ad2ab59488fe4eb36b88259e402e8878878b",
      "tree": "bd811f3c47feeb0e0f4aa185ae7a9131bf9836e7",
      "parents": [
        "1e4092589f1400915e6213014da103aab8728ef6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 09:18:25 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 20:41:25 2012 -0800"
      },
      "message": "Faster computation of SSB index\n\nChange-Id: Id345ec5b1093b57276588bd96f475d0ed07d1f08\n"
    },
    {
      "commit": "c1e041ac7bd8f5428fe05cd1528f5c6d1a78b792",
      "tree": "bf7b3713a1544bdb2ab2b195bb86f80aac40c7ac",
      "parents": [
        "1e4092589f1400915e6213014da103aab8728ef6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 06 18:27:24 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 06 18:27:24 2012 -0800"
      },
      "message": "Include the filename and line number in FATAL logging.\n\nChange-Id: I02b92b14619faf5a630b8bf1a6602d01c9525ff5\n"
    },
    {
      "commit": "1e4092589f1400915e6213014da103aab8728ef6",
      "tree": "ba718e9e853e18a61aab003ce3f6a880b86fa365",
      "parents": [
        "53a77a5d06ce865d0524bf3a0dd9b586caa9bede"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 06 11:21:27 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 06 11:21:27 2012 -0800"
      },
      "message": "Fix Mac build and make -jN use a total of N threads, not N+1.\n\nChange-Id: I41dc613e76d6ac85a21b3286b1a555dcc79bae95\n"
    },
    {
      "commit": "53a77a5d06ce865d0524bf3a0dd9b586caa9bede",
      "tree": "dbdf636acdb6bf8f67333fb15b54f279183c66c4",
      "parents": [
        "1bddec3a6521f16df37499754000a3b1787a52e9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 09:47:45 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 06 09:49:41 2012 -0800"
      },
      "message": "Remove Method\u0027s dex_cache_resolved_fields_\n\nWe no longer generate code to access dex_cache_resolved_fields_ and the\nslow paths can access the dex cache with extra indirections. Removing\nthe field saves image space.\n\nThis change also requires Change I2e16e99d\n\nChange-Id: Ic64df15f3982a2655942d7cd5157eb497f70af7d\n"
    },
    {
      "commit": "1bddec3a6521f16df37499754000a3b1787a52e9",
      "tree": "f605d0f642f2a62012d0f5a1bd0351afbaa8fa5a",
      "parents": [
        "223f20fa939c386c695977263780dea2195093db"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Feb 04 12:27:34 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Feb 05 03:02:00 2012 -0800"
      },
      "message": "Add access check slow paths to field accesses\n\nThis check makes the verifier, compiler and runtime agree with who\nshould perform access checks and fixes compliance for these\ninstructions.\n\nIntroduce new \"fast\" sget/sput that just get the static storage base\nfrom a method\u0027s declaring class when the static field is within the same\nclass. Saves a load and branch in the common case.\n\nFold gen routines for wide and not wide together.\n\nFix bug where sub-classes could appear intialized in the image but their\nparents were only verified.\n\nExtra debug output for test case 075.\n\nChange-Id: I934da3624ed8fa8e026b2c95d936d04b1af022ef\n"
    },
    {
      "commit": "223f20fa939c386c695977263780dea2195093db",
      "tree": "642d1abe5dfbf2239bf239e8e91bebd333384378",
      "parents": [
        "a56fcd60596ae8694da21fccde5c56832e437c56"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Feb 04 23:06:55 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Feb 04 23:24:56 2012 -0800"
      },
      "message": "Remove old code to support multiple images\n\nChange-Id: I29bc2f216361ac4ed0cc0fefb7e3c46ee64e0ae8\n"
    },
    {
      "commit": "a56fcd60596ae8694da21fccde5c56832e437c56",
      "tree": "522352376c179e452706bacad29c00f6fc5acb7f",
      "parents": [
        "b12552a95d68b9e4a567103190074ae47b6a61dc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Feb 04 21:23:01 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Feb 04 22:48:30 2012 -0800"
      },
      "message": "Honor ANDROID_ROOT and ANDROID_DATA\n\nChange-Id: I8e43093830a734694bbf7308d08dd18527302270\n"
    },
    {
      "commit": "b12552a95d68b9e4a567103190074ae47b6a61dc",
      "tree": "4d07fecacadb5435847b84cee7c77c368ee3e5a1",
      "parents": [
        "97574f4589041ecb652ff30a0fb5e55eeffb5ea0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Feb 04 17:17:31 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Feb 04 17:17:31 2012 -0800"
      },
      "message": "Fix unused variable warning on Mac OS\n\nChange-Id: I0808c3873685ed6563168b4ebd3c1d0bb7cf8ab2\n"
    },
    {
      "commit": "97574f4589041ecb652ff30a0fb5e55eeffb5ea0",
      "tree": "d839740c4fdd0ea7171ed2002772d17edb1b5e3c",
      "parents": [
        "141dae38f17614cb555b7e24edc217906378a991"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Feb 04 15:40:21 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Feb 04 15:40:21 2012 -0800"
      },
      "message": "Disable dex2oat -j thread count on Mac OS\n\nChange-Id: Ia68741525937e2e518f4a64d0cb429825eba1d7a\n"
    },
    {
      "commit": "141dae38f17614cb555b7e24edc217906378a991",
      "tree": "e10cf398f59b25a0357e604c54b7255ae09ec722",
      "parents": [
        "807444fe87b61e9e306cab09bb51ea7fa02ce1fc",
        "d85016c68488d2110dae6d4c304e7028d934d643"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Feb 03 21:22:53 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 21:22:53 2012 -0800"
      },
      "message": "Merge \"Fix class linker assert\" into dalvik-dev"
    },
    {
      "commit": "807444fe87b61e9e306cab09bb51ea7fa02ce1fc",
      "tree": "5779950ea87e1aac3ffdae9d0b279f1e8c38af38",
      "parents": [
        "7646444a859bc9ac03431915dfdc82dad1790f4d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 19:59:42 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 19:59:42 2012 -0800"
      },
      "message": "Switch to more traditional logging on Android.\n\nThe Linux logging stays google3-like.\n\nChange-Id: I936f0529993cfcfb34c51382e699ec9759151d26\n"
    },
    {
      "commit": "7646444a859bc9ac03431915dfdc82dad1790f4d",
      "tree": "60be889b0aa4bcb31fae09693aa2fc9779880147",
      "parents": [
        "d4135901d12fd6073603aa6fd96e587dada70cb4",
        "9ee5f9ccba015beb3ae376ed08b3363bd9df6422"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 18:39:03 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 18:39:03 2012 -0800"
      },
      "message": "Merge \"Make all FATAL-related output appear as \u0027F\u0027 log output.\" into dalvik-dev"
    },
    {
      "commit": "9ee5f9ccba015beb3ae376ed08b3363bd9df6422",
      "tree": "f79f3f4439048ba90d1947abfc3ac09e133a1908",
      "parents": [
        "5523ee070b005576c6f889415205d49ea77cf243"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 18:33:16 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 18:33:16 2012 -0800"
      },
      "message": "Make all FATAL-related output appear as \u0027F\u0027 log output.\n\nPreviously most of the spew belonging to a FATAL would be \u0027E\u0027 because\nRuntime::Abort() used LOG(ERROR) to avoid recursion.\n\nChange-Id: If8f62586c302c239e827c5235ed58ee8fe6e8f5e\n"
    },
    {
      "commit": "d85016c68488d2110dae6d4c304e7028d934d643",
      "tree": "50fdce73c7843e56dc2aa11885419267f1a030cc",
      "parents": [
        "d4135901d12fd6073603aa6fd96e587dada70cb4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:27:34 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:32:33 2012 -0800"
      },
      "message": "Fix class linker assert\n\nChange-Id: I371e473b88e26f1c570986d2e251d51a5650797f\n"
    },
    {
      "commit": "d4135901d12fd6073603aa6fd96e587dada70cb4",
      "tree": "e527dcea253d9c17d2cbf2a4db1fef7bbd76c813",
      "parents": [
        "5523ee070b005576c6f889415205d49ea77cf243"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:05:08 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:32:33 2012 -0800"
      },
      "message": "Check instantiability at runtime when inconclusive at compile time\n\nChange-Id: I40e4a3da05936fee77e074d5dc4d0fec1a1c5526\n"
    },
    {
      "commit": "5523ee070b005576c6f889415205d49ea77cf243",
      "tree": "e96483994b5f5d747615673d06bb7b84302d16f0",
      "parents": [
        "5b332c89fa3fdd7dc184b22c2587d28af304d019"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 18:18:34 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 18:29:13 2012 -0800"
      },
      "message": "Add -j to dex2oat.\n\nChange-Id: I80f3f2605b8afcdf9adf9382716b041f10efa104\n"
    },
    {
      "commit": "5b332c89fa3fdd7dc184b22c2587d28af304d019",
      "tree": "f348c63b6756adad52d1e242786df1c9136d6eee",
      "parents": [
        "9cb39392bacbd2a561c6bd840fff821ff7afaa7e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 01 15:02:31 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Feb 03 18:11:56 2012 -0800"
      },
      "message": "Fix checksum verification when opening DexFiles from OatFiles\n\nChange-Id: Ic3d13f3d591c34f159bf0739536a1751c3e7dc75\n"
    },
    {
      "commit": "9cb39392bacbd2a561c6bd840fff821ff7afaa7e",
      "tree": "8f402ac05e65965bd4c5ad04c79f447cb0d92af2",
      "parents": [
        "4d13111658b92ebbc5881e29cbfec5131cd3e7f2",
        "f45b154459377f370e6c4ccfa6d19adcb8b4b2c0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:06:29 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 18:06:29 2012 -0800"
      },
      "message": "Merge \"Verify thread state for all allocations, fix 2 failures\" into dalvik-dev"
    },
    {
      "commit": "4d13111658b92ebbc5881e29cbfec5131cd3e7f2",
      "tree": "2378c126b50fcd27012b2e2591d59026001c2cb8",
      "parents": [
        "09d4d01c10e3a6f08d41417bf913ba1ab8dabeb3",
        "7769f50d809da9a52885e75c0b593748abc0215e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:06:16 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 18:06:16 2012 -0800"
      },
      "message": "Merge \"Testing should use debug dex2oat and oatexec by default\" into dalvik-dev"
    },
    {
      "commit": "f45b154459377f370e6c4ccfa6d19adcb8b4b2c0",
      "tree": "dd06196e58ee8d308e0082b662022c6d90d064b8",
      "parents": [
        "7769f50d809da9a52885e75c0b593748abc0215e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:03:48 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:03:48 2012 -0800"
      },
      "message": "Verify thread state for all allocations, fix 2 failures\n\nChange-Id: If3611f4eda5a567cc2c573f47dbabfe40a00e205\n"
    },
    {
      "commit": "7769f50d809da9a52885e75c0b593748abc0215e",
      "tree": "98083196eab7aced3aa576323a8072e037d907aa",
      "parents": [
        "891f4a94ded25b92b920c6f1ba908b1411138b60"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:02:28 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 18:02:28 2012 -0800"
      },
      "message": "Testing should use debug dex2oat and oatexec by default\n\nChange-Id: Ib674f60a73bbe9c20fa7c0719ce0c9057a9e3a9e\n"
    },
    {
      "commit": "09d4d01c10e3a6f08d41417bf913ba1ab8dabeb3",
      "tree": "d21dbc55ad5dc2eb4848e4660dca7dbf22f3555b",
      "parents": [
        "0d0ba69e764c54b21c463239136bfd5038d389a9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 17:44:20 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 17:44:20 2012 -0800"
      },
      "message": "Fix an attempted use of ScopedThreadStateChange in ClassLinker.\n\nChange-Id: Iaef316aed95c53e8cb4433293d8933477d27b13e\n"
    },
    {
      "commit": "0d0ba69e764c54b21c463239136bfd5038d389a9",
      "tree": "194fdb5b604f9eea2fef537deec71b8e5759d25d",
      "parents": [
        "8323972b16642b8a3accf6fcbb6677b65a7a20fb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 17:28:52 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 17:28:52 2012 -0800"
      },
      "message": "A couple of logging changes people have asked for.\n\nHow many threads dex2oat uses, and more detail about heap trimming.\n\nChange-Id: Id60dbedf2480c639dc8c38b4a59eb0b15eb3b912\n"
    },
    {
      "commit": "8323972b16642b8a3accf6fcbb6677b65a7a20fb",
      "tree": "fda1552442a7c31c5de857a2a9e02e6ae5f1e69c",
      "parents": [
        "81d9151c884a548ea2ff843a49704e1aaf9fe64f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 16:49:24 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 16:49:24 2012 -0800"
      },
      "message": "Give InitCpu its own mutex.\n\nChange-Id: I4c2b48677b6d27e4b5d0deabf73597f5b89d03a5\n"
    },
    {
      "commit": "81d9151c884a548ea2ff843a49704e1aaf9fe64f",
      "tree": "7f7cf07345cbe5625ec1f7a7a9f603fc1c22f783",
      "parents": [
        "b0bbbabd282c10ca3a902f83e832edded06d9557"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 16:38:43 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 16:47:07 2012 -0800"
      },
      "message": "Change the Workers API to be harder to misuse.\n\nChange-Id: Ifd778c670789e17c1d126e2bca5469a2eb644f20\n"
    },
    {
      "commit": "b0bbbabd282c10ca3a902f83e832edded06d9557",
      "tree": "f604cd48108536f125ed6a55ca4dad5d0ab4b425",
      "parents": [
        "d2291ab45b28021afebfa00e7822c2919f37aa97"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 16:26:19 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 16:26:19 2012 -0800"
      },
      "message": "Ensure that the verification workers have finished before removing write permission from the dex file.\n\nChange-Id: I3106455e801997af466589af683a1e987fc2eb92\n"
    },
    {
      "commit": "d2291ab45b28021afebfa00e7822c2919f37aa97",
      "tree": "634a30f9bc6498dca947d39159f81536bdc3e9cf",
      "parents": [
        "ceee34e31cf2b9b52b65597b6fcd9811d188d8d2",
        "891f4a94ded25b92b920c6f1ba908b1411138b60"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 16:10:07 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 16:10:07 2012 -0800"
      },
      "message": "Merge \"Use a mutex to avoid concurrent modification of LDT\" into dalvik-dev"
    },
    {
      "commit": "891f4a94ded25b92b920c6f1ba908b1411138b60",
      "tree": "f9b9af16aa57f63c059e7f1499dbb4324ed22a39",
      "parents": [
        "962a5a4a7c7555f449d616737c8b82d69fa91a48"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 16:04:54 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 16:04:54 2012 -0800"
      },
      "message": "Use a mutex to avoid concurrent modification of LDT\n\nFixes host tests.\n\nChange-Id: Ibecb225fce23cc57d946a75de88aba9823026ff6\n"
    },
    {
      "commit": "ceee34e31cf2b9b52b65597b6fcd9811d188d8d2",
      "tree": "7849383ca2168a3c556f9900f92a26e1bb4eadf5",
      "parents": [
        "962a5a4a7c7555f449d616737c8b82d69fa91a48",
        "c225caa9715eeaeff87f27d5b6a3e7d4f6b7efad"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Feb 03 15:52:50 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 15:52:50 2012 -0800"
      },
      "message": "Merge \"Compile classes in parallel.\" into dalvik-dev"
    },
    {
      "commit": "c225caa9715eeaeff87f27d5b6a3e7d4f6b7efad",
      "tree": "4f24c99fdff30199dde44952cf6d88fd493a87ca",
      "parents": [
        "f42d81312b971ccc80e24c4708bd944e6e259d15"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 15:43:37 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 15:43:37 2012 -0800"
      },
      "message": "Compile classes in parallel.\n\nChange-Id: If7f03372f5094236a3dd0cfd638c39298b23c132\n"
    },
    {
      "commit": "962a5a4a7c7555f449d616737c8b82d69fa91a48",
      "tree": "617f6f0efcd507faa0005eb3d5c373ef67a89d34",
      "parents": [
        "f42d81312b971ccc80e24c4708bd944e6e259d15",
        "0c4a506e49dbbc29d05803b506a8e27e6e54d67a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 15:23:25 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 15:23:25 2012 -0800"
      },
      "message": "Merge \"Merge new array with new array filled logic\" into dalvik-dev"
    },
    {
      "commit": "0c4a506e49dbbc29d05803b506a8e27e6e54d67a",
      "tree": "863a5ebd0d265944e7e2d94a79551fd23bdbfa8d",
      "parents": [
        "9ada79cbe875dbcf7229b3f563303d21b0537d5f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 15:18:59 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 15:18:59 2012 -0800"
      },
      "message": "Merge new array with new array filled logic\n\nChange-Id: Ia6ade5651e96d3bfcbfa208b354b2dac47f9e040\n"
    },
    {
      "commit": "f42d81312b971ccc80e24c4708bd944e6e259d15",
      "tree": "ded279391039414ea9d046627b320246446e2cfa",
      "parents": [
        "ff7380681c50129ff689a11ac0f49512b4be7295",
        "ba938cbb8d73a0dcf151dfaec4662496da6afdbf"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Feb 03 15:15:25 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 15:15:25 2012 -0800"
      },
      "message": "Merge \"Make the compiler threadsafe\" into dalvik-dev"
    },
    {
      "commit": "ff7380681c50129ff689a11ac0f49512b4be7295",
      "tree": "79704a4b85026aae58c17780cd88377e8d5a3c08",
      "parents": [
        "9ada79cbe875dbcf7229b3f563303d21b0537d5f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 15:00:42 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 15:07:35 2012 -0800"
      },
      "message": "Fix a thread suspend timeout, and improve the diagnostics for thread suspend timeouts.\n\nI still needed gdb to understand this, but when we dump _native_ stacks, the\nadditional diagnostics here will be more helpful. (They\u0027re somewhat helpful\nanyway, in that they let you see the state all threads are in. Also, in a\nstarted runtime rather than the compiler, threads will have informative managed\nstacks.)\n\nAlso make the apparent duplication in the dex2oat timings clearer, and only\ninclude time spent on resolving strings if we resolved any strings.\n\nChange-Id: Icd469d9b085171ebb2dede2afb5140387cd3240c\n"
    },
    {
      "commit": "ba938cbb8d73a0dcf151dfaec4662496da6afdbf",
      "tree": "09ad41fc5851a22e8c11935edc83c7ece546f856",
      "parents": [
        "763d5fb2f83d9c93b5b764533005865a3d1034e1"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Feb 03 14:47:55 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Feb 03 15:02:55 2012 -0800"
      },
      "message": "Make the compiler threadsafe\n\nThe compiler inherited a simple memory management scheme that\ninvolved malloc\u0027ng a clump of memory, allocating out of that\nclump for each unit of compilation, and then resetting after\nthe compilation was complete.  Simple \u0026 fast, but built with the\nexpectation of a single compiler worker thread.\n\nThis change moves the memory allocation arena into the\nCompilationUnit structure, and makes it private for each method\ncompilation.  Unlike the old scheme, allocated memory is returned\nto the system following completion (whereas before it was reused\nfor the next compilation).\n\nAs of this CL, each compilation is completely independent.\n\nThe changes involved were mostly mechanical to pass around the\ncUnit pointer to anything which might need to allocate, but the\naccretion of crud has moved me much closer to the point that\nall of this stuff gets ripped out and replaced.\n\nChange-Id: I19dda0a7fb5aa228f6baee7ae5293fdd174c8337\n"
    },
    {
      "commit": "9ada79cbe875dbcf7229b3f563303d21b0537d5f",
      "tree": "71ebc8e378e8c6a41e543048a57a5d091e167a57",
      "parents": [
        "47a058813f6bc448426d1037535c6a52c1079d15"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 14:29:52 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 14:50:27 2012 -0800"
      },
      "message": "Access checks may fail verification due to class loaders\n\nAt compile time we have incomplete class loader information. We need to\nbe tolerant and make this a runtime issue.\n\nChange-Id: I9e63b804ae68434753f0aea7a855014030a1542d\n"
    },
    {
      "commit": "47a058813f6bc448426d1037535c6a52c1079d15",
      "tree": "b9d016cd37217b2a8c0456e941881e052af16223",
      "parents": [
        "457cc515e6726de0bbcc4eccbb7b4e9e80fe3a67"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 12:23:33 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 14:30:49 2012 -0800"
      },
      "message": "AOT verification not founds are generic failures until runtime\n\nMake compile time verification failure of class, field and method not\nfound generic failures so that we reverify at runtime with complete\nclass loader accessibility.\n\nChange-Id: Iad2a1d3b37d9b5baba6b8bc9a4549ffd70b9a2bc\n"
    },
    {
      "commit": "457cc515e6726de0bbcc4eccbb7b4e9e80fe3a67",
      "tree": "b7744c5e99b61c6164b5a7047dc24b783deebe81",
      "parents": [
        "97f7a1cb69ab65b36961b52f6ab2580b5d947e93"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Feb 02 16:55:13 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Feb 03 14:25:28 2012 -0800"
      },
      "message": "Various fixes to the verifier for cts-tests.\n\nChange-Id: I812e7f1332ff1ce5a13d19433255098989531d1a\n"
    },
    {
      "commit": "97f7a1cb69ab65b36961b52f6ab2580b5d947e93",
      "tree": "e2344daf18379150dae997f45ae730888162cefe",
      "parents": [
        "37be8fb2f370449ccdf07e28866cedad53b41b0d",
        "5167c97a4f672ba821453418e3943988fabbfc43"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 10:58:28 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 10:58:28 2012 -0800"
      },
      "message": "Merge \"Improve debug-ability of native method registration\" into dalvik-dev"
    },
    {
      "commit": "5167c97a4f672ba821453418e3943988fabbfc43",
      "tree": "7046f25582fd55e6bb4b19bb2fb7781b0d6c60a6",
      "parents": [
        "f2e08b29d3e49f491cd1c29c226154e92380c179"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 10:41:20 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 10:49:06 2012 -0800"
      },
      "message": "Improve debug-ability of native method registration\n\nIf we fail to register a native we construct a stack trace which needs\nThrowable and stack trace support. Registering Throwable\u0027s natives first\nand making Throwable a root supports this. Previously we could only\ngenerate a stack trace when thread start up was complete.\n\nChange-Id: Icc7c1657988c7f36aceb1d4f3e61e7218f55e055\n"
    },
    {
      "commit": "37be8fb2f370449ccdf07e28866cedad53b41b0d",
      "tree": "b6026d1750ad54e232acb1512835be0bbd10ae85",
      "parents": [
        "f2e08b29d3e49f491cd1c29c226154e92380c179"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 09:34:29 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 09:34:29 2012 -0800"
      },
      "message": "We only need the heap lock when trimming.\n\nChange-Id: I217fb11738dbb6cd3a5b045e006042b79f45a596\n"
    },
    {
      "commit": "f2e08b29d3e49f491cd1c29c226154e92380c179",
      "tree": "75c44c309f93b85a03d8f2c6b30628e419cdb812",
      "parents": [
        "d9c67be7c116875d96b31e640ad47d587b205605",
        "e1d490cb55a0cad78fc0607e62370e3de9c37fce"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 09:33:08 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 09:33:08 2012 -0800"
      },
      "message": "Merge \"Don\u0027t request a heap trim in dex2oat\" into dalvik-dev"
    },
    {
      "commit": "d9c67be7c116875d96b31e640ad47d587b205605",
      "tree": "55ba94dde3916dfb88681e4967e4a45926436716",
      "parents": [
        "763d5fb2f83d9c93b5b764533005865a3d1034e1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 19:54:06 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 03 09:28:44 2012 -0800"
      },
      "message": "Start parallelizing dex2oat.\n\nThis is enough to perform type resolution and verification in parallel.\n\nThere appears to be a bug in InitCpu --- if you start enough threads\nat once, the CHECK at the end starts to fail, with self_check \u003d\u003d NULL; I\u0027ve\ncommented it out for now, but this will cause test failures until it\u0027s fixed.\n\nChange-Id: I4919682520bc01d3262c6b3d00c7bd2c2860a52e\n"
    },
    {
      "commit": "e1d490cb55a0cad78fc0607e62370e3de9c37fce",
      "tree": "e3d29ca9490f1b87feacb7569c33463b30697eb5",
      "parents": [
        "763d5fb2f83d9c93b5b764533005865a3d1034e1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 09:09:07 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 03 09:09:07 2012 -0800"
      },
      "message": "Don\u0027t request a heap trim in dex2oat\n\nChange-Id: I5711b8825ccdb68c1e57fe8f85729c723cd11994\n"
    },
    {
      "commit": "763d5fb2f83d9c93b5b764533005865a3d1034e1",
      "tree": "8c511eaf2d552e2676e0afb4b9c4efab22933786",
      "parents": [
        "f16600bd3676f098567f723602f02dd013af178c",
        "601a12302407d8199503d2cc6cc0829d5996696d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 19:50:32 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 19:50:32 2012 -0800"
      },
      "message": "Merge \"If dex2oat takes \u003e1s, show a breakdown of where the time went.\" into dalvik-dev"
    },
    {
      "commit": "f16600bd3676f098567f723602f02dd013af178c",
      "tree": "184cc070ee6ee515e36096d19f1db8eb9dba399f",
      "parents": [
        "054f6c19573100b29ce4139822bb496ba3d8e4d0"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Feb 02 18:19:29 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Feb 02 18:19:29 2012 -0800"
      },
      "message": "Minor compiler tuning.\n\nAssembling is an iterative process because we don\u0027t know final\ncode offsets until the end (and they can change during assembly).\nAvoid some unnecessary work on assembly passes that must be\nredone.  Small, but measurable, improvement.\n\nChange-Id: I42b48e4be6d9364bc0dfc290c4e711d264e4ab52\n"
    },
    {
      "commit": "601a12302407d8199503d2cc6cc0829d5996696d",
      "tree": "fa72500fb24cb4d69a5c1e016db3ef4d57f0fd20",
      "parents": [
        "054f6c19573100b29ce4139822bb496ba3d8e4d0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 17:47:38 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 17:47:38 2012 -0800"
      },
      "message": "If dex2oat takes \u003e1s, show a breakdown of where the time went.\n\nTurns out that we spend nearly as much time verifying as actually compiling.\n\nChange-Id: Icf2e42b4cc77bd9a48a6d04a4fe19f57270c5927\n"
    },
    {
      "commit": "054f6c19573100b29ce4139822bb496ba3d8e4d0",
      "tree": "145606aa94fd2e8c8882d6f29387649229ba8972",
      "parents": [
        "1ff1b98327b8056e20cd959963d759697a2b2f11",
        "8cf5bc0ab8742df107f0f4fc8ec0e991b6568f11"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 17:08:25 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 17:08:25 2012 -0800"
      },
      "message": "Merge \"Simple heap trimming.\" into dalvik-dev"
    },
    {
      "commit": "8cf5bc0ab8742df107f0f4fc8ec0e991b6568f11",
      "tree": "2c21156aa0314dfa4f5b0cea9489e3aa16ebe743",
      "parents": [
        "c27273f0508fb56ba35bead311151fbe45724d35"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 16:32:16 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Feb 02 17:07:51 2012 -0800"
      },
      "message": "Simple heap trimming.\n\nChange-Id: I8a94b637e64c6b5586db3c41b6e9230e7c8250c8\n"
    },
    {
      "commit": "1ff1b98327b8056e20cd959963d759697a2b2f11",
      "tree": "b5f93a7ca614ab8f34551cf179f9bdb41bd4adf4",
      "parents": [
        "3c92a1833dcf1bda1b6180e053ffa4334866d1f9",
        "5abfa3ea35781464df8fae60aaf03f48a295e965"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Feb 02 16:46:25 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 16:46:25 2012 -0800"
      },
      "message": "Merge \"Compiler tuning\" into dalvik-dev"
    },
    {
      "commit": "5abfa3ea35781464df8fae60aaf03f48a295e965",
      "tree": "3db19d0ecfc1031f86d77964de636ec45d4ba690",
      "parents": [
        "6c7d244058b74cdd61533968dd6cddd7003d2671"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Jan 31 17:01:43 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Feb 02 15:56:41 2012 -0800"
      },
      "message": "Compiler tuning\n\nSignificant reduction in memory usage by the compiler.\n    o Estimated sizes of growable lists to avoid waste\n    o Changed basic block predecessor structure from a growable bitmap\n      to a growable list.\n    o Conditionalized code which produced disassembly strings.\n    o Avoided generating some dataflow-related structures when compiling\n      in dataflow-disabled mode.\n    o Added memory usage statistics\n    o Eliminated floating point usage as a barrier to disabling expensive\n      dataflow analysis for very large init routines.\n    o Because iterating through sparse bit maps is much less of a concern now,\n      removed earlier hack that remembered runs of leading and trailing\n      zeroes.\n\nAlso, some general tuning.\n    o Minor tweaks to register utilties\n    o Speed up the assembly loop\n    o Rewrite of the bit vector iterator\n\nOur previous worst-case method originally consumed 360 megabytes, but through\nearlier changes was whittled down to 113 megabytes.  Now it consumes 12 (which\nso far appears to close to the highest compiler heap usage of anything\nI\u0027ve seen).\n\nPost-wipe cold boot time is now less than 7 minutes.\n\nInstallation time for our application test cases also shows a large\ngain - typically 25% to 40% speedup.\n\nSingle-threaded host compilation of core.jar down to \u003c3.0s, boot.oat builds\nin 17.2s.  Next up: multi-threaded compilation.\n\nChange-Id: I493d0d584c4145a6deccdd9bff344473023deb46\n"
    }
  ],
  "next": "3c92a1833dcf1bda1b6180e053ffa4334866d1f9"
}
