)]}'
{
  "log": [
    {
      "commit": "1bf8d4dbe5cb9891e8a1125ff1928b544efc243a",
      "tree": "84b28ef4c8bdf7da73c16e891e2fe978b52d9a90",
      "parents": [
        "b29bbbc00071f56a4a98a2d94c3968a36763ed55"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 30 00:18:49 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 30 10:20:05 2013 -0700"
      },
      "message": "Profiler directed clean-up of dex2oat.\n\nFix bad usage of std::string in: the verifier and compiler driver method\narguments, causing unnecessary boxing and allocations; in creating a symbol for\nthe dex compilation unit, that is only used in portable builds; in pattern\nmatching for intrinsics by name.\n\nMake class linker dex and classes locks reader/writer to allow concurrent\ndex cache or class querying. Refactor ComputeCompilingMethodsClass to pass in a\ndex cache hint, to avoid taking any locks when the dex file of the compiling\nmethod matches that of the field or method being resolved.\n\nMake the RegType\u0027s HasClass method virtual to avoid frequent virtual method\ndispatch. Make RegTypeCache GetFromId inlinable.\n\nVarious other bits of whitespace and formatting clean-up.\n\nChange-Id: Id152e1e5a6fed2961dad0b612b7aa0c48001ef94\n"
    },
    {
      "commit": "b29bbbc00071f56a4a98a2d94c3968a36763ed55",
      "tree": "f4d22c4682c2df247dea7b6a9b43f8adbb1cc1e0",
      "parents": [
        "2edb373eb3ca903b2ee719b0c5b82e7595d172df",
        "b88b3daca9f3c1554e0ea82b462894cb744da671"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu May 30 00:22:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 30 00:22:11 2013 +0000"
      },
      "message": "Merge \"Revert \"Elision of checks optimization.\"\" into dalvik-dev"
    },
    {
      "commit": "b88b3daca9f3c1554e0ea82b462894cb744da671",
      "tree": "e6f2bd0e62c7bd72753499140a854a1c4e5a976a",
      "parents": [
        "ef7162edde3ec04f1cd5a8d09a665fcb337d30aa"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu May 30 00:21:55 2013 +0000"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu May 30 00:21:55 2013 +0000"
      },
      "message": "Revert \"Elision of checks optimization.\"\n\nThis reverts commit ef7162edde3ec04f1cd5a8d09a665fcb337d30aa\n\nChange-Id: I914454adbe3a0d2f23f841efa1a201f3cbff4b6e\n"
    },
    {
      "commit": "2edb373eb3ca903b2ee719b0c5b82e7595d172df",
      "tree": "1f9dff9741fbb70df742932700b533c53ea88ae7",
      "parents": [
        "f8582c3b87efa0245d176f768fd373e5b4289da4",
        "ef7162edde3ec04f1cd5a8d09a665fcb337d30aa"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 29 23:38:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 29 23:38:21 2013 +0000"
      },
      "message": "Merge \"Elision of checks optimization.\" into dalvik-dev"
    },
    {
      "commit": "ef7162edde3ec04f1cd5a8d09a665fcb337d30aa",
      "tree": "144a10ef3becf9b5d778f87ebf5223eefc54e11c",
      "parents": [
        "e3cd2f0e3c3d976ae9c65c8a731003a5aaf71986"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Tue May 28 14:14:12 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Wed May 29 16:36:59 2013 -0700"
      },
      "message": "Elision of checks optimization.\n\nWe now sharpen types in the verifier based on instance-of followed by ifeq/ifneq pattern.\nChanged comments to conform to 100 char per line limit.\nAdded asserts.\n\n\tmodified:   src/dex_file_verifier.cc\n\tmodified:   src/verifier/method_verifier.cc\n\tmodified:   src/verifier/register_line.cc\n\nChange-Id: I857279ccd1e73c07638b42601d436e0ea5860fe9\n"
    },
    {
      "commit": "f8582c3b87efa0245d176f768fd373e5b4289da4",
      "tree": "f4d22c4682c2df247dea7b6a9b43f8adbb1cc1e0",
      "parents": [
        "e3cd2f0e3c3d976ae9c65c8a731003a5aaf71986"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 29 16:33:03 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 29 16:33:03 2013 -0700"
      },
      "message": "Build fix.\n\nMIPS build exposed a latest bug in DexFile\u0027s binary search code.\nPortable build always requires a dex cache when using verifier based\nsharpening.\n\nChange-Id: I235c033d7eba0272b264f5dbda209ff5cd7cce93\n"
    },
    {
      "commit": "e3cd2f0e3c3d976ae9c65c8a731003a5aaf71986",
      "tree": "e6f2bd0e62c7bd72753499140a854a1c4e5a976a",
      "parents": [
        "1d9314c989114f330297d52dae3fe0cd4848b183"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 24 15:32:56 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 24 18:19:28 2013 -0700"
      },
      "message": "Enable devirtualization for abstract and sub-class methods.\n\nIf we know the type of a receiver in the verifier we record devirtualization\ndata. Currently we only use this data to avoid virtual method dispatch when\nwe know the receiver of a method isn\u0027t a sub-class. This change allows\ndevirtualization of virtual and interface methods when we know the receiver\u0027s\ntype and the method the we\u0027d find via dispatch is either known within boot or\nhas a reference from the current dex file.\n\nPass the receiver through to the method resolution trampoline as\ndevirtualization may mean the dex method index needs to be made more accurate\nfor the receiver.\n\nTidy up method devirtualization and related statistics.\n\nPush the devirtualization map lookup into a less common case to avoid\ntaking its lock.\n\nMake MethodReference a struct rather than a typedef of a pair, so the members\ncan have more meaningful names than first and second.\n\nRough statistics show that we devirtualize using this change around 2.5% of\nthe time, whilst some apps like GMS core devirtualize over 3.4% of the time.\n\nChange-Id: Ieed3471dbedfc4cc881d652631b67176bb37d394\n"
    },
    {
      "commit": "1d9314c989114f330297d52dae3fe0cd4848b183",
      "tree": "4535deb9faf85612d54b44b69ed7834ace36ac83",
      "parents": [
        "63937db1cec24d065e2b4cdb7a41809528b5085b"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri May 24 10:44:48 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri May 24 10:44:48 2013 -0700"
      },
      "message": "fix indentation\n\nfixing indentation to align with rest of the file.\n\nChange-Id: I27b5cabee25c4de552d0c1bae3e2f3f53cf0fcc9\n"
    },
    {
      "commit": "63937db1cec24d065e2b4cdb7a41809528b5085b",
      "tree": "dcdbad47af267bbb79fa16a2847ad47cc94ab76a",
      "parents": [
        "b1a00bdce9391a8f23cc2f3ef3dd9eedaafa8d49"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri May 24 09:08:32 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri May 24 09:53:55 2013 -0700"
      },
      "message": "Fix mac build\n\nSmall fix for mac build: apple\u0027s gcc doesn\u0027t comprehend __attribute__((hot))\n\nChange-Id: I2cab22e5bfdc1d22027b12d8103bd56cb407a609\n"
    },
    {
      "commit": "b1a00bdce9391a8f23cc2f3ef3dd9eedaafa8d49",
      "tree": "49a84c55ab6b73dcf867f7cb178412bfa8053c33",
      "parents": [
        "90e33974cf5f29c36747dc580c0f9fae821c5143",
        "ba3ce9a51651f3f3de2ecc82673b46762b1f2d9d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 24 00:06:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 24 00:06:20 2013 +0000"
      },
      "message": "Merge \"Re-enable thread-safety checking on host, warn when not enabled.\" into dalvik-dev"
    },
    {
      "commit": "ba3ce9a51651f3f3de2ecc82673b46762b1f2d9d",
      "tree": "1358c21dc68f0f8e268c6c54a3f0297694bf6212",
      "parents": [
        "790ad90ccd2f3e297e2cf0a47adbf4f9ffb10149"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 17 18:50:09 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 23 15:52:14 2013 -0700"
      },
      "message": "Re-enable thread-safety checking on host, warn when not enabled.\n\nDisable thread safety checks in the interpreter where template specialization\nis causing annotalysis issues.\n\nChange-Id: I178ea278a93a3eb90f386b3e02827b5c61ea0e52\n"
    },
    {
      "commit": "90e33974cf5f29c36747dc580c0f9fae821c5143",
      "tree": "ae7d43ecad7c6ae4f6e18f763a9a2808f248c611",
      "parents": [
        "41bc990eb50571bbe67399ba6ff1fec08c02243e",
        "b43cef30fa7171f5b33c5f94853ad8474ed08022"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 23 22:05:10 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 23 22:05:10 2013 +0000"
      },
      "message": "Merge \"Fix for register number display in oatdump.\" into dalvik-dev"
    },
    {
      "commit": "b43cef30fa7171f5b33c5f94853ad8474ed08022",
      "tree": "7b2e6525f0d23f3c24821e45f9ac264362239ab6",
      "parents": [
        "d4e868a25128e31c92b2779e7d2e15f9afdf4fff"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Thu May 23 11:59:20 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Thu May 23 15:01:38 2013 -0700"
      },
      "message": "Fix for register number display in oatdump.\n\nChange-Id: Iefd52cb5df95d118804e7f5bbd921b82f5f11213\n"
    },
    {
      "commit": "41bc990eb50571bbe67399ba6ff1fec08c02243e",
      "tree": "4afa1b41d9eac9bac8883f0ca08ff82de4e8917b",
      "parents": [
        "8152be8ff881af33366d35bd9791b83586a4af22",
        "d4e868a25128e31c92b2779e7d2e15f9afdf4fff"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 23 21:14:47 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 23 21:14:47 2013 +0000"
      },
      "message": "Merge \"Partial fix for reg number display in oatdump.\" into dalvik-dev"
    },
    {
      "commit": "8152be8ff881af33366d35bd9791b83586a4af22",
      "tree": "f65c63a0e903ea7bc0865577b657674c809a467c",
      "parents": [
        "790ad90ccd2f3e297e2cf0a47adbf4f9ffb10149",
        "29e2e7e6807824f0d5dbfdd15835d2854ea7717c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 23 21:11:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 23 21:11:53 2013 +0000"
      },
      "message": "Merge \"Use UniquePtr in MethodVerifier::GenerateDevirtMap.\" into dalvik-dev"
    },
    {
      "commit": "790ad90ccd2f3e297e2cf0a47adbf4f9ffb10149",
      "tree": "719a141f77194d4eeab03bfb1e7385799e001263",
      "parents": [
        "ca6ad221d1bd857e26817f6b63d4ad9f3fe7ca40"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed May 22 15:02:08 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu May 23 10:17:09 2013 -0700"
      },
      "message": "Some more interpreter cleanup.\n\n- Pass method helper and code item to entry point so they don\u0027t\n  have to be regenerated.\n- Removed interpreter only check from invoke, changing entry\n  points instead.\n\nChange-Id: Ib0ea83dcffcdb295d3a48d92ad8a93ac59f9932e\n"
    },
    {
      "commit": "d4e868a25128e31c92b2779e7d2e15f9afdf4fff",
      "tree": "0a6403c0d74303332dba2bda1d4f92328a077892",
      "parents": [
        "7b15b1b6809a3dc46c69610491d1b10513f449db"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Thu May 23 09:44:17 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Thu May 23 09:54:24 2013 -0700"
      },
      "message": "Partial fix for reg number display in oatdump.\n\nChange-Id: Ia6b5c7e0cd40faae398be93f522d8f6095c4a040\n"
    },
    {
      "commit": "ca6ad221d1bd857e26817f6b63d4ad9f3fe7ca40",
      "tree": "a20fab36aaf7fe6428808df668f02548ae632089",
      "parents": [
        "a9cccb8517d988ef5cfc2392bc21049981fbd235"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu May 23 17:31:16 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu May 23 17:31:16 2013 +0200"
      },
      "message": "Specialize DoInvoke in interpreter.\n\nThis CL makes DoInvoke a template function to specialize it regarding invoke\ntype and whether it is a normal invoke or a range invoke.\n\nIt also removes the unused MethodHelper parameter.\n\nChange-Id: I90427f4bda2cc858a75babaae035e7ff7c2f0a80\n"
    },
    {
      "commit": "a9cccb8517d988ef5cfc2392bc21049981fbd235",
      "tree": "2692e416e73e503bdd1fa8a06408c15db2cfa6c8",
      "parents": [
        "6b019b33739bfe1613ac6960a2403fa54b4bc671",
        "c8a3ff8b6cfa0e3d38a4cd4aff1c28d231635783"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu May 23 15:23:26 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 23 15:23:27 2013 +0000"
      },
      "message": "Merge \"Optimize field access in interpreter by improving inlining.\" into dalvik-dev"
    },
    {
      "commit": "c8a3ff8b6cfa0e3d38a4cd4aff1c28d231635783",
      "tree": "fb4272bd2795e8eb6a59a688c8bb420066565cc1",
      "parents": [
        "7b15b1b6809a3dc46c69610491d1b10513f449db"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed May 22 11:26:35 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu May 23 10:13:15 2013 +0200"
      },
      "message": "Optimize field access in interpreter by improving inlining.\n\nThe DoFieldGet and DoFieldPut functions are forced to be inlined into the\ninterpreter. Nevertheless, this seems to expose a limitation in GCC\u0027s\ninlining process where two parts of the code are not inlined while they\ndepend on constant function parameters:\n- the call to Primitive::FieldSize is not completely inlined since there\u0027s\nstill a call to Primitive::ComponentSize,\n- the switch (which reads from/writes to the field) is not inlined but\ncopied into the interpreter.\n\nTo improve inlining, we could transform these functions into macros. Then GCC\nwould correctly inline the code. However, in order to keep the code simple and\nreadable, I chose to transform them into template functions. This only requires\nto move constant parameters of the function into template arguments.\n\nNote that while it creates multiple versions of DoFieldGet and DoFieldPut, they\nare not part of the final object file since they\u0027re all inlined.\n\nChange-Id: I424a56d4c442a56cb6d7a09cdaa30dcd25deeedb\n"
    },
    {
      "commit": "29e2e7e6807824f0d5dbfdd15835d2854ea7717c",
      "tree": "563969c30a3aa650e6da91efb16dbb69843f95ca",
      "parents": [
        "7b15b1b6809a3dc46c69610491d1b10513f449db"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Wed May 22 14:52:11 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Wed May 22 14:52:11 2013 -0700"
      },
      "message": "Use UniquePtr in MethodVerifier::GenerateDevirtMap.\n\nAlso fix some indentation.\n\nChange-Id: I384d9c11e316f898ff26d0de533e4c4193db10b5\n"
    },
    {
      "commit": "7f55288906c21b99801d75bb6fe17fe25af5c1e9",
      "tree": "e952b999b7002a58757430813c69996c1547d153",
      "parents": [
        "1880b24735679cd6c308713d85dab9ca40b2cf92"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 21 20:17:35 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 21 20:17:35 2013 -0700"
      },
      "message": "Fix ElfWriterMclinker for ART_USE_PORTABLE_COMPILER\n\nChange-Id: I425b28b872581a2b4936909e9c84cae7f3e96c8c\n"
    },
    {
      "commit": "1880b24735679cd6c308713d85dab9ca40b2cf92",
      "tree": "ecbc92ab4b8068e7779020ac670635d2660d332d",
      "parents": [
        "6951067ee14754454e17221fdef0d3d5ed7c4f7e",
        "6a47b9dc850b903aabefcfab4adb132cb68bba2e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 22 01:38:54 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 22 01:38:55 2013 +0000"
      },
      "message": "Merge \"Refactor ElfWriter and introduce ElfWriterQuick\" into dalvik-dev"
    },
    {
      "commit": "6a47b9dc850b903aabefcfab4adb132cb68bba2e",
      "tree": "924d2ea244bb01a48620e704b181a1d9d1f4055c",
      "parents": [
        "7b15b1b6809a3dc46c69610491d1b10513f449db"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 17 10:58:25 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 21 18:37:04 2013 -0700"
      },
      "message": "Refactor ElfWriter and introduce ElfWriterQuick\n\nChange-Id: I3eaa1fa1085bb4d28fe342a7420272720e48274b\n"
    },
    {
      "commit": "6951067ee14754454e17221fdef0d3d5ed7c4f7e",
      "tree": "5994c12990ea02ca7a73377787ced2c700351557",
      "parents": [
        "7b15b1b6809a3dc46c69610491d1b10513f449db"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 21 17:34:55 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 21 17:34:55 2013 -0700"
      },
      "message": "Some interpreter cleanup.\n\n- Pass result pointer to interpreter to interpreter entry point.\n- Avoid using MethodHelper.ChangeMethod in DoInvoke.\n\nChange-Id: I714b78d50fb14d7a0edced54cd4de78ae54021da\n"
    },
    {
      "commit": "7b15b1b6809a3dc46c69610491d1b10513f449db",
      "tree": "857b7ed9f4bb71591decf5228695c7c74c7a814b",
      "parents": [
        "ca39692028741f795132d68fe24f43488eeaae3b",
        "75b2a4abea8a608d7aec3e417498b69b31026a74"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue May 21 16:50:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 21 16:50:40 2013 +0000"
      },
      "message": "Merge \"Remove use of DecodedInstruction at runtime.\" into dalvik-dev"
    },
    {
      "commit": "75b2a4abea8a608d7aec3e417498b69b31026a74",
      "tree": "64c349fd18332fbdc9371324e4c36f1312e1daea",
      "parents": [
        "34d64cba998cb86867109db351113e6f7c9293f7"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue May 21 09:25:10 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue May 21 18:29:04 2013 +0200"
      },
      "message": "Remove use of DecodedInstruction at runtime.\n\nThis CL removes the use of DecodedInstruction while executing code. This is a\nfirst step in removing its global use in Art.\n\nChange-Id: Ic7264e0d614ffab99931fd50347394a68152a10c\n"
    },
    {
      "commit": "ca39692028741f795132d68fe24f43488eeaae3b",
      "tree": "d71d4ef13fec33abb6e6476f9e8689ff50f0dea9",
      "parents": [
        "33e15bcb4c0873cbce9d039fbc9bc7f4cf257765",
        "33e9566255c426e7a2c8fca5b8a1b6a94a5d352c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue May 21 14:59:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 21 14:59:00 2013 +0000"
      },
      "message": "Merge \"Various GCC 3.6 and clang build fixes.\" into dalvik-dev"
    },
    {
      "commit": "33e9566255c426e7a2c8fca5b8a1b6a94a5d352c",
      "tree": "80965d3d329c09ec5a574863a356562e42f639ff",
      "parents": [
        "34d64cba998cb86867109db351113e6f7c9293f7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 20 20:29:14 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 20 21:16:03 2013 -0700"
      },
      "message": "Various GCC 3.6 and clang build fixes.\n\nRemove #error in common_test.h that fires with clang build and replace with\nruntime error.\nFix bit rot caused by not compiling with Wthread-safety.\nFix clang build issues in compiler relating to missing header file definitions\nin object files.\nOther minor build and tidying issues.\n\nChange-Id: Ife829ab0664581936155be524de46e6181c750b0\n"
    },
    {
      "commit": "33e15bcb4c0873cbce9d039fbc9bc7f4cf257765",
      "tree": "72ef6a1befcf021ee23c76a199d8f5bbdd6da51a",
      "parents": [
        "34d64cba998cb86867109db351113e6f7c9293f7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 20 20:04:20 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 20 20:36:20 2013 -0700"
      },
      "message": "Fix bug in OOME inside an OOME hampering run-test 061.\n\nIf we\u0027re throwing an OOME inside an OOME we don\u0027t want to clear the current\nthread\u0027s throwing OOME flag.\n\nChange-Id: I9aa362263dc4fca84f3d3a629c480112c3263008\n"
    },
    {
      "commit": "8b81549b4f540132b2cac4a0ae4d2c292307d24f",
      "tree": "263ced6fcdf8bbc42b28618ca50476cde3fc6b3b",
      "parents": [
        "83d97e19c1aa00af7e02d234223b1de35be8cede",
        "6bdd8f4bf372d703dd6304fe03a6b1a119502c65"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 17 23:01:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 17 23:01:51 2013 +0000"
      },
      "message": "Merge \"Optimize aput-object in interpreter.\" into dalvik-dev"
    },
    {
      "commit": "6bdd8f4bf372d703dd6304fe03a6b1a119502c65",
      "tree": "0666aa9322ad90162b231e0a7fd41d7a4d20099b",
      "parents": [
        "e606010a5e5ea803736576b47740a2551e5d0dfc"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri May 17 14:44:01 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri May 17 17:46:08 2013 +0200"
      },
      "message": "Optimize aput-object in interpreter.\n\nInline ObjectArray::Set test about valid index and valid object. Adding\nObjectArray::IsValidObject method to check for ArrayStoreException and\ncall it from interpreter.\n\nChange-Id: I99beeb531455049fc189f9b8e8f4f020591f7bab\n"
    },
    {
      "commit": "83d97e19c1aa00af7e02d234223b1de35be8cede",
      "tree": "7291b355521683100f2e7366291a55ca9e754bb7",
      "parents": [
        "e15e7faff3deb937c8617428e70ffb6b79ad77e0",
        "74c070440e9c3f362cd0e9e13754bc8693ed9073"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 17 15:20:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 17 15:20:03 2013 +0000"
      },
      "message": "Merge \"Help inline LogMessage::stream method.\" into dalvik-dev"
    },
    {
      "commit": "e15e7faff3deb937c8617428e70ffb6b79ad77e0",
      "tree": "df96c52ddb7e6f1b85ecec1e3543896c79d633b7",
      "parents": [
        "e606010a5e5ea803736576b47740a2551e5d0dfc"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri May 17 14:20:05 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri May 17 14:20:05 2013 +0200"
      },
      "message": "Update monitor enter/exit exception handling in interpreter.\n\nThis CL prevents from checking if an exception is pending when we just\nthrew a NPE. Move the conditional check after calling monitor enter/exit\nroutine.\n\nChange-Id: Icfebf3914f6439b47038d7a00932251f8000c1c2\n"
    },
    {
      "commit": "74c070440e9c3f362cd0e9e13754bc8693ed9073",
      "tree": "00d99e15e0b8297ab08bfb1cf1abe51fda5799ef",
      "parents": [
        "e606010a5e5ea803736576b47740a2551e5d0dfc"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri May 17 14:04:12 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri May 17 14:04:12 2013 +0200"
      },
      "message": "Help inline LogMessage::stream method.\n\nA very simple method that should be safely inlined by compiler.\n\nChange-Id: I7a2fa41d566e36b30b1afd6a2f6b0c2f986dc46f\n"
    },
    {
      "commit": "e606010a5e5ea803736576b47740a2551e5d0dfc",
      "tree": "cc01184f0f2e086642bd741fd71cd447c7a1295f",
      "parents": [
        "c4ee12e73fc844f28a9812a9141985cf05143a57"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 16 12:01:04 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 16 12:01:04 2013 -0700"
      },
      "message": "Increase logging around bad dex files.\n\nChange-Id: I294aecd401046537004c79dcd0041b61af962892\n"
    },
    {
      "commit": "c4ee12e73fc844f28a9812a9141985cf05143a57",
      "tree": "59ea9f105b39b05beea9ff17cda83f1122461629",
      "parents": [
        "d8274bcbc565fff1254574b3cbf46dc4e7b52812"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 16 11:19:53 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 16 11:26:24 2013 -0700"
      },
      "message": "Avoid recursion if logging lock is corrupt.\n\nIf the logging lock is corrupt then using LOG fails and recursive death ensues.\nMake Mutex a friend of LogMessage so that it can do raw logging in this special\nsituation.\nOpportunistically also make fields of LogMessage and LogMessageData that can be\nconst, const.\n\nChange-Id: I9e0d07c3224096bcf03d6410cd64bb8b5c831fac\n"
    },
    {
      "commit": "d8274bcbc565fff1254574b3cbf46dc4e7b52812",
      "tree": "f3435a06f129a1620212b0253074df2292c976cb",
      "parents": [
        "fa46d3ee8cba2985c5c8bdfe47d15daf0613ebdc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 15 15:54:45 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 15 15:54:45 2013 -0700"
      },
      "message": "Fix clang build issues.\n\nAlso add PREAMBLE macro to allow head of interpreter loop to be simply hoisted.\n\nChange-Id: Id4a3f81d56b5981e1a497cf2bc72f1c263364fe5\n"
    },
    {
      "commit": "fa46d3ee8cba2985c5c8bdfe47d15daf0613ebdc",
      "tree": "2743be5358aef17e9ae21b0626409feeea919771",
      "parents": [
        "9cec247849c248f6c45a14eae5414b69eb8fc67d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 15 00:16:04 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 15 11:03:44 2013 -0700"
      },
      "message": "Interpreter tweaks\n\nIncrease the amount of inlining and hot function hints in the interpreter\nto encourage the hot Execute function to be faster.\nPerformance is 3x slower than Dalvik+JIT on FibonacciFast and similar\nmicrobenchmarks.\n\nChange-Id: I2b1a0c7545f86036b9b1b5ccac881d06292356d8\n"
    },
    {
      "commit": "9cec247849c248f6c45a14eae5414b69eb8fc67d",
      "tree": "844d6fe7a5551356223c30be1955664bd0c802cd",
      "parents": [
        "e652cdd8f64d8479c9b7558f177dcee0bf6d026c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 14 18:17:06 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 14 18:17:06 2013 -0700"
      },
      "message": "Various improvements to interpreter.\n\n- Created separate Next_xxx methods to get the next instruction to\n  avoid having to look up the size based on the opcode.\n- Moved exception handling to after throwing instructions only.\n- Added a test of all thread flags before checking for suspend during\n  the interpreter execute loop.\n- Made it unlikely that instrumentation has dex pc listeners for\n  DexPcMovedEvent.\n\nChange-Id: I88afc98cf42f2e36c747582df8e74669d24ef864\n"
    },
    {
      "commit": "e652cdd8f64d8479c9b7558f177dcee0bf6d026c",
      "tree": "d648d2a56872c5b0c17b3a8a31407532eaaf9f97",
      "parents": [
        "27297b1bc653e82944a70ce1aeddbc5d4d4a2980",
        "6613519990bdb5616f2858c146f162ef760f03d2"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 14 19:01:18 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 14 19:01:18 2013 +0000"
      },
      "message": "Merge \"Allocate shadow frames in interpreter on stack instead of on heap.\" into dalvik-dev"
    },
    {
      "commit": "27297b1bc653e82944a70ce1aeddbc5d4d4a2980",
      "tree": "e2b24d6ca902b8ae61d14b7bf26763b458a580ca",
      "parents": [
        "807a25640d4f4de8143b160b3bb8f552ffbf6f4a",
        "bddf97641c9371ec74c63bca52fff62fecd73750"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 14 18:38:33 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 14 18:38:33 2013 +0000"
      },
      "message": "Merge \"Fix JNI_CreateJavaVM signature to match jni.h\" into dalvik-dev"
    },
    {
      "commit": "6613519990bdb5616f2858c146f162ef760f03d2",
      "tree": "9ea428594c2062b9e97a7735f0cdadc1e8e85d5a",
      "parents": [
        "807a25640d4f4de8143b160b3bb8f552ffbf6f4a"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 14 11:02:41 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 14 11:37:40 2013 -0700"
      },
      "message": "Allocate shadow frames in interpreter on stack instead of on heap.\n\nInstead of using new, the shadow frames are allocated using alloca.\n\nChange-Id: Idc92fbccf1fe7589ace7b97811b21a5c67c97fd2\n"
    },
    {
      "commit": "bddf97641c9371ec74c63bca52fff62fecd73750",
      "tree": "f5405e66371d550094c098c67174a1fac420ead1",
      "parents": [
        "cf479b20dc78d08af75fac7192a92f7c4b259d54"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 14 11:35:37 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 14 11:36:45 2013 -0700"
      },
      "message": "Fix JNI_CreateJavaVM signature to match jni.h\n\nChange-Id: I208bd916d85b24864f686eab9d23e104a2cb35b3\n"
    },
    {
      "commit": "807a25640d4f4de8143b160b3bb8f552ffbf6f4a",
      "tree": "3972b74f95282a292f9fa8bfca82bd8bbe736cfc",
      "parents": [
        "cf479b20dc78d08af75fac7192a92f7c4b259d54"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Apr 15 09:33:39 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue May 14 17:48:52 2013 +0200"
      },
      "message": "Improve interpreter performance.\n\nBug: 8196227\n\nThis CL removes the use of DecodedInstruction to read instruction opcode and\noperands. It now directly access to each operand according to instruction\nformat (like VRegA_11x for accessing register vA with format 11x).\n\nIt also caches some information used for instrumentation like \u0027this\u0027 object\nand current method and add missing check about pending exception.\n\nChange-Id: I8c03c0aea9d75068b89e3cb2c8c12383d7928281\n"
    },
    {
      "commit": "cf479b20dc78d08af75fac7192a92f7c4b259d54",
      "tree": "b2faca51805dea67ea0a4a430a1bbbbda7e29e9f",
      "parents": [
        "a55e10d93d439795c135eef316ac201348274f67",
        "aa4a793d7175ceeb1efa215c2af5e52e42b22f0a"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon May 13 20:14:50 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 13 20:14:50 2013 +0000"
      },
      "message": "Merge \"Rename abstract method code_ to entry_point_from_compiled_code_.\" into dalvik-dev"
    },
    {
      "commit": "aa4a793d7175ceeb1efa215c2af5e52e42b22f0a",
      "tree": "9c3db54a108d4327471c6d4890d28cdfe1f030ff",
      "parents": [
        "167436311a08a65dea28dda079a137893821c9c7"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon May 13 11:28:27 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon May 13 13:14:19 2013 -0700"
      },
      "message": "Rename abstract method code_ to entry_point_from_compiled_code_.\n\nChange-Id: I9b02d2df95bbeafa6e6387b461f574c57337a61e\n"
    },
    {
      "commit": "a55e10d93d439795c135eef316ac201348274f67",
      "tree": "9d76ad9ea314cfc4389e7d53e437b65e6fe53aa8",
      "parents": [
        "167436311a08a65dea28dda079a137893821c9c7",
        "a5abf7091711eed1e9f1d0e1538fe9963ebdf31c"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon May 13 19:35:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 13 19:35:19 2013 +0000"
      },
      "message": "Merge \"Compiler: replace DOM traversal computation\" into dalvik-dev"
    },
    {
      "commit": "a5abf7091711eed1e9f1d0e1538fe9963ebdf31c",
      "tree": "e256df83ca632744d144854403a326d90cb683a7",
      "parents": [
        "bf47e5f28b1aa39748dce8ac5abbabca1baee093"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Apr 12 14:39:29 2013 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon May 13 12:34:28 2013 -0700"
      },
      "message": "Compiler: replace DOM traversal computation\n\nOriginally the old trace JIT used a few recursive graph walking\nalgorithms - which was perfectly reasonable given that the graph\nsize was capped at a few dozen nodes at most.  These were replaced\nwith iterative walk order computations  - or at least I thought\nthey all were.  Missed one of them, which caused a stack overflow\non a pathologically large method compilation.\n\nRenaming of some arena_allocator items for consistency and clarity.\nMore detailed memory usage logging.  Reworked the allocator to waste\nless space when an allocation doesn\u0027t fit and a new block must be\nallocated.\n\nChange-Id: I4d84dded3c47819eefa0de90ebb821dd12eb8be8\n"
    },
    {
      "commit": "167436311a08a65dea28dda079a137893821c9c7",
      "tree": "4754f47306a0ffa0ad97635015d9596b427dd425",
      "parents": [
        "c44f68fb6a6d55c0df28dd05b93d8906ec20bd08"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed May 08 10:59:04 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri May 10 17:16:00 2013 -0700"
      },
      "message": "Improve interpreter to interpreter invokes.\n\nThe interpreter constructs a shadow frame instead of arg array to make\ninterpreter to interpreter transitions faster. This adds a pointer to\nan entry for the interpreter to each method.\n\nChange-Id: If48911d3aa3470847b8548a9e92090b829f4f254\n"
    },
    {
      "commit": "c44f68fb6a6d55c0df28dd05b93d8906ec20bd08",
      "tree": "fc4ac69b301b7461d285f440730909555fca1809",
      "parents": [
        "2c6de22d6dcdc6fe1a065480582989e15a47fcb5"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri May 10 13:24:54 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Fri May 10 13:24:54 2013 -0700"
      },
      "message": "Fixed Android.common.mk #define setting for small art\n\nWe were seeing things compile when they shouldn\u0027t have. This fixes it.  Plus added\na bit more documentation to options, set default values for the two small art related\nthresholds to zero.\n\nChange-Id: Id5db11962f3e30d8d4ee6b85d4cf7d6e66323adb\n"
    },
    {
      "commit": "2c6de22d6dcdc6fe1a065480582989e15a47fcb5",
      "tree": "a1c248a80352e66951681cfc7dbe94f5afc88d4b",
      "parents": [
        "8a01a3a8caee37d4c4cf1a8c673f897c74aaf785"
      ],
      "author": {
        "name": "Sameer Abu Asal",
        "email": "sasal@google.com",
        "time": "Thu May 02 17:38:59 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 06 23:04:06 2013 -0700"
      },
      "message": "Improve verifier speed.\n\nMain improvement is in the RegTypeCache::From() Class lookup, the cache is first\nlooked up for the passed descriptor instead of trying to resolve the class.\nFor cases when the descriptor is not found it is resolved to a class and a new type is\ncreated and added to the cache.\n\nChange-Id: I594a4c00b351843dd576b5af29e9dcaed18e04e8\n"
    },
    {
      "commit": "8a01a3a8caee37d4c4cf1a8c673f897c74aaf785",
      "tree": "2abfaf7d42e5aaabdc1faaeeda01f5a904fd64ed",
      "parents": [
        "bf47e5f28b1aa39748dce8ac5abbabca1baee093"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 06 13:25:44 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 06 16:04:04 2013 -0700"
      },
      "message": "Make ShadowFrame fields const when not in portable.\n\nShadowFrames in quick don\u0027t need the HasReferenceArray test as they always have\na reference array. Make the method_ and number_of_vregs_ fields const to aid\nG++\u0027s optimization of the interpreter.\n\nModify the OFFSETOF_MEMBER macro to handle const fields.\n\nChange-Id: I696480789190f7c5190449b9c278d37853903a5e\n"
    },
    {
      "commit": "bf47e5f28b1aa39748dce8ac5abbabca1baee093",
      "tree": "29b10c5d1ae32fc93ab02332c16ed76d469de78e",
      "parents": [
        "ff9c9950ffd12a8904aecfc71f7a1c590001d4fb"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat May 04 16:06:09 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat May 04 18:13:28 2013 -0700"
      },
      "message": "Tracking merge of JWR32E (#656244) to dalvik-dev\n\nChange-Id: I2c7baf8e3ccb7a0f05f767628917caed83720a2a\n"
    },
    {
      "commit": "ff9c9950ffd12a8904aecfc71f7a1c590001d4fb",
      "tree": "7e8ca1fa2fd5c0431f24b62a91b439534614d067",
      "parents": [
        "862cedbd0d5d7e1ac8848679aa930878c03c212f",
        "02c42237741b5573f9d790a5a0f17f408dceb543"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 02 23:47:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 02 23:47:48 2013 +0000"
      },
      "message": "Merge \"Supporting de-virtualization for precise types.\" into dalvik-dev"
    },
    {
      "commit": "862cedbd0d5d7e1ac8848679aa930878c03c212f",
      "tree": "e3022faa835c9b513f64fafb0ab56bd7e5c92a0a",
      "parents": [
        "cf9773a7adff883012dbd519a66e85f1f7aaaa11",
        "b3eb9eb86370791735ca4e9c1bd5bb4f3ff62069"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu May 02 23:22:20 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 02 23:22:20 2013 +0000"
      },
      "message": "Merge \"Fixing Small_Art Default\" into dalvik-dev"
    },
    {
      "commit": "b3eb9eb86370791735ca4e9c1bd5bb4f3ff62069",
      "tree": "2754b4cd1fabf4e145e0e33e849b21a1082c23ab",
      "parents": [
        "8447d84d847d4562d7a7bce62768c27e7d20a9aa"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu May 02 16:17:45 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu May 02 16:17:45 2013 -0700"
      },
      "message": "Fixing Small_Art Default\n\nSmall ART mode was turned on by default.  It should be off by default as there\u0027s otherwise no option to\nturn it off.\n\nChange-Id: I9b723f7c5d9c95c210722861fc1e0cd08560a371\n"
    },
    {
      "commit": "02c42237741b5573f9d790a5a0f17f408dceb543",
      "tree": "293d72039e2e1a0e56fbcb572c6d92ccedc5581a",
      "parents": [
        "cf9773a7adff883012dbd519a66e85f1f7aaaa11"
      ],
      "author": {
        "name": "Sameer Abu Asal",
        "email": "sasal@google.com",
        "time": "Tue Apr 30 12:09:45 2013 -0700"
      },
      "committer": {
        "name": "Sameer Abu Asal",
        "email": "sasal@google.com",
        "time": "Thu May 02 14:19:17 2013 -0700"
      },
      "message": "Supporting de-virtualization for precise types.\n\nSharpening invoke-virtual and invoke-interface calls to invoke-direct for cases\nwhere the type of \"this\" pointer in the invoke- params is precisely known.\n\nInstructions that have an invoke opcode are marked as interesting, for each invoke-virtual/interface\nwe come across with a precise type for \"this\" we mark the location as a candidate for sharpening,\nresolve the concrete method and save its method reference \u003cDexFile, DexMethodIndex\u003e to be sharpened\nin CompilerDriver::ComputeInvokeInfo().\n\nAdded a new entry to AOT statistics showing the percentage of sharpened calls that were based on\ntype analysis.\n\nFix a minor bug in type creation for GetSuperClass(). Previously super class of a precise reference\nhad precise types created which is not necessarily the case.\n\nFixed DCHECK in Class::FindVirtualMethodForVirtual to handle cases for Miranda methods.\n\nSharpening only takes place for cases where no soft failures happen at verification time.\n\nChange-Id: Ic027d0226d6f95260c1918014cb6313f2e0ca455\n"
    },
    {
      "commit": "cf9773a7adff883012dbd519a66e85f1f7aaaa11",
      "tree": "2202662f22597850bf03c5dbbb0305bfe46816a5",
      "parents": [
        "654d91957edb4d1f7534ed5d743cf914db763448",
        "8447d84d847d4562d7a7bce62768c27e7d20a9aa"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Wed May 01 17:03:05 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 01 17:03:06 2013 +0000"
      },
      "message": "Merge \"Compile filter for small applications and methods\" into dalvik-dev"
    },
    {
      "commit": "8447d84d847d4562d7a7bce62768c27e7d20a9aa",
      "tree": "46aad5bf1bc3d3ce28b24ef1fcc5463224083991",
      "parents": [
        "88fc036842eb3c48acd5d3b01e75b3012c996d90"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Tue Apr 30 17:27:40 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Tue Apr 30 20:32:59 2013 -0700"
      },
      "message": "Compile filter for small applications and methods\n\nAdds a filter per method and program size (in method count). Right now, options are treated\nas runtime options...but we might want to change this and separate options for compilers and\nruntime.\n\nChange-Id: I8c3e925116119af8ffa95ff09f77bcfdd173767b\n"
    },
    {
      "commit": "654d91957edb4d1f7534ed5d743cf914db763448",
      "tree": "f87cb1349f2eff97cd4f5edd4b015b4b2a4ff072",
      "parents": [
        "10c35dc16aea5b77f201f42fac4b39523e6ceed7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Apr 30 18:35:32 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Apr 30 18:37:22 2013 -0700"
      },
      "message": "Add conscrypt to art tests\n\nChange-Id: I26694517d398b0f84f48c7496c3159b7863fa833\n"
    },
    {
      "commit": "10c35dc16aea5b77f201f42fac4b39523e6ceed7",
      "tree": "18bb7dd508043edfe27466c16168426a442cff19",
      "parents": [
        "e40f302f539dbca0a4b2cd7ee9eba6d37095b584",
        "1f3bc2f0f9366594379249027622ab63673b0d3b"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed May 01 00:23:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 01 00:23:01 2013 +0000"
      },
      "message": "Merge \"Fix MIPS jni stub and save gp as part of ref only saves.\" into dalvik-dev"
    },
    {
      "commit": "e40f302f539dbca0a4b2cd7ee9eba6d37095b584",
      "tree": "661dcca0d82ce0598196ead391590fad291fb17f",
      "parents": [
        "302a72d6e0e99208db629053dd77dda85896f707"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 30 16:13:40 2013 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 30 16:13:40 2013 -0700"
      },
      "message": "Track rename of JSSE\n\nChange-Id: I1e038e63ccad098a5812bbb1532ca4dd839d4be0\n"
    },
    {
      "commit": "1f3bc2f0f9366594379249027622ab63673b0d3b",
      "tree": "473b78adefbb64038cf897e2500982a964c5fe14",
      "parents": [
        "88fc036842eb3c48acd5d3b01e75b3012c996d90"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 30 15:17:19 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 30 15:23:06 2013 -0700"
      },
      "message": "Fix MIPS jni stub and save gp as part of ref only saves.\n\nFor the jni stub, the code pointer move can\u0027t be in the delay slot\nbecause it jumps to the wrong place.\n\nThe gp register needs to be saved in the ref only frame in case an\nexception needs to be delivered afterwards.\n\nChange-Id: I71fb13e0e268aeaf50e8f1c093eb3262ea88cee8\n"
    },
    {
      "commit": "302a72d6e0e99208db629053dd77dda85896f707",
      "tree": "932d35c7dc03161f81f87dd1654b0330f942668c",
      "parents": [
        "31d4b8e0058b33e2c5ce792a69e5e897583652e2"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Apr 30 09:45:06 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Apr 30 09:45:06 2013 -0700"
      },
      "message": "Revert \"Supporting de-virtualization for precise types.\"\n\nThis reverts commit 31d4b8e0058b33e2c5ce792a69e5e897583652e2.\n"
    },
    {
      "commit": "31d4b8e0058b33e2c5ce792a69e5e897583652e2",
      "tree": "8b981aa8c0dcb2e540f5ba26951302f720299f8e",
      "parents": [
        "88fc036842eb3c48acd5d3b01e75b3012c996d90"
      ],
      "author": {
        "name": "Sameer Abu Asal",
        "email": "sasal@google.com",
        "time": "Mon Apr 29 11:31:03 2013 -0700"
      },
      "committer": {
        "name": "Sameer Abu Asal",
        "email": "sasal@google.com",
        "time": "Mon Apr 29 13:06:07 2013 -0700"
      },
      "message": "Supporting de-virtualization for precise types.\n\nSharpening invoke-virtual and invoke-interface calls to invoke-direct for cases\nwhere the type of \"this\" pointer in the invoke- params is precisely known.\n\nInstructions that have an invoke opcode are marked as interesting, for each invoke-virtual/interface\nwe come across with a precise type for \"this\" we mark the location as a candidate for sharpening,\nresolve the concrete method and save its method reference \u003cDexFile, DexMethodIndex\u003e to be sharpened\nin CompilerDriver::ComputeInvokeInfo().\n\nAdded a new entry to AOT statistics showing the percentage of sharpened calls that were based on\ntype analysis.\n\nFix a minor bug in type creation for GetSuperClass(). Previously super class of a precise reference\nhad precise types created which is not necessarily the case.\n\nFixed DCHECK in Class::FindVirtualMethodForVirtual to handle cases for Miranda methods.\n\nChange-Id: I0626d5cd1bc70a685db71abec067370ebdaf6edc\n"
    },
    {
      "commit": "88fc036842eb3c48acd5d3b01e75b3012c996d90",
      "tree": "932d35c7dc03161f81f87dd1654b0330f942668c",
      "parents": [
        "5d29a81465a973c66e479f8edf2a55f09a83fc9c",
        "f4da60751631f8bc098fbd04517f305bf7f20ae3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 26 22:57:41 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 26 22:57:41 2013 +0000"
      },
      "message": "Merge \"Revert \"Supporting de-virtualization for precise types.\"\" into dalvik-dev"
    },
    {
      "commit": "f4da60751631f8bc098fbd04517f305bf7f20ae3",
      "tree": "5a359b033ee308154ffbdcfea47708bacd1c9cb3",
      "parents": [
        "b0682d5f7970470130f43d35f37ae7605a8a9bb8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 26 22:53:05 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 26 22:53:05 2013 +0000"
      },
      "message": "Revert \"Supporting de-virtualization for precise types.\"\n\nThis reverts commit b0682d5f7970470130f43d35f37ae7605a8a9bb8\n\nChange-Id: I2b0dc3e716ee5c23b89d9fa6eb0ef05c24784b3e\n"
    },
    {
      "commit": "5d29a81465a973c66e479f8edf2a55f09a83fc9c",
      "tree": "118352977f1507c209d075478b0ae5d7b5c64265",
      "parents": [
        "dfe0a24ff341e1758d00f2d51ca38eda8e58c705",
        "6ed90ad082b41b8e9665ef9c647fa4353f1269cd"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 26 22:05:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 26 22:05:19 2013 +0000"
      },
      "message": "Merge \"Changed image file to no longer be executable.\" into dalvik-dev"
    },
    {
      "commit": "dfe0a24ff341e1758d00f2d51ca38eda8e58c705",
      "tree": "35648fda0fa0c8608a3b8def0be22996e18a0841",
      "parents": [
        "79fe539587d4c09244172d0168eeed0ec9770466",
        "b0682d5f7970470130f43d35f37ae7605a8a9bb8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 26 22:03:46 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 26 22:03:46 2013 +0000"
      },
      "message": "Merge \"Supporting de-virtualization for precise types.\" into dalvik-dev"
    },
    {
      "commit": "6ed90ad082b41b8e9665ef9c647fa4353f1269cd",
      "tree": "932d35c7dc03161f81f87dd1654b0330f942668c",
      "parents": [
        "79fe539587d4c09244172d0168eeed0ec9770466"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 26 15:02:08 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 26 15:02:08 2013 -0700"
      },
      "message": "Changed image file to no longer be executable.\n\nThe stubs are all gone now.\n\nChange-Id: I6eaa1bf3858759f84924a9c57c67e58bb5bb25ee\n"
    },
    {
      "commit": "79fe539587d4c09244172d0168eeed0ec9770466",
      "tree": "4fb8fbd03727a74acb4dfde7e969adf32ee32750",
      "parents": [
        "09b55e1df3b0bcecee25882e45e882887cc8654f"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 24 18:41:58 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 26 14:50:52 2013 -0700"
      },
      "message": "Removing remaining compiled stubs from image.\n\nAbstract method error stub and jni dlsym lookup stubs are gone.\nAfter this change, the image no longer needs to be executable.\n\nChange-Id: Ic75d72bf7e76e3b8ecc596e82af68ab592dde15e\n"
    },
    {
      "commit": "b0682d5f7970470130f43d35f37ae7605a8a9bb8",
      "tree": "3bf3d9e1b3ed5da8e7db5c9e736e6cde7c5e30c8",
      "parents": [
        "ba1814eeac6adb44f2f78317556b3484b19e02fc"
      ],
      "author": {
        "name": "Sameer Abu Asal",
        "email": "sasal@google.com",
        "time": "Fri Apr 05 19:13:07 2013 -0700"
      },
      "committer": {
        "name": "Sameer Abu Asal",
        "email": "sasal@google.com",
        "time": "Fri Apr 26 10:12:52 2013 -0700"
      },
      "message": "Supporting de-virtualization for precise types.\n\nSharpening invoke-virtual and invoke-interface calls to invoke-direct for cases\nwhere the type of \"this\" pointer in the invoke- params is precisely known.\n\nInstructions that have an invoke opcode are marked as interesting, for each invoke-virtual/interface\nwe come across with a precise type for \"this\" we mark the location as a candidate for sharpening,\nresolve the concrete method and save its method reference \u003cDexFile, DexMethodIndex\u003e to be sharpened\nin CompilerDriver::ComputeInvokeInfo().\n\nAdded a new entry to AOT statistics showing the percentage of sharpened calls that were based on\ntype analysis.\n\nFix a minor bug in type creation for GetSuperClass(). Previously super class of a precise reference\nhad precise types created which is not necessarily the case.\n\nChange-Id: Iee61858e84242dfc82be363ee221d2747a1ac86a\n"
    },
    {
      "commit": "09b55e1df3b0bcecee25882e45e882887cc8654f",
      "tree": "829302cd8b0144880cde695d3f8651a133e977e9",
      "parents": [
        "ba1814eeac6adb44f2f78317556b3484b19e02fc"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 24 14:28:19 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 24 15:01:43 2013 -0700"
      },
      "message": "Fix PortableResolutionTrampoline to handle \u003cclinit\u003e methods.\n\nThis was caused by the move from compiled resolution trampolines.\n\nBug: 8702837\n\nChange-Id: I20fb89583c9774913c545620ac8909bba1b6fb46\n"
    },
    {
      "commit": "ba1814eeac6adb44f2f78317556b3484b19e02fc",
      "tree": "5a359b033ee308154ffbdcfea47708bacd1c9cb3",
      "parents": [
        "a6227676df130164322b1ac66a429eb0bfd0df62"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 23 21:33:41 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 23 21:33:41 2013 -0700"
      },
      "message": "LLVM build fix.\n\nChange-Id: Iae3df4fd7cb25e2f6ac2872f737af1a53f9579c0\n"
    },
    {
      "commit": "a6227676df130164322b1ac66a429eb0bfd0df62",
      "tree": "b9d115ba5a49654bec45edb7125eeb57e4696fd6",
      "parents": [
        "58df32711162823647356afe25ae2cde04133563"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 23 20:56:54 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 23 20:57:41 2013 -0700"
      },
      "message": "Robustify Thread::DumpState.\n\nCheck Thread::Current isn\u0027t NULL before using in ScopedObjectAccess that will\nattempt to dereference it.\n\nChange-Id: Ia3fc84dbf649edfa7fda5202abf9e397a794e0cd\n"
    },
    {
      "commit": "58df32711162823647356afe25ae2cde04133563",
      "tree": "df1b2b43b90f4861b475f1452b175353a56ec3d7",
      "parents": [
        "ede1807e3481a6937416964bb7556364f2d428e1"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 22 15:28:53 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 23 16:34:16 2013 -0700"
      },
      "message": "Removed compiled resolution trampoline.\n\nCreated assembly versions of resolution trampoline for portable and\nquick. Removed compiled version from the image.\n\nChange-Id: I183e110c4e102fb45ce6e7f4e855f8bed7986251\n"
    },
    {
      "commit": "ede1807e3481a6937416964bb7556364f2d428e1",
      "tree": "cdc097338a565c497c65ec51f6360c32c6e6692b",
      "parents": [
        "4da103fcb867f4bcb8d631f781862f76956215ef"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Mon Apr 22 16:39:48 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Mon Apr 22 16:51:48 2013 -0700"
      },
      "message": "Fix Monkeys failure\n\nIan\u0027s handy work: Interpreter was checking whether initializer was in\nprogress instead of falling through to ensureinitialized.  Should have\ninstead check whether initialized and then fall through otherwise.\n\nChange-Id: Idc2f4724ea7c675b1682c2c4c88402bd46cf092f\n"
    },
    {
      "commit": "4da103fcb867f4bcb8d631f781862f76956215ef",
      "tree": "2c27ade4399577fa2ba6d9c4d0be3bb2d3d778dd",
      "parents": [
        "ebb025ad58fc0bac467d766e04ca0e33493baf54",
        "0fed328fc9dd21a0b0da3e9b39ee2ce6a4d07117"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 19 23:35:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 19 23:35:15 2013 +0000"
      },
      "message": "Merge \"MIPS fix.\" into dalvik-dev"
    },
    {
      "commit": "9f57a86148827b36906eef65857c8be40401fbf4",
      "tree": "0cfd302f2dc38285efb39b09844de3b76a24ca95",
      "parents": [
        "bab74963db2484ea5f10a82ea26e8a99722bfefe"
      ],
      "author": {
        "name": "Sameer Abu Asal",
        "email": "sasal@google.com",
        "time": "Fri Apr 19 10:08:00 2013 -0700"
      },
      "committer": {
        "name": "Sameer Abu Asal",
        "email": "sasal@google.com",
        "time": "Fri Apr 19 12:24:02 2013 -0700"
      },
      "message": "Fix bugs in type precision.\n\nFix bugs in type precision.\n\nDon\u0027t create precise type for interfaces.\n\nClass objects that are final and Abstract are only valid for Array Types. Added check for that.\n\nDon\u0027t create a precise type from an uninitialized this reference type. Bug caused creating Precise\ntypes for Abstract classes.\n\nChange-Id: Ic7671d5587cb531f7d949d8fee8b88fd554252fa\n"
    },
    {
      "commit": "0fed328fc9dd21a0b0da3e9b39ee2ce6a4d07117",
      "tree": "edff31ac8c23fd405f66e54c7390310a1a2c3cc6",
      "parents": [
        "0e033673670733c0809815e3662bb5a501cdb492"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 19 11:13:20 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 19 11:22:00 2013 -0700"
      },
      "message": "MIPS fix.\n\nDon\u0027t use a local std::string for a mutex name.\n\nChange-Id: I29b6f19f4dc50931deb820b7975ae98e72fdeaf4\n"
    },
    {
      "commit": "bab74963db2484ea5f10a82ea26e8a99722bfefe",
      "tree": "7cc9087efc79c8c0ac8a03a6dfc2758ffc432767",
      "parents": [
        "9365f5890eb27e1c98038ecf5a7fa2cad0aa62e6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 19 10:04:10 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 19 10:04:10 2013 -0700"
      },
      "message": "Remove unnecessary use of std::string.\n\nChange-Id: I479adb087dcaf70bb4eab87840e42fc8998b8d7f\n"
    },
    {
      "commit": "9365f5890eb27e1c98038ecf5a7fa2cad0aa62e6",
      "tree": "85b71066c02a9709e8551b377ff79f0e47515eee",
      "parents": [
        "1690d7e76ed7bac5b457a30e64c55be2e36c38cc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 19 09:55:42 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 19 09:55:42 2013 -0700"
      },
      "message": "Don\u0027t read trace from VM during destroy VM.\n\nReading from the trace string during destroy VM leads to a read from freed\nmemory. Reorder predicates to avoid.\n\nChange-Id: I5525e117b2a78ba2224160963259657e55a46ac8\n"
    },
    {
      "commit": "1690d7e76ed7bac5b457a30e64c55be2e36c38cc",
      "tree": "80548aadffbbc6be51a5fcf0d8f104962ef73dcc",
      "parents": [
        "e7a5b7d3fcc3af100fec13af057eecaff1037f2c",
        "453570570b00ea7990c8d45506d1311f5228c6f0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 19 15:27:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 19 15:27:11 2013 +0000"
      },
      "message": "Merge \"Fixes for timing logger and histogram.\" into dalvik-dev"
    },
    {
      "commit": "453570570b00ea7990c8d45506d1311f5228c6f0",
      "tree": "c41cc1c5ef93b149b172bde05d3654b0985f65f2",
      "parents": [
        "1bd4b4ca7f4f44c55ded050e5a6be09811e1b283"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 20:49:43 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 20:49:43 2013 -0700"
      },
      "message": "Fixes for timing logger and histogram.\n\nReorder when the index is checked in Percentile to avoid reading from a\nnegative index.\nAdd missing copyright to histogram unit test.\nSwitch histogram test to use UniquePtr rather than new/delete (MeanTest had\nmissed the delete).\nMake timing/cumulative logger fields that can be const const. Document SetName\nfor cumulative logger. Place the cumulative logger\u0027s std::string lock name in\nthe cumulative logger so its lifespan is clearly the same.\n\nChange-Id: I4056c6b6ee8efdb73f7b10f690fc9d959fd4a569\n"
    },
    {
      "commit": "e7a5b7d3fcc3af100fec13af057eecaff1037f2c",
      "tree": "17c679d40aaaea7ddb53fdc61494c8d243af9ce5",
      "parents": [
        "1bd4b4ca7f4f44c55ded050e5a6be09811e1b283"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 20:09:02 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 20:09:02 2013 -0700"
      },
      "message": "Fix memory leak of and use without initialization.\n\nArena allocator\u0027s empty arena needs to be released in a destructor, this\nremoves the neeed for Reset.\nThe DataflowIterator needs to clear changed_ upon construction to avoid use\nwithout initialization.\n\nChange-Id: I56e3cb8c3e06c08ab0ff42447bd6e05792fc70af\n"
    },
    {
      "commit": "1bd4b4ca7f4f44c55ded050e5a6be09811e1b283",
      "tree": "4017e571f97eb3537d144db42198dd1da970c7e1",
      "parents": [
        "0878d654e7be8c9666579e22522704d8887415cc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 17:47:42 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 17:47:42 2013 -0700"
      },
      "message": "Avoid a use before initialization in mark sweep.\n\nMarkSweep::GetName reads is_concurrent_, we pass GetName to the timing loggers\nbut before is_concurrent_ is initialized. Reorder is_concurrent_ to fix.\n\nChange-Id: I98a65534a86ad18789aa0624808235f6b68c58d6\n"
    },
    {
      "commit": "0878d654e7be8c9666579e22522704d8887415cc",
      "tree": "0e57c50e7f47a01900e540c0b5e509df4297afed",
      "parents": [
        "f8adc60455b90c95a6a3c8f87830e4e88b2644e1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 17:38:35 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 17:42:02 2013 -0700"
      },
      "message": "Thread tidying.\n\nAdd is_started_ boolean to Thread so that we don\u0027t read an uncreated\npthread_key_self_, don\u0027t start twice or call shutdown when not started.\nDon\u0027t use a MutexLock in ThreadList::Unregister, as the MutexLock will\nhold a copy of self for the thread that\u0027s deleted.\nDon\u0027t memory leak the resume condition variable.\n\nChange-Id: I767968a9f785e560fc9e356a339e684de5ce2ffc\n"
    },
    {
      "commit": "f8adc60455b90c95a6a3c8f87830e4e88b2644e1",
      "tree": "da454c5488560a4abca669598ed2f29a22930e57",
      "parents": [
        "dbbc99d2a197592aee8fdaf01253e426c9dff1d8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 17:06:19 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 17:27:31 2013 -0700"
      },
      "message": "Mem map bug fix and documentation.\n\nAddresses issue where valgrind treats a non-null \u0027addr\u0027 as meaning MAP_FIXED.\n\nChange-Id: Ibfd2360cd5bd226f9699022e07b918db612c2f7c\n"
    },
    {
      "commit": "dbbc99d2a197592aee8fdaf01253e426c9dff1d8",
      "tree": "f08f3aad803db4400f5de6bcf8d0c8d6e694436b",
      "parents": [
        "fbdc0fa4f5b1a45390a909afa44a61042406dcd4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 16:51:54 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 17:02:36 2013 -0700"
      },
      "message": "Factor out try item from catch handler finding.\n\nPortable indexs try basic blocks using their try item index. Factor out this\ncomputation from catch handler address computation so that the binary search\ncode can be shared (WIP for the sharing in\n https://googleplex-android-review.googlesource.com/#/c/281427/20).\n\nChange-Id: Ifea63bf06c0184c6fa7a6aa3a6620711e390069a\n"
    },
    {
      "commit": "fbdc0fa4f5b1a45390a909afa44a61042406dcd4",
      "tree": "816062533900b06aba9cb185d7b27e95a5b40b00",
      "parents": [
        "a1827042bb46161b452cd720d235fb1cdfefaa76"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 16:48:17 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 16:50:19 2013 -0700"
      },
      "message": "Build fix.\n\nChange-Id: I15c2fa71990ccea72b7a2e35dac3e6b4e0f0917c\n"
    },
    {
      "commit": "a1827042bb46161b452cd720d235fb1cdfefaa76",
      "tree": "c4c2db93e91f3020ae4d44717679f164323b2b43",
      "parents": [
        "23055dc5d7a90c4a12e259fd0ed7cd4d04d89182"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 16:36:43 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 16:36:43 2013 -0700"
      },
      "message": "Tidy up compiled method.\n\nDocument the meaning of fields, in particular their meaning for quick or\nportable.\nMake symbol const.\nDocument kAccConstructor in modifiers applies to both \u003cinit\u003e and \u003cclinit\u003e.\n\nChange-Id: Ib42dd6e7db3759c11ea222f9bc72cb00356fad62\n"
    },
    {
      "commit": "23055dc5d7a90c4a12e259fd0ed7cd4d04d89182",
      "tree": "ef7ae39a1c99fd7c57cf93473c27ba92c92299a0",
      "parents": [
        "d914eb2a839f7b40156ff0299a60e5cb80080b73"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 16:29:16 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 16:29:16 2013 -0700"
      },
      "message": "Mutex tidy up.\n\nCondition variable names needn\u0027t be strings - the use was leading to valgrind\nwarnings.\nDon\u0027t fail AssertSharedHeld when self isn\u0027t known.\nAllow gtest thread chance to merge to avoid memory leak.\nMake barrier test log output more human readable.\n\nChange-Id: If1923c69a2965d933036c496dc5b1d64ec887db2\n"
    },
    {
      "commit": "d914eb2a839f7b40156ff0299a60e5cb80080b73",
      "tree": "87f074f452702557db365d06e637beb2759eb000",
      "parents": [
        "25ae7ebfd227869dd12f807047c56177d0bf645b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 16:11:15 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 16:16:09 2013 -0700"
      },
      "message": "Thread pool tidying.\n\nMake fields const. Fix memory leak in gtest caused by not allowing thread pool\nto empty tasks.\n\nChange-Id: I32b20dee17eab03443c4bd1f3cc102c4409d1ab9\n"
    },
    {
      "commit": "25ae7ebfd227869dd12f807047c56177d0bf645b",
      "tree": "38b30677d2c5ad66d46475bacc562d5231cd285d",
      "parents": [
        "6282dc12440a2072dc06a616160027ff21bd895e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 16:06:05 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 16:06:05 2013 -0700"
      },
      "message": "Fix RegTypeCache typo/memory-leak.\n\nChange-Id: I71df46d0baed37ba89129fa14697eb504194e770\n"
    },
    {
      "commit": "6282dc12440a2072dc06a616160027ff21bd895e",
      "tree": "1e318fea04d927f55ec50267e36d539984016ed1",
      "parents": [
        "5d10a87ea630b22180d3731018a70b77270c726e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 15:54:02 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Apr 18 15:54:02 2013 -0700"
      },
      "message": "MIR tidying.\n\nFix memory leak in the MIR graph m_units_.\nDon\u0027t shadow the arena_ field in Backend.\n\nChange-Id: I0ffaebd088f1383205bde9fb34c5d33156bb7260\n"
    },
    {
      "commit": "5d10a87ea630b22180d3731018a70b77270c726e",
      "tree": "2fb3862dae77e6f4251b309548ececce621afac9",
      "parents": [
        "68a5e3c9115f9ba396563ce3b72df9cb036bc665"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 17 19:26:43 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 17 19:36:45 2013 -0700"
      },
      "message": "Remove the separate JdwpTransport objects.\n\nStructs containing nothing but function pointers? What are we? C programmers?\n\nChange-Id: I4fbc9dc0d8fc10557afa020b27cda85c939965c3\n"
    },
    {
      "commit": "68a5e3c9115f9ba396563ce3b72df9cb036bc665",
      "tree": "9392599e69f237afe8b0eadd1e4f785619e7c61f",
      "parents": [
        "8b788fea78e07218bd67760ca1f83335a7e63d23"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 17 17:13:35 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 17 17:13:35 2013 -0700"
      },
      "message": "More JDWP implementation cleanup.\n\ntsu was confused by some logging that turns out to have been a mistake;\nit basically meant \"DDMS is not listening\", which isn\u0027t generally interesting.\nThis patch relegates that to a VLOG(jdwp).\n\nThis patch also removes a bunch more of the adb/socket transport duplication.\n\nChange-Id: I50114da96ec32c20e11ea5ea76d5beba29f30214\n"
    },
    {
      "commit": "8b788fea78e07218bd67760ca1f83335a7e63d23",
      "tree": "d62d552f78edf2e806fcfea866bf12e69e3a5440",
      "parents": [
        "1f55ea0d5cfea943ec11dd1be9ddb163e4e325b2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 17 15:57:01 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Apr 17 15:57:01 2013 -0700"
      },
      "message": "Send the GC\u0027s SIGQUIT output to the right ostream.\n\nI\u0027m not convinced the GC should be quite as verbose as it is for SIGQUIT,\nbut it should definitely send the output to the correct destination.\n\nChange-Id: I7095cf8255540fc4a5014f53d7dfc0bc38c51843\n"
    },
    {
      "commit": "1f55ea0d5cfea943ec11dd1be9ddb163e4e325b2",
      "tree": "d9308a490b3aeb9630410618829b24d41c323abb",
      "parents": [
        "cfa9cfa3a94b33d300e1b08b48b3cb72de343dbd"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Wed Apr 17 07:02:40 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Wed Apr 17 07:02:40 2013 -0700"
      },
      "message": "minor cleanup\n\nChange-Id: I92dda15aaa2626821befcb9a5db3801b0ab074e5\n"
    }
  ],
  "next": "cfa9cfa3a94b33d300e1b08b48b3cb72de343dbd"
}
