)]}'
{
  "log": [
    {
      "commit": "ea46f950e7a51585db293cd7f047de190a482414",
      "tree": "9dddc8073547a2dcb58a19e1728932a89cb149c3",
      "parents": [
        "5e3572709b5a5d59957f835db4f73760ecef08da"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 30 01:26:50 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 13 18:09:46 2013 -0700"
      },
      "message": "Refactor java.lang.reflect implementation\n\nCherry-picked from commit ed41d5c44299ec5d44b8514f6e17f802f48094d1.\n\nMove to ArtMethod/Field instead of AbstractMethod/Field and have\njava.lang.reflect APIs delegate to ArtMethod/ArtField.\n\nBug: 10014286.\n\nChange-Id: Iafc1d8c5b62562c9af8fb9fd8c5e1d61270536e7\n"
    },
    {
      "commit": "a024a0686c3b0fea13f362bff70d65981e5febc5",
      "tree": "99b003e7524544156a4e94bcca7daa41ed4d4b77",
      "parents": [
        "e0a53e99e2a01f8668d6616c3cec7e2f5a711286"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jul 31 10:47:37 2013 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Aug 08 13:30:16 2013 -0700"
      },
      "message": "Compilation filter\n\nThis CL introduces a static compilation filter mechanism intended\nto allow us to reduce compilation time and space requirements until\nwe have a profiling mechanism in place.\n\nIt supports 5 modes of filtering:\n\n   o interpret-only (compile nothing)\n   o deferred-compilation (compile only those methods believe to be\n     compute-intensive)\n   o space (optimized for space)\n   o balanced (best return on space investment)\n   o speed (compile everything)\n\nA future CL will allow the default filtering mode to be set\nvia system property.  For now, you can pass it in via command\nline as follows:\n\n   dalvikvm -compiler-filter:[interpret-only|defer-compilation|\n                              space|balanced|speed]\n\nor dex2oat --runtime-arg -compiler-filter:[one of the above modes]\n\nCreating a file named art/SMALL_ART will force the filter\ndefault to interpret-only.  Later on we\u0027ll move this capability\nto a persistent system property.\n\nor modify kDefaultCompilerFilter in runtime.h\n\nIt also changes the compiler driver to allow the compilers to\ndecline to compile a method by return NULL.\n\nChange-Id: Ic73411818f8bb845a4a19a05b0395c50902c534f\n"
    },
    {
      "commit": "e0a53e99e2a01f8668d6616c3cec7e2f5a711286",
      "tree": "d672967f101a31e1dbf739a2e13f0725625e2ca2",
      "parents": [
        "f929b1f270a880e1f98c7a3913a5a5468a2a2368"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 05 10:17:40 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 05 14:53:05 2013 -0700"
      },
      "message": "Add low memory mode option to ART.\n\nUseful so that we match the option I added here:\nhttps://googleplex-android-review.googlesource.com/#/c/328940/\n\nIn ART low memory mode reduces the maximum number of histogram\nbuckets. We also trim no matter the utilization.\n\nChange-Id: I655ba63312c0a6574569cdd5171ca81ea338c2aa\n"
    },
    {
      "commit": "166db04e259ca51838c311891598664deeed85ad",
      "tree": "5ffa63c1b3bf58e92be2890c54f0ba6fdec2059e",
      "parents": [
        "d41119e863a9f9c5809b7732d30870ffd237b60c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jul 26 12:05:57 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 29 09:52:11 2013 -0700"
      },
      "message": "Move assembler out of runtime into compiler/utils.\n\nOther directory layout bits of clean up. There is still work to separate quick\nand portable in some files (e.g. argument visitor, proxy..).\n\nChange-Id: If8fecffda8ba5c4c47a035f0c622c538c6b58351\n"
    },
    {
      "commit": "0f055d11096cb02563e9c040cd03c791fd8f69a3",
      "tree": "8c7e730f17174ab4e11786fde1c2a05c7039d507",
      "parents": [
        "93c3396f8b33539489763ebdfafcedb4127009d9",
        "7934ac288acfb2552bb0b06ec1f61e5820d924a4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 12:46:02 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 12:47:51 2013 -0700"
      },
      "message": "resolved conflicts for merge of 7934ac28 to dalvik-dev\n\nChange-Id: I8798a6f154463d3f92f6aca62f14130aec82d273\n"
    },
    {
      "commit": "7934ac288acfb2552bb0b06ec1f61e5820d924a4",
      "tree": "43f3acd8af7fd34d4ae7b64f6e06bb8429d74bb8",
      "parents": [
        "fb331d7ca004f39608fcfdae49d38df90c702ea9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 10:54:15 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 11:55:10 2013 -0700"
      },
      "message": "Fix cpplint whitespace/comments issues\n\nChange-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496\n"
    },
    {
      "commit": "4d4adb1dae07bb7421e863732ab789413a3b43f0",
      "tree": "a0c7861c64f193065264478af397929be473184c",
      "parents": [
        "56eb9bc9da8d3863fef02891c2f4f2e4d996204d"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Jul 24 16:14:19 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Jul 26 10:24:55 2013 +0200"
      },
      "message": "Prevent verifier from creating unused compilation data.\n\nThe verifier used to create data which may be unused like GC map. This is the\ncase for non-compiled method (which are interpreted). This CL aims to optimize\nthis.\n\nHere are the changes:\n- Move compilation selection to MethodVerifier::IsCandidateForCompilation.\n- Compiler and verifier use this method to know if a method must be compiled.\n- Only create compilation data while compiling using Runtime::IsCompiler.\n- Do not create internal structures concerning GC map, ... in Runtime::Init and\nRuntime::Shutdown when we are not compiling.\n- Checks we are compiling when accessing these structures.\n- Add missing destruction of MethodVerifier::safecast_map_lock_ and\nMethodVerifier::safecast_map_ in Runtime::Shutdown.\n- Call Runtime::Shutdown just before Runtime instance is destroyed to avoid a\ncrash.\n- Add missing \"GUARDED_BY\" macro for MethodVerifier::rejected_classes_ field.\n- Add \"has_check_casts\" to avoid the safecast pass if there is no check-cast\ninstruction.\n- Add \"has_virtual_or_interface_invokes\" to avoid the devirtualization pass if\nthere is no invoke-virtual/range nor invoke-interface/range instructions.\n\nBug: 9987437\nChange-Id: I418ee99f63e4203409cf5b7d2c2295b22fcf24c1\n"
    },
    {
      "commit": "63a54345598861030178e033ffbd72c0e231a4c9",
      "tree": "0241f931c8fb8876a1c3ffbc07198c1d7c8e9a4f",
      "parents": [
        "4560248d4c85cade7f4fc7b30c3fb41b95a04a7f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 23 13:17:59 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 23 13:55:18 2013 -0700"
      },
      "message": "Add option for changing number of GC threads.\n\nThe number of threads was previously set to 1 by an accidential\ncheckin. This hurts on all devices which aren\u0027t dual core. We now\nproperly use sysconf to determine how many threads we should create.\n\nAlso added a -XX:HeapGCThreads heap option which lets us change\nhow many GC threads we create. The default value is equal to the\nnumber of processors on the device minus one.\n\nChange-Id: If65065ef09174a3813b8741efdd5ea7bbe82a4e2\n"
    },
    {
      "commit": "b1eba213afaf7fa6445de863ddc9680ab99762ea",
      "tree": "c0a3000df1037211a6bcc7d75db51ee5c6069ec8",
      "parents": [
        "2ce745c06271d5223d57dbf08117b20d5b60694a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 18:07:19 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 21:46:11 2013 -0700"
      },
      "message": "Fix cpplint whitespace/comma issues\n\nChange-Id: I456fc8d80371d6dfc07e6d109b7f478c25602b65\n"
    },
    {
      "commit": "2ce745c06271d5223d57dbf08117b20d5b60694a",
      "tree": "08ca327d1f1c8266fafb11422cfad6982f21e0bb",
      "parents": [
        "fc0e3219edc9a5bf81b166e82fd5db2796eb6a0d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 17:44:30 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 21:46:11 2013 -0700"
      },
      "message": "Fix cpplint whitespace/braces issues\n\nChange-Id: Ide80939faf8e8690d8842dde8133902ac725ed1a\n"
    },
    {
      "commit": "7940e44f4517de5e2634a7e07d58d0fb26160513",
      "tree": "ac90242d96229a6942f6e24ab137bc1f8f2e0025",
      "parents": [
        "5cd9e3b122f276f610980cbaf0d2ad6ed4cd9088"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 13:46:57 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 17:49:01 2013 -0700"
      },
      "message": "Create separate Android.mk for main build targets\n\nThe runtime, compiler, dex2oat, and oatdump now are in seperate trees\nto prevent dependency creep.  They can now be individually built\nwithout rebuilding the rest of the art projects. dalvikvm and jdwpspy\nwere already this way. Builds in the art directory should behave as\nbefore, building everything including tests.\n\nChange-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81\n"
    },
    {
      "commit": "2010a6004fb083eb4109c21886fce6ee65abda33",
      "tree": "59182eeeadcb3d9926fd4fb1e355a70e15fde079",
      "parents": [
        "0b4e3ef67508a0b8c121b6b26ab5ea0a1d8e7141"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 02 14:17:23 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 02 14:17:23 2013 -0700"
      },
      "message": "Disable -Xjnigreflimit: in art too.\n\nBug: 7903975\nChange-Id: I1ec552b35331227ecd7dc3d0a2f0507b1c24e375\n"
    },
    {
      "commit": "e53ebbcf98d004f0e1f631a630d0344d104e3dc6",
      "tree": "6190aab5b5c6061a25df9931e1b0dbd6229d0a95",
      "parents": [
        "eac1880f791c4a2b18f1b197cc6289a28ec11252",
        "39f992750ac1eb7e51955d3e52bddc32b37c370f"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu Jun 27 07:13:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 27 07:13:43 2013 +0000"
      },
      "message": "Merge changes I3b33358e,I7467ee05 into dalvik-dev\n\n* changes:\n  Added wrapper functions for register acccess in Instruction.\n  Added support for SEA IR.\n"
    },
    {
      "commit": "78b388842414005a30d2ec308861473f9f33ed5b",
      "tree": "a15c4320420aeddff8b55527722c631c67222700",
      "parents": [
        "80a459893571c1a1ba92c73883993d7e0b5f1ad6",
        "fb67b724df2e3288c8573e8d72b6b6d06aff26ca"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jun 25 22:31:37 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 25 22:31:37 2013 -0700"
      },
      "message": "am fb67b724: Make art adapt to BOOTCLASSPATH containing dalvik core.jar\n\n* commit \u0027fb67b724df2e3288c8573e8d72b6b6d06aff26ca\u0027:\n  Make art adapt to BOOTCLASSPATH containing dalvik core.jar\n"
    },
    {
      "commit": "7467ee05012e1fd9834df74663c1ebda46f5636b",
      "tree": "d93d7b7f13440eff50c552ccdab8ce8e4e5a9547",
      "parents": [
        "b126134010ebeee771da0eec7fa76ad13fe9a9c9"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Fri Jun 21 09:20:34 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Tue Jun 25 13:12:53 2013 -0700"
      },
      "message": "Added support for SEA IR.\n\n- Modified makefile to take the existance of SEA_IR_ART\n  file to mean \"switch to sea ir mode\".\n- Switching SEA IR mode on leads to the new compiler being\n  fed the fibonacci methods only, if they are used as input.\n- Added partial support for the control flow subgraph of\n  the SEA IR (instruction nodes and region nodes for\n  conditional and unconditional branches).\n\nChange-Id: I29020b8e2df5a00fde75715c3683cc25038589f4\n\nConflicts:\n\tsrc/compiler/driver/compiler_driver.cc\n"
    },
    {
      "commit": "fb67b724df2e3288c8573e8d72b6b6d06aff26ca",
      "tree": "2347057a6cfa7740db719e7c5ce459a1caff33be",
      "parents": [
        "a7a60a8244dd6f6e70ff1d7babf261c7a8da873a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 24 23:41:51 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 24 23:41:51 2013 -0700"
      },
      "message": "Make art adapt to BOOTCLASSPATH containing dalvik core.jar\n\nChange-Id: I9b1fcae03630123100c335394a6324824d245bd6\n"
    },
    {
      "commit": "1d54e73444e017d3a65234e0f193846f3e27472b",
      "tree": "1de93661e95a0ce6fa78fdfc23d0cfd3dd2a06f7",
      "parents": [
        "4c22e7eabef3f815841dfc6e0d5bbead96150752"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 02 21:10:01 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 21 11:10:42 2013 -0700"
      },
      "message": "GC clean up.\n\nGreater use of directories and namespaces.\nFix bugs that cause verify options to fail.\nAddress numerous other issues:\n\nGC barrier wait occurring holding locks:\nGC barrier waits occur when we wait for threads to run the check point function\non themselves. This is happening with the heap bitmap and mutator lock held\nmeaning that a thread that tries to take either lock exclusively will block\nwaiting on a thread that is waiting. If this thread is the thread we\u0027re waiting\nto run the check point then the VM will deadlock.\nThis deadlock occurred unnoticed as the call to check for wait safety was\nremoved in: https://googleplex-android-review.googlesource.com/#/c/249423/1.\n\nNewTimingLogger:\nExisting timing log states when a split ends but not when it begins. This isn\u0027t\ngood for systrace, in the context of GC it means that races between mutators\nand the GC are hard to discover what phase the GC is in, we know what phase it\njust finished and derive but that\u0027s not ideal.\n\nSupport for only 1 discontinuous space:\nCode special cases continuous and large object space, rather than assuming we\ncan have a collection of both.\n\nSorted atomic stacks:\nUsed to improve verification performance. Simplify their use and add extra\nchecks.\n\nSimplify mod-union table abstractions.\n\nReduce use of std::strings and their associated overhead in hot code.\n\nMake time units of fields explicit.\n\nReduce confusion that IsAllocSpace is really IsDlMallocSpace.\n\nMake GetTotalMemory (exposed via System) equal to the footprint (as in Dalvik)\nrather than the max memory footprint.\n\nChange-Id: Ie87067140fa4499b15edab691fe6565d79599812\n"
    },
    {
      "commit": "e4c891a0dc88cd3c5891372f28659f6bea0cbcfd",
      "tree": "a6973d6ea9446efb1d56a42a54dd96efeeffbbc0",
      "parents": [
        "50239c75041df9e12f9cbb018ccc08af6890e102",
        "fa42b4410d49134a8e63dc2196be4013d286f2d6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jun 18 13:17:01 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 18 13:17:01 2013 -0700"
      },
      "message": "am fa42b441: Move to new art dalvikvm\n\n* commit \u0027fa42b4410d49134a8e63dc2196be4013d286f2d6\u0027:\n  Move to new art dalvikvm\n"
    },
    {
      "commit": "fa42b4410d49134a8e63dc2196be4013d286f2d6",
      "tree": "71e325089092167f202fbdf763daaf700cfd4a4b",
      "parents": [
        "7675e16bcae06c0fe258aad89b3d511037dec399"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 17 12:53:45 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 17 19:01:40 2013 -0700"
      },
      "message": "Move to new art dalvikvm\n\nChange-Id: Ib04bc9853b7084965fa0c9899c3e5f5ac42d4ce7\n"
    },
    {
      "commit": "dd623dbcb6e5c42c32382c136f16e000ab053216",
      "tree": "ab6ad103c15ed75caf3ccddc5144e804eb7deae3",
      "parents": [
        "62342ec720069cebe55f45aea2ff8512a17e7d62"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 11 11:20:23 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 11 11:20:23 2013 -0700"
      },
      "message": "Now that abort(3) is fixed, Runtime::Abort() can be simplified.\n\nThe fix to abort(3) has SHA 7e6ce1a3c52d8533fed92c143419fedb0c93988a.\n(https://android-review.googlesource.com/#/c/60341/)\n\nChange-Id: Ic2c0bf156b678dcc87fe981890a357c504130fe3\n"
    },
    {
      "commit": "0aba0ba155bef7346bde19e53581200b89ae8a7a",
      "tree": "6590f8a50bde7c30b57f1bb0ae67c6d88cea8116",
      "parents": [
        "515661b14b60ab9684efa1ab1d5124934406094e"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jun 03 14:49:28 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Jun 07 14:43:24 2013 -0700"
      },
      "message": "Created compiled stubs in image.\n\nSaves class linker from having to set code pointers when loading\nfrom an image. Added stubs for quick and portable resolution\ntrampolines, and interpreter-to-interpreter and interpreter-to-quick\nentry points. Also added sizing stats output for oat writer.\n\nChange-Id: I3905fae81047742c23d1cf0ca001db798db971b1\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "f08e473519dc5c7ccb85eb2b333f9d0aff23a329",
      "tree": "796cb1f9102e07c33de163281a2e34af5bf634d0",
      "parents": [
        "10e75abe80fc86ff5a6a5b4b3bcef382b3c596be"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 09 09:45:49 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Apr 09 09:45:49 2013 -0700"
      },
      "message": "Fix abort regression.\n\nChange https://googleplex-android-review.googlesource.com/#/c/249463/ set a\nboolean prior to testing it meaning that all aborts were seen as recursive and\nno meaningful log information was given.\n\nAlso a fix related to https://googleplex-android-review.googlesource.com/293665\nwhere we were attempting to dump other threads stacks during aborting even\nthough those threads weren\u0027t suspended.\n\nChange-Id: I1f848512c5e380529579db3d16bb8f5ddda36ad3\n"
    },
    {
      "commit": "62d6c772205b8859f0ebf7ad105402ec4c3e2e01",
      "tree": "e2f2ba6d71ed5a39c9f6909e3f7c08e998053315",
      "parents": [
        "c9b17c7ee96cd04fac9048aab624ed554fe260bf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 08:32:07 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 08 14:24:13 2013 -0700"
      },
      "message": "Interpreter entries and instrumentation as a listener.\n\nMake the instrumentation responsible for whether we want method entry/exit\nstubs, and allow it to use interpreter entry stubs when instruction by\ninstruction instrumentation is required. Improve deoptimization so more JDWP\ntest cases are passing.\n\nRefactor exception debug posting, in particular improve reporting in the\ninterpreter. Improve class linker exception throwing so that broken dex files\nare more likely to be reported. Fixes the performance issue Bug: 8410519.\n\nFix some error reporting lock level errors for the large object space. Make\nfast object verification faster.\n\nAdd some debug mode robustness to finding dex PCs in GC maps.\n\nAdd printf attributes to JniAbortF and fix errors.\n\nExpand run-test 044 to test return behaviors and fix issues with not throwing\nappropriate exceptions for proxies.\n\nEnsure causes are reported with a class linker NoClassDefFoundError and JNI\nNoSuchFieldError.\n\nRemove unused debugMe and updateDebuggerFromCode.\n\nThere\u0027s a minor sizing tweak to the arg array builder, and an extra reference\narray check in the interpreter.\n\nSome clean-up of trace code.\n\nFix reg type cache destructor if it is called after the reg type cache is\nshutdown (as is the case in oatdump).\n\nChange-Id: I6519c7b35df77f978d011999354c864f4918e8ce\n"
    },
    {
      "commit": "51a5fb78d1b03b5235c2ae45414235282182bb86",
      "tree": "55816eb63505f5f2c65c9298d4412fea3eed1bf4",
      "parents": [
        "857fe960a02834c0d6b8792dcc0af8143995cb1f"
      ],
      "author": {
        "name": "Sameer Abu Asal",
        "email": "sasal@google.com",
        "time": "Tue Feb 19 14:25:01 2013 -0800"
      },
      "committer": {
        "name": "Sameer Abu Asal",
        "email": "sasal@google.com",
        "time": "Fri Mar 29 09:13:59 2013 -0700"
      },
      "message": "Refactoring type verification in Art.\n\nEach type now has its own class instead of one class with enums.\n\nImproved test cases for reg_type. Added test cases for testing precision, Merge,\nDump messages, etc.\n\nFixed bugs for:\n        1- Creating precise references in cache was ignoring the passed parameter\n        for reference types and only creating precise for final classes. Now creating\n        for final classes or if boolean set to true.\n        2- Precise constants were created if precise boolean passed as false ( and vice\n           versa ). Fixed.\n\nChange-Id: Ia5450d6c732f848e6b94298e43e8cfb819897fc6\n"
    },
    {
      "commit": "6474d190d5604898354ebf767f1944b6e3e9b445",
      "tree": "ac4be675c62fd8129fe85f740dcd2e3bfee424e2",
      "parents": [
        "52003fe9e2020e9d68cee1300fdb4a3f55be85a5"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 26 14:08:09 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 26 16:03:53 2013 -0700"
      },
      "message": "Remove use of compiled invoke stubs from portable.\n\nNow the invoke stubs can be safely removed. Tested and working on ARM,\nbasic testing done on x86/MIPS, but portable is currently broken for them\neven without the change.\n\nChange-Id: Ib73f2b7aa9d81f5f0e1e817d16b9bec464c5a5aa\n"
    },
    {
      "commit": "5d9173014c1ca09f7249a6b07629aa37778b5f8f",
      "tree": "80543dbe9af6795212373bb12532b638ff3b22f3",
      "parents": [
        "aed0716b9592bb3095cdfc4b111011f9ed74877d"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 27 17:57:33 2013 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 15 14:18:28 2013 -0700"
      },
      "message": "Changes to remove need for compiled invoke stubs for quick.\n\nARM, x86, and MIPS implementation complete, though MIPS is untested.\n\nThe ArgArray is changed to be a uint32_t array instead of a JValue array.\nAlso, a separate result for float/double was needed for x86/MIPS. The invoke\nstubs are currently still there, but only used for portable.\n\nChange-Id: I0647f8d5d420cea61370e662e85bdc0c13b5e378\n"
    },
    {
      "commit": "bd86bccf1b47f1151842152ee52cf5d46d6b34ab",
      "tree": "c0c110b47435c6e8548f1b7126f9ea20da7fd934",
      "parents": [
        "5d021c7399fa8090910d5b47ed00465a4e0e7e0f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Mar 10 20:26:16 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 11 15:47:02 2013 -0700"
      },
      "message": "Tracking rebase to jb-mr1-release\n\nChange-Id: Ic2ae1a27682cc4152003a68d59068b2c5c5eb09b\n"
    },
    {
      "commit": "265091e581c9f643b37e7966890911f09e223269",
      "tree": "ae493ce6c3537aebc3a85f59a73500fa819a7baf",
      "parents": [
        "4c1c283a7410784e9cab309f868248690b788a9c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 30 14:08:26 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 06 14:08:46 2013 -0800"
      },
      "message": "Remove ExtractCodeAndPrelink and switch Portable to MCLinker\n\nChange-Id: Ia2459c7da6b79e0a1c0f1148c6e28ad9cbbe27a2\n"
    },
    {
      "commit": "4c1c283a7410784e9cab309f868248690b788a9c",
      "tree": "629ce783004007641a9a5b0c9f8e269d0fd57a8f",
      "parents": [
        "89756f21c107d96e6d1bbc75811bd33078c8ceee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 04 18:30:13 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 04 18:38:16 2013 -0800"
      },
      "message": "Move compiler_llvm to art::llvm.\n\nAlso move the invoke stubs (soon to be removed) under compiler.\nStart moving LLVM code under compiler. Will move GBC expander to dex/portable\nonce it is disentangled from other builds (moving toward solving Bug: 8195425).\n\nChange-Id: I8829f9db6ade9ac8e32bd16198b90f83619769f1\n"
    },
    {
      "commit": "c928de90ad22ecdf83c18a07008409595f13d3b1",
      "tree": "065a08f379960f7ba946318aaa742d7ddd0c94bd",
      "parents": [
        "0f827169742aad6209d830db773a101849c32a83"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 14:30:44 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 14:30:44 2013 -0800"
      },
      "message": "Remove Iceland.\n\nART_USE_LLVM_COMPILER is removed and when necessary ART_USE_PORTABLE_COMPILER\nis used in #ifdefs.\n\nChange-Id: Iffa9ce5b0246c7c427ccc4e67ecc134624632e55\n"
    },
    {
      "commit": "64f574f474aa77c72778640ab21f8cfa72546812",
      "tree": "c90d3ef8f56144e61a4a043138a5118c3c9e7b9a",
      "parents": [
        "492899e445c21f09db458c76d773d571cc6cc0ac"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 20 14:57:12 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Feb 20 15:46:06 2013 -0800"
      },
      "message": "Implement EnableCollection, DisableCollection, IsCollected, and fix Exit.\n\nRewrites the object registry to not just be one big leak. We use jweaks\nby default, which means (a) the GC doesn\u0027t need to know anything about us\nand (b) we don\u0027t cause unnecessary heap retention. We promote to regular\nJNI global references if the debugger asks us to.\n\nThe problem with VirtualMachine.Exit turned out to be that you\u0027re supposed\nto send a success reply to the command before exiting. This is a bit awkward\nwith our current division of responsibilities, but it lets us pass another\ntest.\n\nAlso log a summary of our replies when -verbose:jdwp is in effect, not\njust the requests.\n\nChange-Id: Idb33e99fe7d8bee7a79152d81fee42e2af00852b\n"
    },
    {
      "commit": "c0fa3ad44a84b7f658d16a717027bf95abc85db6",
      "tree": "fd6b01ebb129a624da2cf73c1e27b5c488fccb47",
      "parents": [
        "b6c31ea69973b41d57146ab0c319613213a9a85e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 05 00:11:55 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 05 10:56:54 2013 -0800"
      },
      "message": "Improve performance of JNI field operations.\n\nChange improves performance of JniField Fadden test by around 25%, we\u0027re still\n2x slower than Dalvik.\nAggressively inline ScopedObjectAccess, Thread::SetState and field helpers.\nIf we\u0027re not contention logging don\u0027t call MilliTime (avoids a double register\nspill).\nRemove (broken?) thread checks in scoped object access, they are redundant with\nones being performed in check JNI.\n\nChange-Id: I128eed1e4205d4d540d5c6f430ef9e3853745585\n"
    },
    {
      "commit": "2dd0e2cea360bc9206eb88ecc40d259e796c239d",
      "tree": "9d619dc9508cbe73e4793bf6f08cbc761abfb48a",
      "parents": [
        "ac21b797b3a425975d656d6b84a7b24401d35f42"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 24 12:42:14 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jan 30 16:48:31 2013 -0800"
      },
      "message": "Directory restructuring of object.h\n\nBreak object.h into constituent files.\nReduce number of #includes in other GC header files.\nIntroduce -inl.h files to avoid mirror files #include-ing each other.\nCheck invariants of verifier RegTypes for all constructors.\n\nChange-Id: Iecf1171c02910ac152d52947330ef456df4043bc\n"
    },
    {
      "commit": "700c8d31733534a3d978b75a03f6f7e177dc7e81",
      "tree": "6b9d8d93a70e31dba3b0a880f886ce408776314c",
      "parents": [
        "9adbff5b85fcae2b3e2443344415f6c17ea3ba0a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Nov 05 10:42:02 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 25 14:28:43 2013 -0800"
      },
      "message": "Move .oat files to ELF format\n\nGenerates .oat in ELF file format using MCLinker\n- Uses MCLinker IRBuilder to create a synthetic .o from OatWriter output.\n- Uses new ElfFile for prelinking to support art image optimizations.\n\nAdapted OatFile to load using dlopen, ElfFile, or memory, removing raw MemMap mechanism.\n\nChanged image code to not assume oat data will be immediately after\nimage to allow space for ELF headers.\n\nPasses test-art and works with installd.\n\nChange-Id: Idc026eddb5de93f4b97490c405f3ed7b39589749\n"
    },
    {
      "commit": "56edc432fa914f7ccfa87ce443e64f5ef475666d",
      "tree": "4e05c32f3524043614a2f368a6d49f7f3bc24616",
      "parents": [
        "d75afb99f0c8b8a27ad84e2e31010383ecf72120"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jan 18 16:51:51 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jan 22 08:47:33 2013 -0800"
      },
      "message": "Support for contention logging with ART futexes.\n\nRemove dangerous postfix operators on AtomicInteger. Clean up the atomic stack.\nFactor nanosleep into a useful shared utils.h routine.\n\nChange-Id: I417a73007c23fe247f410f41b2fa41a717c22139\n"
    },
    {
      "commit": "7331813aa84c82f003b58da7a9225622f8b0eeeb",
      "tree": "27d605e356312e8c067fff33eb98b362742edde1",
      "parents": [
        "1cac343f8621a81bcd3f52f8eee0f497a66d7408"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 12:05:56 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 12:05:56 2012 -0800"
      },
      "message": "Remove now unused RelocateExecutable\n\nChange-Id: Ief03e9154d038fa977fe5eb38b1b9aef6659231f\n"
    },
    {
      "commit": "ef28b14268ed0f9db0c7bbd571aa514354a360bd",
      "tree": "6a993310b20f012d9d1d150a85dc4ab97663587c",
      "parents": [
        "cfaa455374aae0a08c8cb28b5bb306b17866d652"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 30 14:22:18 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 30 23:26:19 2012 -0800"
      },
      "message": "Remove some SOA from JNI internal.\n\nRemove or reduce scope of scoped object accesses in JNI internal. Turn a\nPrettyMethod and string compare into a pointer comparison.\n\nChange-Id: I6f8ac8f6a4741916769288c4d6d411c7e0f40ef4\n"
    },
    {
      "commit": "cfaa455374aae0a08c8cb28b5bb306b17866d652",
      "tree": "ca8f25a06f234385b6e62bb774085f1324e5d519",
      "parents": [
        "3676aeb03d5f70933891bb3b21abb8e31a81e36c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 26 21:00:08 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 30 16:38:21 2012 -0800"
      },
      "message": "Turn the thread peer_ into a Object*.\n\nDon\u0027t use a JNI global ref for the thread peer_ so that we can\nsupport more threads than we can global refs. This fixes run-test 51.\nFix a race in thread destruction where a thread may be requested to\nsuspend while deleting itself.\n\nChange-Id: Id8756a575becf80d2a0be0a213325034556927f1\n"
    },
    {
      "commit": "50ffee20ced9c0c7ac68889c86be8844cf120cf2",
      "tree": "53773866564cf275c7e67309e7529a4c6e45de78",
      "parents": [
        "b212a9974ccd3ce3fafb24ddab3b96762cecb14c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 11:47:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 11:47:44 2012 -0800"
      },
      "message": "Introduce -Xint flag for ART.\n\nChange-Id: I0f7d8c0b0f33e77ca2d3fbf05b7a16fedb86a545\n"
    },
    {
      "commit": "725a957985171d712d5c048cc3d00ff14968784b",
      "tree": "3bd4b161268ecd477aa471665316fb27a3dda145",
      "parents": [
        "35883cc623fdf475a4ead1dafcba9e9becc1ed11"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 13 18:20:12 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 14 11:42:33 2012 -0800"
      },
      "message": "Pulled out instrumentation into its own class separate from trace.\n\nThis is in preparation for Ian\u0027s debugger changes. The instrumentation\nstill needs support for debugging, which I\u0027ll add later.\n\nChange-Id: I29ce0af1ff2eaec8f6d2f54963263381363ebf72\n"
    },
    {
      "commit": "35883cc623fdf475a4ead1dafcba9e9becc1ed11",
      "tree": "792bdfcb0a556f7c54a35d9c0e4409d3ca4dd2e5",
      "parents": [
        "ec13743da80a80c1817cf6660c28917fc28846bc"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 13 14:08:12 2012 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 13 16:33:39 2012 -0800"
      },
      "message": "Ensure ThreadPool constructor does not return until fully initialized.\n\nThread pool was being deleted too early during runtime shutdown,\nthis was causing a GC running during runtime shutdown to\noccasionally reference a deleted thread pool.\n\nFixed an error where the thread pool was being deleted before the\nthreads were done attaching by making the thread pool constructor\nblock until all of the threads are attached.\n\nChange-Id: I5f0884a74d78c4541ee0e582112857077f3f594f\n"
    },
    {
      "commit": "664bebf92eb2151b9b570ccd42ac4b6056c3ea9c",
      "tree": "783a4492b398078e8d5747f19f6019e91939c986",
      "parents": [
        "d22d54849c96760aa1efa259d6dcfbace54da2af"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 12 16:54:11 2012 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 12 17:37:38 2012 -0800"
      },
      "message": "Fix occasional deadlock caused by checkpoint root marking.\n\nThere was a race where a new worker thread would attach during the\ncheckpoint. This caused the thread to wait since suspend count !\u003d 0.\nBut when we decremented the suspend count, we did not broadcast to\nthe resume condition.\n\nAdded a create peer parameter to Thread::Attach and\nAttachCurrentThread. This is used by the threadpool since we don\u0027t\nneed a java peer for worker threads.\n\nChange-Id: I632926b5a6b52eeb0684b6e1dcbf3db42ba3d35c\n"
    },
    {
      "commit": "a0a641c5c47ef37a5d9467582c3dbc4cd3d29529",
      "tree": "81828574724f260581b3c8f08bc562c6247a935b",
      "parents": [
        "994d62a359188354de6ad01699b2ae6698db16f9",
        "02b6a78038f12c109f95eb31713cfc747f5512f1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 06 16:09:32 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 06 16:09:32 2012 -0800"
      },
      "message": "Merge \"Parellel mark stack processing\" into dalvik-dev"
    },
    {
      "commit": "02b6a78038f12c109f95eb31713cfc747f5512f1",
      "tree": "c36841561a47b2ce3cf15b00fdae822e5a6c5b64",
      "parents": [
        "bcc2926b9721f94c17ed98fae5264cc98f0e066f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 26 13:51:26 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 06 16:07:36 2012 -0800"
      },
      "message": "Parellel mark stack processing\n\nEnabled parallel mark stack processing by using a thread pool.\n\nOptimized object scanning by removing dependent loads for IsClass.\n\nPerformance:\nPrime: ~10% speedup of partial GC.\nNakasi: ~50% speedup of partial GC.\n\nChange-Id: I43256a068efc47cb52d93108458ea18d4e02fccc\n"
    },
    {
      "commit": "81b8871007101f42e2baabf213e1312004073eb0",
      "tree": "7664b7ebf5dabeb0364806d1312299020c77c1d4",
      "parents": [
        "bcc2926b9721f94c17ed98fae5264cc98f0e066f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Nov 05 19:21:30 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Nov 05 19:22:24 2012 -0800"
      },
      "message": "Broaden scope of gAborting. Fixes hang in HandleUnexpectedSignal.\n\nChange-Id: I4c29cd7b67f07bb9f99c308feac5a3d6c236bc2b\n"
    },
    {
      "commit": "2fa6b2e2fc3d2a2fc27808ce518dc76b80ce369a",
      "tree": "daba5f5e64409452e31ae42e3b1b6b6491ccb007",
      "parents": [
        "6ed960d260d0ec3cbbef455c646ccd47f4e78119"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 17 00:10:17 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 26 16:12:59 2012 -0700"
      },
      "message": "Interpreter.\n\nThe opcodes filled-new-array and packed-switch aren\u0027t implemented but\nare trivial given that they are variants of implemented opcodes.\nRefactor Field::Get routines to take the declaring class in the case of\nstatic field accesses. This avoids a check on every use of a field.\nRefactor arg array builder to be shared by JNI invokes and invocations\ninto the interpreter.\nFix benign bug in const decoding in the verifier.\n\nChange-Id: I8dee6c1f4b7f033e6c003422c56e9471cfaccda8\n"
    },
    {
      "commit": "858f1c5fd5e528d0b16040ced74d4636046a42d8",
      "tree": "3cfe50b75962353cdd62ec68112f3f148f026506",
      "parents": [
        "ef851d3058abfc56ed544f25d387dc7ff9c32e0b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 17 17:45:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 23 10:38:45 2012 -0700"
      },
      "message": "Check point root marking.\n\nAdded thread list checkpoint function, this goes through every thread and runs\nthe checkpoint on each thread. Threads that are runnable run the checkpoint\ncallback themselves in the next suspend check, while suspended threads are\nleft suspended but have the callback called on them.\n\nAdded a checkpoint visitor member to each thread, this visitor called when the\ncheckpoint request flag is set during transitions to suspended from runnable.\n\nUsing the checkpoint to mark the roots reduces the first pause of partial /\nfull gc to around 1 ms.\n\nChange-Id: I97239cc72ee0e4a3397e9138a62ee559268dce0a\n"
    },
    {
      "commit": "4eb68edeecc4d6641bcca2a40620631335e7cadc",
      "tree": "7b627587f60f8cef5a76db2a361ee4ba9a4042e7",
      "parents": [
        "99bc2176824556730c948f17cbdb7993b17fcb6e"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 17 16:41:07 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Oct 18 12:13:33 2012 -0700"
      },
      "message": "More MIPS fixes. Fibonacci and ExceptionTest work.\n\nIn this change:\n- Fixed compilation of div-int and instance-of\n- Fixed VERIFY_OBJECT to compile again\n- Added stack space for passing extra function arguments for\n  REF_ONLY_CALLEE_SAVE functions\n- Fixed AbstractMethodErrorStub to match stack layout\n\nChange-Id: I3d4540a3285a0acf49522ffc6f01d04b888bb8ef\n"
    },
    {
      "commit": "9ebae1f30b84dfd8dab4144f80eebec4f8fc8851",
      "tree": "379f7606cf7c1b5bbeb41caccc4cb681fc1ef2b4",
      "parents": [
        "30de32dec8dba21f7fec117b779c2b4e6bb4e4e6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 15 17:38:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 16 10:05:04 2012 -0700"
      },
      "message": "Concurrent class linker and intern table root marking\n\nWe now mark the class linker and intern table roots concurrently\n(with mutators unpaused), only re-marking these roots in the second pause if\nthey get dirtied.\n\nReduces root marking time by ~1ms for each pause.\n\nChange-Id: I833fc557bac9a2930868db715587318293fa4655\n"
    },
    {
      "commit": "fbd229147c62d8e8787e27e7c9db3b387ffe39ef",
      "tree": "f19776e3edde3c635a7343ca942722a87ba46b62",
      "parents": [
        "c604d731730b43231f63040c8db1d58304da0cf3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 12 14:21:10 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 15 16:36:07 2012 -0700"
      },
      "message": "Attempt to always dump all threads when aborting.\n\nFurther pursuit of Bug: 7250540\n\nChange-Id: I99628aa4f5666339b372ab8948d3303ad9687eae\n"
    },
    {
      "commit": "c604d731730b43231f63040c8db1d58304da0cf3",
      "tree": "bb9cd6aa56eb3ba88ff27967efc3cc08da150b87",
      "parents": [
        "0b0b515934b83385e1cea448113783e0b22849ed"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Oct 14 16:09:54 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 15 15:36:32 2012 -0700"
      },
      "message": "Implement mutex requeueing for cv broadcasts.\n\nMake the mutex guarding a condition variable part of its state. On a\nbroadcast requeue waiters on the mutex so they are awoken as the mutex\nis unlocked (thereby avoiding thundering herds). Explicit futex use\nstill guarded behind ART_USE_FUTEXES which remains disabled as I\u0027m\nunhappy with some of the warts of mutex usage. Uploading so that the API\nchanges can stabilize.\n\nChange-Id: Iedb601856ccd8bbc3a64da4ba0cee82246e7bcbf\n"
    },
    {
      "commit": "0051be6d118c511308ed7764ef41e0d594292c49",
      "tree": "aadcb9811b6034bf85d5a1c09d9264514f27dfac",
      "parents": [
        "17f6cb9d269b8289f751551c80fe8b0dcfad363c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 12 17:47:11 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 15 09:52:41 2012 -0700"
      },
      "message": "Add parsed options for heap min free, heap max free, target utilization.\n\nAdded options in runtime for heap min free, max free, and target utilization.\n\nChange-Id: Iaea988ffbf6cb7f07127640786168de7d341f1e1\n"
    },
    {
      "commit": "fa147e22a73c6df166b08a2f71f9c9b52b09d17c",
      "tree": "d50b1c6b89de4fcc4473f2aa2defe3bbc0f8289c",
      "parents": [
        "4fe0ef28ed58502a3652e827f5931df0b45cf39c"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 12 17:03:32 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Oct 12 17:03:32 2012 -0700"
      },
      "message": "Numerous fixes to MIPS. Basic oatexec works.\n\n- Fixed reversed base and destination reg in genConstString\n- Changed compiler to use T9 to hold address to jump to\n- Fixed compilation of instruction getting current PC\n- Prevented T9 from being used as a compiler temp\n- Fixed loadBaseDispBody for long form single loads\n- Fixed stack setup for SaveAll callee methods to save rSELF \u0026 rSUSPEND\n- Added .cpload directive to assembly to regenerate $gp when overwritten\n- Fixed passing of extra arguments on the stack to account for space\n    reserved for $a0-$a3\n- Fixed resolution trampoline to properly setup and restore stack\n- Created mips stubs for interface trampoline and unresolved direct\n    method trampoline\n\nChange-Id: I63a3fd0366bdfabdebebf58ec4b8bc9443cec355\n"
    },
    {
      "commit": "2f7f9b6a3f0f6f334f0314b10d1dc696e5a9afa4",
      "tree": "4329da37859192407acf2c4eab57f0adc680f002",
      "parents": [
        "7204db592a999318067b9c509e14aa8b30293e58"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 10 18:24:05 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 10 18:24:05 2012 -0700"
      },
      "message": "DumpAllThreads in abort when locks are held.\n\nTake an opportunity for better diagnostics. Will help Bug: 7250540.\n\nChange-Id: I804168622829ce8e814a08c33d480a4459dd6b34\n"
    },
    {
      "commit": "7469ebf3888b8037421cb6834f37f946646265ec",
      "tree": "b1eb8cd8d1e3b6263c2de77616020de4b4b5019f",
      "parents": [
        "d8195f19840911a73b1491dfc8e7c18139753731"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 24 16:28:36 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 08 18:02:42 2012 -0700"
      },
      "message": "Refactor and remove copy mark bits.\n\nRefactor code GC realted code to be in a GC folder.\n\nRemove copy mark bits by using pointer changing instead.\n\nEnable concurrent sweeping of system weaks.\n\nFix non concurrent GC plan.\n\nChange-Id: I9c71478be27d21a75f8a4e6af6faabe896e5e263\n"
    },
    {
      "commit": "50b35e2fd1a68cd1240e4a9d9f363e11764957d1",
      "tree": "4f3c58b7b293380f19e4f33357cb352e3330772e",
      "parents": [
        "8e9a1497f0d7da4d55f6e7ed8a7d96ba6db7222d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 04 10:09:15 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 05 11:07:39 2012 -0700"
      },
      "message": "Explicitly pass Thread::Current to MutexLock and Alloc.\n\nChange-Id: I8b75bc0617915465f102815b32306aa7760dcae4\n"
    },
    {
      "commit": "1f5393447b9f45be7918042d9ee7b521376de866",
      "tree": "1793cb0ae00b38a63f8cfd3a25b6cb0ee4edca16",
      "parents": [
        "870ea4772199f8d4cbd9a269f9093620ee50a59c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 03 21:09:42 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 04 09:27:04 2012 -0700"
      },
      "message": "Make PopSirt inlinable, pass self to SirtRef.\n\nChange-Id: Ieb91526b1cb1f8644ceb3c5b99649f658f43bbc1\n"
    },
    {
      "commit": "120f1c74a9768e958377b6c97897511b27ae58c8",
      "tree": "fa1f90d88ea34d8ef9eec729d27c7a70956a6a09",
      "parents": [
        "cabc60e71a65fa17e5a99fba94fc61523fbeb478"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 28 17:17:10 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 03 17:29:26 2012 -0700"
      },
      "message": "Fail threads attaching during runtime shutdown.\n\nIntroduce counters to indicate that threads are being born. Don\u0027t allow\nthread birth to occur during runtime shutdown.\n\nBug: 7000936\n\nChange-Id: Ib0d78f78c0ff126a4b5d3b5a6f1a2ff8f5061ae9\n"
    },
    {
      "commit": "81d425b0b232962441616f8b14f73620bffef5e5",
      "tree": "cd1e46656269acf20e78817d675e56d9b9133e6c",
      "parents": [
        "bfaf917edbb1de8d158c3615e0da8ac3143d10c8"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 27 16:03:43 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 27 17:19:25 2012 -0700"
      },
      "message": "Pass self to lock methods.\n\nThis avoids frequent recomputation of\nThread::Current/pthread_getspecific.\n\nAlso add a futex based reader/writer mutex that is disabled.\n\nChange-Id: I118fdb99ef1d1c4bfda6446ba3a0d8b6ab31eaee\n"
    },
    {
      "commit": "0703060875166106af3d490c6c264611aea67ec8",
      "tree": "6e8c265b64a0ffac69f1072686f961d59060ec70",
      "parents": [
        "63818dc8b06af4a1e65c41b453f1a42166c22728"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 26 14:33:14 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Sep 26 14:33:14 2012 -0700"
      },
      "message": "Fixes to make jni_compiler_test work on MIPS.\n\nFixed the jni compiler in numerous ways:\n- Added NOP for delay slot of branches/jumps\n- Made calling convention match registers pushed by stubs\n- Fixes to assembly and added noreorder directive\n\nChange-Id: I32bc55985fbbc58b5b5358149766b8738b3ac955\n"
    },
    {
      "commit": "dbe6f4613ae0161b169f4fca8a616b0b393370ab",
      "tree": "bcf21fa802f8ae261522e8c9bab3685020908d13",
      "parents": [
        "474b6da273c7ce6df50a4e51eb9929a77e1611c3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 25 16:54:50 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 25 22:36:20 2012 -0700"
      },
      "message": "Change Thread::peer_ to be a jobject instead of an Object*\n\nFixes issue where GC was freeing the java peer if the parent thread exited before the child thread got registered.\n\nChange-Id: I6fbe74865d5827d243ac55fc396679afa97ff2f9\n"
    },
    {
      "commit": "66f19258f9728d4ffe026074d8fd429d639802fa",
      "tree": "fd94009774c6cbbb1528ea096e606133bd35f104",
      "parents": [
        "a5e1e3d153990845d80cb8d013157210f11a473c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 18 08:57:04 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 21 17:32:56 2012 -0700"
      },
      "message": "Change dex cache to be java object instead of array, add pointer to dex file in dex cache.\n\nGeneric clean up to facilitate having GDB macros for Pretty* helper functions.\n\nImproved cleanliness of DexCache since having it as an object array was not the best solution.\n\nFixed a bug in InOrderWalk caused by ResolveType sometimes allocating classes.\n\nRename C++ Method to AbstractMethod and add two new classes Constructor, Method which both inherit from AbstractMethod.\n\nRename done to have the C++ code be closer to the java code.\n\nChange-Id: I4995b4c5e47a3822192b08afa24a639d3b1f4da9\n"
    },
    {
      "commit": "b726dcb581bf72da46527378ccb6889020f0e6e9",
      "tree": "c0383ed788652926e93147e50d659ed226519548",
      "parents": [
        "fd678beb171a4686a4f2d53ca4188a4ade8fa54e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 05 08:57:23 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 05 09:06:19 2012 -0700"
      },
      "message": "Rename GlobalSynchronization to Locks\n\nAlso address some review comments in common_throws relating to\nToStr\u003cInvokeType\u003e and exception detail messages.\n\nChange-Id: Ibf2c0f147689fa236d349bd7f01eed3c2522552b\n"
    },
    {
      "commit": "7fbee0731b14b5bf392a4254f5cd84685ab517da",
      "tree": "b24cf6d9eed7935e3b26d63cf2292fd8c008005b",
      "parents": [
        "f3a26411e0e8b56b64d184d3e946e72f9c31e4c7"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 24 17:56:54 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Aug 27 11:33:05 2012 -0700"
      },
      "message": "Preliminary changes to allow mips target to build.\n\nIt compiles, but it doesn\u0027t work yet.\n\nChange-Id: I2973a03bd956d8d398b9cfd1047e66fbf3ff439c\n"
    },
    {
      "commit": "1b09b094a85e03f6ef5f687f58bb91c433273ba1",
      "tree": "6b039e520ee3b73e6ba5fb23954b9e01ecc68fc9",
      "parents": [
        "931c278aed62d7a97b87cf1bb9cfdd189e77eb24"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 15:35:52 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 20 15:35:52 2012 -0700"
      },
      "message": "Syntax clean up to make clang happy.\n\nChange-Id: I0984c395bbd1ee4b206eafd19915b6f68781dd16\n"
    },
    {
      "commit": "00f7d0eaa6bd93d33bf0c1429bf4ba0b3f28abac",
      "tree": "6a2172ece15c4699e6c2a67ce76f019db0a9a21d",
      "parents": [
        "634ea28f78c4a138e6a1de54eae8696095422415"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jul 19 15:28:27 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 10:45:52 2012 -0700"
      },
      "message": "Global lock levels.\n\nIntroduce the notion of the mutators/GC being a shared-exclusive (aka\nreader-writer) lock. Introduce globally ordered locks, analysable by\nannotalysis, statically at compile time. Add locking attributes to\nmethods.\n\nMore subtly, remove the heap_lock_ and split between various locks that\nare held for smaller periods (where work doesn\u0027t get blocked). Remove\nbuggy Dalvik style thread transitions. Make GC use CMS in all cases when\nconcurrent is enabled. Fix bug where suspend counts rather than debug\nsuspend counts were sent to JDWP. Move the PathClassLoader to\nWellKnownClasses. In debugger refactor calls to send request and\npossibly suspend. Break apart different VmWait thread states. Move\nidentity hash code to a shared method.\n\nChange-Id: Icdbfc3ce3fcccd14341860ac7305d8e97b51f5c6\n"
    },
    {
      "commit": "034f76b91225bea769d6185d7dad5e243af4ffa0",
      "tree": "56732a2b9847c5c791cb8f2336222ca9f853b277",
      "parents": [
        "f2ba9cbe81b0762a7c8c659cdb86ba79b2dbbc40"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 01 15:51:58 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 01 15:51:58 2012 -0700"
      },
      "message": "Check for null thread groups at initialization\n\nChange-Id: Ia6fffe9f416ac4bd2588016b99b172cf023f3c5d\n"
    },
    {
      "commit": "cc236d74772dda5a4161d9bc5f497fd3d956eb87",
      "tree": "2cd44e980357edc5b1a477fb261adb590d34c7c7",
      "parents": [
        "f1ea6b072b8b473eabf91d1d582fb5966ffea4ba"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 20 10:29:05 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 27 14:30:51 2012 -0700"
      },
      "message": "Zygote space / partial collection support.\n\nThe zygote space is now created right before zygote fork. This space has new allocations into it disabled, this reduces memory usage since we have more shared pages.\n\nPartial collection works by marking all the zygote space -\u003e alloc space references by using a mod-union table and then recursively marking only over the alloc space.\n\nApproximate improvements;\n\nDeltablue time goes down ~0.5 seconds.\n\nCaffeinemark score goes up ~300.\n\nSystem memory usage goes down ~7MB.\n\nChange-Id: I198389371d23deacd9b4534f39727eb641786b34\n"
    },
    {
      "commit": "206c20d6b1e27d8eca843498fdde1ddd5b9daa39",
      "tree": "641744c66209e0c2765a781c07c4f483c3b645b6",
      "parents": [
        "78a5e15629e6591090582cd83b1ec1380a50a840"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 28 11:05:37 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 28 11:05:37 2012 -0700"
      },
      "message": "Don\u0027t ignore -Xstacktracefile: in debug builds.\n\nChange-Id: Iabf65f6b68fda8a23c480c5c427c3f87a98d6d85\n"
    },
    {
      "commit": "971bf3f9184010d68b9a3ad30b396fa401af91a3",
      "tree": "493e80309ce41fd21359da8093fbebfd21b7936c",
      "parents": [
        "468a7b1fcb2114ec973e31b5276daea0be62c198"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue May 01 15:47:55 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Jun 27 03:47:58 2012 -0700"
      },
      "message": "Compile method one-by-one.\n\nChange-Id: Ic56fb397f3bd6dee32372eb875261a3383eaf30c\n"
    },
    {
      "commit": "365c10235438607541fa2259a5fec48061b90bd8",
      "tree": "26516a4985a8bbef4c8da36b99bf1e54af3ad24d",
      "parents": [
        "147440427984816b6ed5235a9b1fb2cbf99496d0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 22 15:05:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 26 15:21:01 2012 -0700"
      },
      "message": "Increase use of ScopedJniThreadState.\n\nMove the routines for changing Object* to jobject and vice-versa\n(AddLocalReference and Decode) to ScopedJniThreadState to enforce use of\nObject*s in the Runnable thread state. In the Runnable thread state\nsuspension is necessary before GC can take place.\n\nReduce use of const ClassLoader* as the code bottoms out in FindClass\nand with a field assignment where the const is cast away (ie if we\u0027re\nnot going to enforce the const-ness we shouldn\u0027t pretend it is).\n\nRefactor the Thread::Attach API so that we\u0027re not handling raw Objects on\nunattached threads.\n\nRemove some unreachable code.\n\nChange-Id: I0fa969f49ee6a8f10752af74a6b0e04d46b4cd97\n"
    },
    {
      "commit": "0399dde18753aa9bd2bd0d7cf60beef154d164a4",
      "tree": "ea88327c01ca321074aaa59b97e4c54348802937",
      "parents": [
        "de5705dcf4ab5f92d48e144bcd7b59f7bcd18e16"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jun 06 17:09:28 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jun 21 22:11:24 2012 -0700"
      },
      "message": "Remove Frame, merge shadow and quick representations.\n\nChange-Id: I5ae03a5e52111792d2df7e83cbd89ab25777844b\n"
    },
    {
      "commit": "069387a60cb2b72e116cc38b32e14403f092df8f",
      "tree": "787c123093daa5e79ab8d5c25ed18856dd6d0724",
      "parents": [
        "83c26f9c7ee42b0037d2679f6f37dd28a3f13af7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 18 12:01:01 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 18 15:19:28 2012 -0700"
      },
      "message": "Enable / disable CMS runtime options.\n\nEnable or disable CMS by doing -Xgc:noconcurrent or Xgc:concurrent. Defaults to enabled.\n\nChange-Id: Ib18687ba6aa6534323531d761133ce410c69f426\n"
    },
    {
      "commit": "6cf23884730574ca364b357e823259f4993e6908",
      "tree": "50ad618096847b2dfe423ece38246891870c84ce",
      "parents": [
        "cee4d0c1c2faacf0eae748a24cc7e455e067d977"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 15 15:42:07 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 15 15:42:07 2012 -0700"
      },
      "message": "Simplify the default stack size handling.\n\nThe extra 16KB was just silly. We only need a notion of \"default stack size\"\nif there\u0027s an explicit command-line override.\n\nChange-Id: Ia63e00047a420546656ac8d2dad46789994157a3\n"
    },
    {
      "commit": "0a1038b0a30a52dff1a449a989825e808a83df80",
      "tree": "4f4f72efe2d3fa076faf39c2ce084c9de9f5a4fe",
      "parents": [
        "56400fa8913530a6f01bb45723614f08fa44baf1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 14 16:24:17 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 14 16:51:10 2012 -0700"
      },
      "message": "Make tsan happy.\n\ntsan was unhappy with our static Mutex, claiming a race between the constructor\nwriting the \u0027rank_\u0027 field and Mutex::Lock reading it. My understanding of the\nGCC static initialization acquire/release code is that it includes memory\nbarriers that should make this safe, so I\u0027m reaching out to the tsan guys. In\nthe meantime, let\u0027s just make this MethodVerifier lock \u0026 collection like the\nother MethodVerifier locks \u0026 collections.\n\n  WARNING: Possible data race during read of size 4 at 0x1A42F09C: {{{\n   T2 (Compiler Worker) (L{}):\n    #0  art::Mutex::Lock /home/enh/local-disk/clean-dalvik-dev/art/src/mutex.cc:89\n    #1  art::verifier::MethodVerifier::IsClassRejected /usr/local/google/home/enh/clean-dalvik-dev/art/src/mutex.h:77\n    #2  art::Compiler::CompileClass /home/enh/local-disk/clean-dalvik-dev/art/src/compiler.cc:1420\n    #3  art::WorkerThread::Go /home/enh/local-disk/clean-dalvik-dev/art/src/compiler.cc:1013\n  Concurrent write(s) happened at (OR AFTER) these points:\n   T1 (Compiler Worker) (L{}):\n    #0  art::Mutex::Mutex /home/enh/local-disk/clean-dalvik-dev/art/src/mutex.cc:67\n    #1  art::verifier::MethodVerifier::IsClassRejected /home/enh/local-disk/clean-dalvik-dev/art/src/verifier/method_verifier.cc:3334\n    #2  art::Compiler::CompileClass /home/enh/local-disk/clean-dalvik-dev/art/src/compiler.cc:1420\n    #3  art::WorkerThread::Go /home/enh/local-disk/clean-dalvik-dev/art/src/compiler.cc:1013\n  Address 0x1A42F09C is 28 bytes inside data symbol \"_ZZN3art8verifierL22GetRejectedClassesLockEvE21rejected_classes_lock\"\n   Race verifier data: 0x1A198B1E,0x1A198025\n  }}}\n\n(cherry picked from commit 6356df46fb0ebff5467d3103b97c3c871940e402)\n\nChange-Id: I26a9c91f133370161ab4679e36d9a02315d28847\n"
    },
    {
      "commit": "a6399035ee2af012e2ac898ee7a753a2f83b35ab",
      "tree": "47d90d21e242ec91345e61f3cf118cd1adabe78b",
      "parents": [
        "69362a053e87efe0e3596618f723a90d97551947"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 11 18:49:50 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 14 11:26:06 2012 -0700"
      },
      "message": "Fix and re-enable CMS\n\nFix for CardTable::Scan double length scan which caused occasional assert failures.\nFix for the case where CMS request JNI code caused a GC which freed newest allocated object.\nFix error with is_gc_running_ never being set and deadlock due to CV wait without thread state change.\nFix error where we were Unlocking the heap before doing ResumeAll in CollectGarbageInternal which resulted in a rare race condition.\nFix error where GC could be in progress when the runtime terminated.\n\nChange-Id: I8d243d4dca63170433a63429442788ecb09e55fe\n"
    },
    {
      "commit": "225f5a1df25241babd16cdba54056b9e2cd166a2",
      "tree": "d3846f2f3a97a59124084d8fd503a3238346e66d",
      "parents": [
        "7664f5cd118b355a5fe0c7536cb48ac991ed2b62"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jun 11 11:23:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 11 11:37:58 2012 -0700"
      },
      "message": "Don\u0027t pre-allocate one OOME per thread.\n\nThere\u0027s no associated stack trace, so we can share one between all\nthreads, saving a little memory and thread start-up time. Speaking\nof stack traces: dump the stack to the log at the point where we\nrealize we\u0027re not going to be able to throw an exception with a\nstack, so the developer has _something_ to work with.\n\nChange-Id: I2246d291855bd9b9ee13f2be5b1ce14f669e9410\n"
    },
    {
      "commit": "7664f5cd118b355a5fe0c7536cb48ac991ed2b62",
      "tree": "0564c36316e2aa0a892ff9914258433f14641a07",
      "parents": [
        "9eb5f03e0dd90ac25e01fcf81f832c50a1f09d2c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 08 18:15:32 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 11 11:17:13 2012 -0700"
      },
      "message": "Fix GC performance regression\n\nEnable CMS and fix performance regression due to recursive marking image spaces. Dependent on my java change list.\n\nChange-Id: I4765792aa8226e811ac158f04ab88217db755573\n"
    },
    {
      "commit": "9af209c9dcc6763fae2976981570a90aa41fd86b",
      "tree": "450ad8e634cfde765d4719746d6bc1685422a5f4",
      "parents": [
        "2945e2455ba87e15b65f4a6a737bcdc8c0f2f31b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Jun 03 20:50:30 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Jun 03 20:50:53 2012 -0700"
      },
      "message": "Move simple runtime accessors to header file\n\nChange-Id: I6831e067d8b7ce4d81b6daf9bd6a8af21fecfde3\n"
    },
    {
      "commit": "058a6de784e5337c550e8b45bfa1f54e6d16fbf2",
      "tree": "767387657aa125eff1d92f6264348f064a95c277",
      "parents": [
        "46e251bf7200cc06f5a9a82ee2030e650f5e1443"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 19:13:02 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 11:23:21 2012 -0700"
      },
      "message": "Switch completely over to libcorkscrew for Mac OS.\n\n(This patch requires my Darwin libcorkscrew changes.)\n\n(cherry picked from commit 51e916f5b7baf0b0391f55a314a97b12279fe0d5)\n\nConflicts:\n\n\tsrc/runtime_linux.cc\n\nChange-Id: Ife7789597402989e6b8282cc0c0cc1d1832b044a\n"
    },
    {
      "commit": "d06a6c7c40180c2c906d6981dd461ede2187bd99",
      "tree": "e05a9fc25d9cc15c41d109af7a92b610b15fac7d",
      "parents": [
        "55d5ea6b59c15d9da9f7552a557628f2c84b7c92"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 30 17:59:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 31 11:33:00 2012 -0700"
      },
      "message": "[DO NOT MERGE] Improve signal catching and native stack dumps.\n\nThis works around the problem with abort(3) (and friends) on glibc,\nand improves our ability to catch SIGSEGVs from the main thread, and\nslightly improves our behavior if multiple threads are dying at once.\nI think any remaining flakiness is only in this last case, and I\u0027m\nnot sure whether we can actually improve that any further.\n\n(cherry picked from commit dcaaea9d30f39622d0b1d9bbb68911173621e54b)\n\nConflicts:\n\n\tsrc/runtime_linux.cc\n\nChange-Id: I9922f3ee4609799993635e1ed98a21363505a6ab\n"
    },
    {
      "commit": "e94d9b23c52ec0f36c8a132914eac33bc707faff",
      "tree": "53a3b1262f9f01f12507ec2aa1f1fd6fa774fc72",
      "parents": [
        "024cf66d3359c015fabca8f5f3964592973e3f6e"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue May 22 09:01:24 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon May 28 21:04:37 2012 -0700"
      },
      "message": "Add dex_lang as common frontend to lir and LLVM. dex_lang + bc2lir \u003d\nGreenland\n\nFirst commit of Greenland compiler: It\u0027s working in the sense of oat\ntests. E.g., mm test-art-host-oat-Fibonacci. It shows the correct\nbitcode before lir.\n\nChange-Id: I91cbb02188325eb1fa605ed71ec7108fd2b0dbb9\n"
    },
    {
      "commit": "eac766769e3114a078c188ea26776a81f0edb3cf",
      "tree": "4b9b8dfc89725173431817baba4455c013e40577",
      "parents": [
        "3f9ace8d90bfc48c8d7bf35af66de8ce8238de7f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 21:56:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 25 12:04:43 2012 -0700"
      },
      "message": "DO NOT MERGE Fix all unsafe caching to be like libcore.\n\nThis way, if a runtime is restarted within a process, we re-initialize all\nthe cached data.\n\nConflicts:\n\n\tsrc/native/java_lang_Runtime.cc -- nativeExit lost an argument in dalvik-dev\n\n(cherry picked from commit 7756d5473fa27ce7e6ac7c31770eef7030431da4)\n\nChange-Id: I6184fc20c2a9ec16c4b053584a4d1c3b64452d0f\n"
    },
    {
      "commit": "e119a3623ffbd55ff856d4eaac4dc4ef0c90a089",
      "tree": "142ce634272fc3e2e7d8b44c564fb3d72a01a33e",
      "parents": [
        "bf1b4574dc681d49696571c59033e8c63583a029"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue May 22 17:37:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 19:31:12 2012 -0700"
      },
      "message": "Fix the TODOs in the traceview support.\n\n(cherry picked from commit cfbe73d02a024800813f8f0fc4f6a4b4532195f3)\n\nChange-Id: Ie9ee2701df665d92c544c2ac3b4eaf7209a881a5\n"
    },
    {
      "commit": "4d5714378c3433ba7e351cbf6a6713fb49c31784",
      "tree": "61cff5862955102a5d6aaa20ea9b7dee9cf1388a",
      "parents": [
        "0aac50652ef961ba3aafa44d43871190d23be1ce"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 16 00:21:41 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed May 16 12:10:24 2012 -0700"
      },
      "message": "DetachCurrentThread should return JNI_ERR on already detached thread\n\n(cherry picked from commit bea414643f7dc41862a6ee46e57d3c95b6aa51ba)\n\nChange-Id: I9bc52ff81638319528f911cdac4852a945a2d885\n"
    },
    {
      "commit": "7c6169de901fd0a39c8e0c078874dc25207f5b59",
      "tree": "dd7adafc6bcdb734c26a495e4bd923081ef637e7",
      "parents": [
        "736df0253aa65ebccb29ddb6443c31b7730ca3e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 16:11:48 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 02 16:11:48 2012 -0700"
      },
      "message": "Port my AOSP QuasiAtomic rewrite to art.\n\nChange-Id: I9e8fe487b15083cfc441a90ec1ec0eb5e645229e\n"
    },
    {
      "commit": "72395bf298b7707ad9d93c3e51b57e1b8e010311",
      "tree": "8d2e6c3b6bd72ae27aa19979f301630fc438dfec",
      "parents": [
        "ae80b493748c5b6ffe310a91c651e7043f4b2dae"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 13:45:26 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 13:45:26 2012 -0700"
      },
      "message": "Support ANDROID_LOG_TAGS.\n\nThis is the dalvik-compatible solution to the \"I don\u0027t want non-FATAL logging\nin my test output\" problem.\n\nChange-Id: I51b7b883ce89604af4661696e7c7b041a0ef8211\n"
    },
    {
      "commit": "ae80b493748c5b6ffe310a91c651e7043f4b2dae",
      "tree": "cb84ce54ebf1a29dc20889039af4219fcd09f9dd",
      "parents": [
        "b6636b8ef90221eaf7f4779eb2c2256f560d3e64"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 10:43:17 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 24 10:54:55 2012 -0700"
      },
      "message": "Include JNI details in the SIGQUIT output.\n\nAlso include the original command line (framework apps deliberately clobber\ntheir argv[]).\n\nChange-Id: I63e04cb637fa89764e8963f3d086806ae230e953\n"
    },
    {
      "commit": "6c1c69eea21cce39dd043d89368a684d250c9abe",
      "tree": "10313ed9973021fa2c408493cfe9ff877b07beab",
      "parents": [
        "d2abaf455c31fc5a9c9807c74002fd92f838977a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 23 16:12:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 23 16:17:09 2012 -0700"
      },
      "message": "Various crash diagnostic improvements.\n\nRegister dumps, restore backtraces on Mac OS where possible, Mac demangling,\nmore comments, logging when using an abort hook, and more selective use of\nabort hooks.\n\nLinux:\n\n *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\n Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) fault addr 0xdeadd00d\n Registers:\n     eax: 0x00000000    ebx: 0x5598eff4    ecx: 0x56300000    edx: 0x55992de0\n     edi: 0x5597e478    esi: 0xfff1f3c8    ebp: 0xfff1f3e8    esp: 0xfff1f390\n     eip: 0x558a82ff eflags: 0x00010246\n      cs: 0x00000023     ds: 0x0000002b     es: 0x0000002b     fs: 0x00000007\n      gs: 0x00000063     ss: 0x0000002b\n Backtrace:\n \t#00 art::Backtrace::Dump(std::ostream\u0026)+0x4c [0x559357ac] (libartd.so)\n \t#01 ??+0x3b73b0 [0x559343b0] (libartd.so)\n \t#02 [0x55573410] (???)\n \t#03 art::LogMessage::~LogMessage()+0x3bd [0x557e2e6d] (libartd.so)\n \t#04 ?? [0x8088941] (dex2oatd)\n \t#05 ?? [0x80898f7] (dex2oatd)\n \t#06 __libc_start_main+0xe6 [0x55b06bd6] (libc.so.6)\n \t#07 ?? [0x8085b31] (dex2oatd)\n\nMac OS:\n\n *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***\n Fatal signal 6 (SIGABRT), code 0 (?)\n Registers:\n     eax: 0x00000000    ebx: 0xc008bce0    ecx: 0xc008bc5c    edx: 0x906559c6\n     edi: 0xac0f52c0    esi: 0x00000006    ebp: 0xc008bc78    esp: 0xc008bc5c\n     eip: 0x906559c6 eflags: 0x00000246\n      cs: 0x0000000b     ds: 0x00000023     es: 0x00000023     fs: 0x0000001f\n      gs: 0x0000000f     ss: 0x00000023\n Backtrace:\n \t#00 art::Backtrace::Dump(std::ostream\u0026) + 40 [0x001ce25a] (libartd.dylib)\n \t#01 _ZN3artL22HandleUnexpectedSignalEiP9__siginfoPv + 1051 [0x001cdacb] (libartd.dylib)\n \t#02 _sigtramp + 43 [0x90a4559b] (libsystem_c.dylib)\n \t#03 0x0 + 4294967295 [0xffffffff] (???)\n \t#04 abort + 167 [0x909e0bdd] (libsystem_c.dylib)\n \t#05 art::Runtime::Abort() + 322 [0x00192312] (libartd.dylib)\n \t#06 art::LogMessage::~LogMessage() + 413 [0x00135a6d] (libartd.dylib)\n \t#07 art::dex2oat(int, char**) + 6183 [0x00091927] (dex2oatd)\n \t#08 start + 53 [0x0008fb75] (dex2oatd)\n\nChange-Id: I68d215f09723f236889242cfe8aa8819afea4a60\n"
    },
    {
      "commit": "8593fdbacf97261f790ca53ea0ec416f57c987a7",
      "tree": "a9c97a2bc41a31c3a7f8f72d5f1c27bb34b8a627",
      "parents": [
        "e2f0911dfc7cec7c48ad0dea50f2028ae0f1fd0f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 21 20:53:44 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 21 20:53:44 2012 -0700"
      },
      "message": "Clean up host aborts (and simplify the code).\n\nChange-Id: I6efaf065304459df0e030f242f8d1d2fc6fdec4a\n"
    },
    {
      "commit": "7b9d996e4cd7d154bb1a244d67139aff0c363cf2",
      "tree": "a9dabe8f910b4b8bf29c2f4285d860995e25f58d",
      "parents": [
        "934100aea5a0f498c17e2c4a1fd0193af1557b42"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:48:18 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 20 18:57:19 2012 -0700"
      },
      "message": "Tidy up some C-isms.\n\nChange-Id: I53b457cab9067369320457549071fc3e4c23c81b\n"
    },
    {
      "commit": "457005c557b8762475db3220ce5a747d629f975b",
      "tree": "e267d67cf62e64f8d479d4af2df631fed3ef8d26",
      "parents": [
        "1144f950daafb99b4b48196c17391f54f7abb4d3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 13:54:25 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 16 13:54:25 2012 -0700"
      },
      "message": "Add signal handlers for host builds to imitate debuggerd.\n\nThis isn\u0027t going to be as reliable as debuggerd because we\u0027re running inside\nthe crashed process. We could always build debuggerd for the host, and have\nsomething to call out to that. But for now, this gives us most of the\ninformation most of the time...\n\nChange-Id: I992ffb3bdb2903e4b83bd5666108ebe12a813338\n"
    }
  ],
  "next": "c967f78cd29b6019f7cfca40a02e9b677112da70"
}
