)]}'
{
  "log": [
    {
      "commit": "a77f0f68a59870ff027dad654fe31eb3fdaf3d5d",
      "tree": "c041a68efb55db65ab8f195938097a887f5fcc01",
      "parents": [
        "a169e1d8d968800380245cda450505d969ebff76"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Dec 05 17:19:31 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Dec 06 10:14:46 2012 -0800"
      },
      "message": "Various fixes for JDWP.\n\n- Moved lock of thread list lock into DecodeThread from its callers\n- Fixed scope of various locks to prevent locking violations\n- Added transition for current thread from runnable to suspended before\n  suspending vm, and then a transition back\n- Reworked lock ordering to allow JDWP locks to be held while grabbing\n  the thread list lock\n- Moved debugger PostException until after suspension is re-allowed\n\nChange-Id: Ie53e47ff1538e6cd3125c48ddb4c13758b29be63\n"
    },
    {
      "commit": "a169e1d8d968800380245cda450505d969ebff76",
      "tree": "92b2cc6da112b027432ae4d5bc985118baebe376",
      "parents": [
        "ce4cc0d1818e872c1c7f3c3519a82259afd5c288"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Dec 05 14:26:44 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Dec 05 14:26:44 2012 -0800"
      },
      "message": "Quick compiler: refactored listing \u0026 const fix\n\nThis CL started off as a simple fix to Issue 4959751, which\nidentified a case in which compiler debugging listings could read\nuninitialized data.  The fix ended up pulling a few strings - we\nhad two distinct dex printing routines (one was focused on SSA names\nand was used by the .dot graph dumper), while the other was used with\nverbose codegen listing.\n\nEnded up combining the two routines and significantly enhancing the\nvalue of the verbose debug output.  We now always use ssa register\nnames, and also show the constant values of ssa names which are known\nto be const following constant propagation.\n\nAlong the way, deleted a bit of useless code that remapped all\nregisters in a phi set to have the same name, and also got rid of\nsome duplicate listing helper LIR pseudo ops.\n\nSomee examples of the new listing:\n\n-------- dalvik offset: 0x2 @ const/4 v0_1#0x1, #1\n\nthe format of the vreg is:\n   v\u003corignal Dalvik vnum\u003e_\u003cssa instance\u003e[#hex value of immediate]\n\nIn this example, we don\u0027t add any new info (the listing already had #1),\nbut we also show this form in uses:\n\ninvoke-virtual v0_2, v1_3#0x40\n\nAlso improved is the listing output of potentially throwing instructions\nwhich are broken into two parts: the check portion and the work portion.\nBoth halves now show the full disassembly.  For example:\n\n-------- dalvik offset: 0x13 @ Check1: invoke-virtual v0_2, v1_3#0x40\n....code here\n....code here\n-------- dalvik offset: 0x13 @ Check2: invoke-virtual v0_2, v1_3#0x40\n\nDalvik instructions which are optimized away prior to code generation\nare displayed in sqare brackets.  For example:\n\n-------- dalvik offset: 0x16 @ [move-result-object v0_3]--optimized away\n\nFinally, Phi nodes show which incoming block an operand came through.\nIn the following example:\n\n-------- dalvik offset: 0x5 @ Phi v1_2 \u003d (v1_1#0x0:4, v1_2:12, v1_3#0x1:14)\n\nSreg v1_2 is a merge of a constant 0x0 from incoming block 4, a non-const\nvalue from block 12 and a const 0x1 from block 14.\n\nChange-Id: Ib6c19c19ab8a48509d43d8b0e5ed3e8e7ce9fc82\n"
    },
    {
      "commit": "ce4cc0d1818e872c1c7f3c3519a82259afd5c288",
      "tree": "308f2c30e5a842a5e459d96e730ca4432a020f4f",
      "parents": [
        "823b8acdf2c8274ff93b685e50a93ab9afc6af8b"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Sun Nov 18 16:59:53 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Dec 04 11:07:34 2012 -0800"
      },
      "message": "Using gcmap instead of shadow frame.\n\nFix misuse of TBAAJRuntime \u0026 TBAARuntimeInfo. Now, the TBAAJRuntime is\nonly for runtime support function.\n\nUpdate DexPC before lock object and suspend.\n\nChange-Id: I40fa37f4863fe6e127328a8413285ee3c62e8505\n"
    },
    {
      "commit": "823b8acdf2c8274ff93b685e50a93ab9afc6af8b",
      "tree": "fb992f34ed26b0b75169ecc906bdc9b98f3d5e3a",
      "parents": [
        "078fa459fee2d5f26a94fbbe5b8f4feeafb4afb2",
        "ef28b14268ed0f9db0c7bbd571aa514354a360bd"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Dec 03 17:41:29 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 03 17:41:29 2012 -0800"
      },
      "message": "Merge \"Remove some SOA from JNI internal.\" into dalvik-dev"
    },
    {
      "commit": "078fa459fee2d5f26a94fbbe5b8f4feeafb4afb2",
      "tree": "d440d4e3e59ca177cd9ff406a77ce095670c58ef",
      "parents": [
        "609ba32ed9f1655383124f0c4b45c1b23e7aa2e2"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Dec 03 15:51:33 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Dec 03 15:51:33 2012 -0800"
      },
      "message": "Quick compiler: improve ClobberSReg comments\n\nIssue 6501474\n\nImprove the comments describing the usage of ClobberSReg().  Also, desk-checked all current\nuses of ClobberSReg() to make sure they are appropriate.\n\nNo code changes - only comments.\n\nChange-Id: Ife8419a7e2c2e51b258df7709a7d903d1fd93a44\n"
    },
    {
      "commit": "609ba32ed9f1655383124f0c4b45c1b23e7aa2e2",
      "tree": "e762d087124c20477309196ea86098409d4d4b29",
      "parents": [
        "07ec8e17c978e3bda0202693e6432b56349a5867"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Dec 02 23:48:18 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Dec 02 23:48:18 2012 -0800"
      },
      "message": "Fix/add comments in x86 long codegen.\n\nChange-Id: I40826c9468402f621e3890b221b508c96541a4c3\n"
    },
    {
      "commit": "07ec8e17c978e3bda0202693e6432b56349a5867",
      "tree": "112bccd79024ebd831507c42672e01abc13b726e",
      "parents": [
        "cfaa455374aae0a08c8cb28b5bb306b17866d652"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Dec 01 01:26:51 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Dec 01 11:44:15 2012 -0800"
      },
      "message": "Intrinsic for java.lang.Thread.currentThread.\n\nChange-Id: I056323a74f8759257bf6b6bb032437e576665006\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": "3676aeb03d5f70933891bb3b21abb8e31a81e36c",
      "tree": "53733bf87688c4af08f19cea63a2d92a7e1e0143",
      "parents": [
        "760c943b1f7ed0838d5909f49d70584f776add20",
        "7da142fc1cefeeb24d997ae21b34381fdd2c0466"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Nov 30 15:53:12 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 30 15:53:12 2012 -0800"
      },
      "message": "Merge \"Quick compiler: tighten null/0/0.0 workaround\" into dalvik-dev"
    },
    {
      "commit": "7da142fc1cefeeb24d997ae21b34381fdd2c0466",
      "tree": "ac0d772535c1c34c7788e56fa0ae2dbc08d27668",
      "parents": [
        "7b9ad926a160034c102dc8c7fad8f5112d57b360"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 29 16:33:42 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Nov 30 15:51:11 2012 -0800"
      },
      "message": "Quick compiler: tighten null/0/0.0 workaround\n\nChange 255389 worked around an issue with the compiler and\ngarbage collector being out of sync regarding the type of a Dalvik\nregister loaded with a constant 0 value.\n\nThe workaround was to detect the case of a constant 0 loaded\ninto a promoted floating point register, and then also store a\nzero in the core/reference identity of that Dalvik vreg.\n\nThis CL tightens the workaround by ensuring that the additional\nstore is only performed in cases in which the promoted-to-float\nDalvik vreg is also used as a reference at some point in the\nmethod.\n\nAdditionally, it improves the code sequence somewhat by reusing\nthe register loaded with zero for the subsequent store.  Further,\nan unrelated enhancement is made to the floating point immediate\nloading code.  For Arm, a few floating point constant values are\nsupported via vmov immediate.  However, 0.0 is not a bit pattern\nthat can be directly generated.  Previously, we would load 0.0 from\nthe method\u0027s literal pool.  In this CL we instead materialize +2\nin a core register, and then emit an vsub reg,reg,reg to convert\nit to +0.0. This saves a few bytes of code space, and avoids a\nmemory reference.\n\nIn the future, we\u0027ll want to have more info about the target\nCPU\u0027s capabilities.  A vector exclusive or would likely be\nbetter here.\n\nChange-Id: Icacd85c86112c5355d35b536e2f7a41c0357682c\n"
    },
    {
      "commit": "760c943b1f7ed0838d5909f49d70584f776add20",
      "tree": "6055abbe3a6e45d52cf3370857d65942d640c190",
      "parents": [
        "076539644368f61e679a9e6afca0b025440ee5b7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Nov 29 16:46:27 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Nov 29 16:50:40 2012 -0800"
      },
      "message": "After ART_USE_FUTEXES was enabled, we need some different gAborting protection\n\nChange-Id: Ic5baa5678317e08d3082d36ebb0a484667f94e13\n"
    },
    {
      "commit": "076539644368f61e679a9e6afca0b025440ee5b7",
      "tree": "5ad9ff7169c909990c5ee73013cc28d24e5d1774",
      "parents": [
        "7b9ad926a160034c102dc8c7fad8f5112d57b360",
        "0dfbb7ead0b6da92911b4bc78114ff0f0f9b4129"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 29 12:01:14 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 29 12:01:15 2012 -0800"
      },
      "message": "Merge \"Fix some JDWP bugs related to locking and getting statics.\" into dalvik-dev"
    },
    {
      "commit": "0dfbb7ead0b6da92911b4bc78114ff0f0f9b4129",
      "tree": "24d27d299f19ec64478658c30d4f3f2da771abe3",
      "parents": [
        "bc43860b7e5326264ada842c35a840dd4cda8120"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 28 15:26:03 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Nov 29 11:55:05 2012 -0800"
      },
      "message": "Fix some JDWP bugs related to locking and getting statics.\n\nGave all JDWP locks an explicit level to prevent them from using the\ndefault. Also made sure the class of the field would be passed to\nGetObject instead of NULL for statics. There\u0027s still a number of test\nfailures in JDWP.\n\nChange-Id: I6134be2a99d4a0968f9719f620864a3c176b4a58\n"
    },
    {
      "commit": "7b9ad926a160034c102dc8c7fad8f5112d57b360",
      "tree": "820e9923aa381f3ba17090fee710bdf742ef83fc",
      "parents": [
        "d45f201e9bd43490e30a35710865789b8d70e249",
        "5f61f678d0b61cda8cac954fb176edbfdb1a831e"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 28 22:13:22 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 28 22:13:23 2012 -0800"
      },
      "message": "Merge \"Workaround for Issue 7250540\" into dalvik-dev"
    },
    {
      "commit": "5f61f678d0b61cda8cac954fb176edbfdb1a831e",
      "tree": "a508e465a79ee97e00f9a5ff2ab35cd8efb636a6",
      "parents": [
        "bc43860b7e5326264ada842c35a840dd4cda8120"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 28 17:22:17 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 28 17:38:24 2012 -0800"
      },
      "message": "Workaround for Issue 7250540\n\nThere\u0027s a problem (originating with Dalvik\u0027s failure to properly type constants) with\nDalvik vregs that are used in both reference and floating point situations.  In\nparticular, if a constant zero is used in a floating point context, the verifier in\nsome cases will treat it as a null pointer for the purposes generating the GC map.\n\nIf that vreg ends up promoted to a floating point value, the run-time value of that\nvreg will not be found during garbage collection.  As a quick workaround, this\nCL causes the compiler to detect this special case of an immediate zero being loaded\ninto a promoted floating point register and also store a zero in the core/ref identity\nof that vreg.\n\nNote, the CL also excludes references from store elimination.\n\nChange-Id: I72f0a96744823ff9c5a2bd961a5e39ac4bbc707b\n"
    },
    {
      "commit": "d45f201e9bd43490e30a35710865789b8d70e249",
      "tree": "cbd318570af04229cf44fa5ab62d8b240f300b39",
      "parents": [
        "bc43860b7e5326264ada842c35a840dd4cda8120"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 28 11:46:23 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 28 11:55:23 2012 -0800"
      },
      "message": "Simplify ConditionVariable and avoid potential race.\n\nMake waiters maintain mutex contenders rather than signal/broadcast\n(eliminates awoken count). Avoids race where a spurious Signal wake\ncould remove a Broadcast contender from the mutex.\n\nChange-Id: I5c3e36878c9fa2db09f5dc31d24a0a6222a61731\n"
    },
    {
      "commit": "bc43860b7e5326264ada842c35a840dd4cda8120",
      "tree": "e580a8ebf50ed6e296f79441ce1b539f17806042",
      "parents": [
        "2bfc67361026722e2f83abf06bd3fb364161a2ed",
        "a3a82b219531effb53aef13f48e50db9bf0f9fb5"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 28 05:21:37 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 28 05:21:39 2012 -0800"
      },
      "message": "Merge \"Quick compiler: minor cleanup\" into dalvik-dev"
    },
    {
      "commit": "ddde37cfd44ccd49816776236a279e742bc9819d",
      "tree": "9828bc9d0340b97fd911cf2f2608c1493f19d3c6",
      "parents": [
        "df1ce91ba97bc79a0637e5504b39318fb1c9f577",
        "80de7a684be3c320e9e1d3bf8c9d145fe7c2f7c3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 17:46:54 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 17:46:54 2012 -0800"
      },
      "message": "Merge \"Fix clear growth limit not working.\" into dalvik-dev"
    },
    {
      "commit": "80de7a684be3c320e9e1d3bf8c9d145fe7c2f7c3",
      "tree": "22d0ab827b1ac05af03feb5b14b13ac033e4e40d",
      "parents": [
        "af1b89281fd1f86efeb791b61f5a3f2031c70312"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 27 17:21:50 2012 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 27 17:24:10 2012 -0800"
      },
      "message": "Fix clear growth limit not working.\n\nFixed clear growth limit not working. I suspect this was causing\nthe amazon app out of memory error. Fixed the out of memory message\nmisattributing the reason for out of memory to being fragmentation.\nAdded more info to the out of memory exception message.\n\nChange-Id: I28ad42968af27468ca43368620232cf22b5f4f13\n"
    },
    {
      "commit": "df1ce91ba97bc79a0637e5504b39318fb1c9f577",
      "tree": "06fee7c60611e94264b3b6b2b318fec899c6e450",
      "parents": [
        "af1b89281fd1f86efeb791b61f5a3f2031c70312"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 17:07:11 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 17:19:09 2012 -0800"
      },
      "message": "Add alignment attribute to packed.\n\nMake packed objects 4 byte aligned or else GCC becomes paranoid and\nassumes only byte alignment on whole objects.\nChange CHECK in GetCalleeSaveMethod to DCHECK to encourage inlining.\n\nChange-Id: I79f1a13752492413c919b36f4e207e637647834f\n"
    },
    {
      "commit": "a3a82b219531effb53aef13f48e50db9bf0f9fb5",
      "tree": "841056cc525f4b8547f914ab39bc17e2cea47c39",
      "parents": [
        "9c85bc0b6577ee00e4e2d3ee9a7d0fd72d7a4966"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 27 16:09:55 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 27 16:12:37 2012 -0800"
      },
      "message": "Quick compiler: minor cleanup\n\nRemove dead software floating point support.\nMove a common function from target specific to target independent.\n\nChange-Id: Iaf793857f7e0faae02c672b9f1d45a0658143a51\n"
    },
    {
      "commit": "af1b89281fd1f86efeb791b61f5a3f2031c70312",
      "tree": "a4f00e84271f267404a082c954f7416d5bcd3e0e",
      "parents": [
        "9c85bc0b6577ee00e4e2d3ee9a7d0fd72d7a4966"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 27 15:19:57 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 27 15:37:00 2012 -0800"
      },
      "message": "Prevent hang due to HandleUnexpectedSignal reentry\n\nChange-Id: I0fe6a9b642e8d866aba893906c36bca6f1a4334e\n"
    },
    {
      "commit": "9c85bc0b6577ee00e4e2d3ee9a7d0fd72d7a4966",
      "tree": "8dd3499f8aa4e530f2e6c68a66de5c92e3c8d25d",
      "parents": [
        "6a07d3c16402280560835ebd99ec2df8936506c5",
        "e256fe100c2d196762f1f87e030f1d2291e0b744"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 13:21:33 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 13:21:33 2012 -0800"
      },
      "message": "Merge \"Avoid direct access to length_.\" into dalvik-dev"
    },
    {
      "commit": "6a07d3c16402280560835ebd99ec2df8936506c5",
      "tree": "acc4bd1e06db8c764835ccedff48248d69fb6905",
      "parents": [
        "725de295024c9e5adf5e316f498c39d48158e19d",
        "5bd97c483c1de1eb97afe76123b1b9ab53095edf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 13:20:47 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 13:20:47 2012 -0800"
      },
      "message": "Merge \"Fix and enable ART futexes.\" into dalvik-dev"
    },
    {
      "commit": "e256fe100c2d196762f1f87e030f1d2291e0b744",
      "tree": "0e1b8cfc84e290fca5deabd755018c01cd4e0af8",
      "parents": [
        "25c15cebebc6e816f27ffc520dd399944fa3f9fe"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 13:16:25 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 13:16:25 2012 -0800"
      },
      "message": "Avoid direct access to length_.\n\nShould use accessors for fields of any Java heap object. Interestingly\nin this case, as the objects are packed GCC for ARM implements the word\nload as 4 byte loads, so this code is more optimal.\n\nChange-Id: Iafd3d8ee9f41fb19b3a68b3e90ad51a8acd3d61b\n"
    },
    {
      "commit": "725de295024c9e5adf5e316f498c39d48158e19d",
      "tree": "68470f11403def33eef2af5b000ac8b6f5707649",
      "parents": [
        "ce945c48173a7cc39fe41f04889def830f8b28f4",
        "9e419ca03c674b913135b87bcf2291a12708260b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 13:06:28 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 27 13:06:29 2012 -0800"
      },
      "message": "Merge \"Disable another CHECK when gAborting\" into dalvik-dev"
    },
    {
      "commit": "9e419ca03c674b913135b87bcf2291a12708260b",
      "tree": "a6f941c14eb4d2f1eaf3a020ec3f3b5432e6ee21",
      "parents": [
        "a2424c27352351766512f39d3095f496dbb27ae7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 27 11:31:49 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Nov 27 11:31:49 2012 -0800"
      },
      "message": "Disable another CHECK when gAborting\n\nChange-Id: I9a53d200c93ddb2dd95820e03040761fb2d5a752\n"
    },
    {
      "commit": "5bd97c483c1de1eb97afe76123b1b9ab53095edf",
      "tree": "b89265e6f2b716ada55582cec76ccc506bb153c7",
      "parents": [
        "25c15cebebc6e816f27ffc520dd399944fa3f9fe"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 02:38:26 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 27 02:38:26 2012 -0800"
      },
      "message": "Fix and enable ART futexes.\n\nChange-Id: I5c49e370de0dcf438352f0c657e77d8ba53f4d27\n"
    },
    {
      "commit": "ce945c48173a7cc39fe41f04889def830f8b28f4",
      "tree": "042bd106d6b0112d47836972b263dbe7fe38b0eb",
      "parents": [
        "a2424c27352351766512f39d3095f496dbb27ae7"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 26 17:19:20 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 26 17:19:20 2012 -0800"
      },
      "message": "Fix LLVM build.\n\nChange-Id: I66611790ece2ab63b3b34d8442a686210ded488b\n"
    },
    {
      "commit": "a2424c27352351766512f39d3095f496dbb27ae7",
      "tree": "127a0ac451686030fec7ed6f3aff32dd881fce4c",
      "parents": [
        "25c15cebebc6e816f27ffc520dd399944fa3f9fe",
        "94d6df471a406a03bb1afba8ca3ae9c0fbf366b5"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 26 16:53:12 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 26 16:53:13 2012 -0800"
      },
      "message": "Merge \"Fixes to make all run-tests except 051-thread work.\" into dalvik-dev"
    },
    {
      "commit": "94d6df471a406a03bb1afba8ca3ae9c0fbf366b5",
      "tree": "f89af30dbe4a23dc6f62bb17c3b0a36b778ade33",
      "parents": [
        "5bc252873e6e50f8257e33ca158d0e350413fcbf"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 26 16:02:12 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 26 16:02:12 2012 -0800"
      },
      "message": "Fixes to make all run-tests except 051-thread work.\n\n- Moved exception delivery into common method DeliverException\n- Renamed old DeliverException to QuickDeliverException since it is only\n  used by quick\n- Fixed null checks for arrays returned by GetReference\n- Standardized ArrayStoreException error message\n- Added additional sleeps to ensure threads stay alive long enough in\n  051-thread, and that \u003cclinit\u003e is complete for 084-class-init\n\nChange-Id: I9ca306896a4bd10f453150fcf3965d9750fa0cbd\n"
    },
    {
      "commit": "25c15cebebc6e816f27ffc520dd399944fa3f9fe",
      "tree": "a7c85762ccd644061164bbba9450b428eaa24132",
      "parents": [
        "5bc252873e6e50f8257e33ca158d0e350413fcbf",
        "8c4bbb55d0d801e492d849ee636771c8b2840429"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Nov 26 14:07:01 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 26 14:07:02 2012 -0800"
      },
      "message": "Merge \"Eliminate build of target-specific compiler .so\" into dalvik-dev"
    },
    {
      "commit": "8c4bbb55d0d801e492d849ee636771c8b2840429",
      "tree": "03975d337cafc86da0c02f9ab45e14b7b3dba677",
      "parents": [
        "372a910ee64fb1b7118a00e4d01db12f284c42d0"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Nov 26 14:00:58 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Nov 26 14:00:58 2012 -0800"
      },
      "message": "Eliminate build of target-specific compiler .so\n\nNow that the Quick compiler backend supports all targets, stop\nbuilding target-specific versions.\n\nChange-Id: I5e519930dd3ed731c8e73005f654213af3ab5a3e\n"
    },
    {
      "commit": "5bc252873e6e50f8257e33ca158d0e350413fcbf",
      "tree": "8faf2bf01e2e71a61a5c34c45c61d634efa3df9b",
      "parents": [
        "372a910ee64fb1b7118a00e4d01db12f284c42d0",
        "0a9bb73c70298922ad33d67c209a4e440b216fa2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 26 12:45:39 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 26 12:45:40 2012 -0800"
      },
      "message": "Merge \"Fixed access checks on class resolution in interpreter.\" into dalvik-dev"
    },
    {
      "commit": "0a9bb73c70298922ad33d67c209a4e440b216fa2",
      "tree": "b9c0597fb54ac4329ef3f6ffeb09531b53efb73c",
      "parents": [
        "449a49bedfb72f0d5643977a99346935f1b33c55"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 26 12:28:49 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 26 12:28:49 2012 -0800"
      },
      "message": "Fixed access checks on class resolution in interpreter.\n\nAlso made interpreter throw AbstractMethodError when interpreting\nabstract methods.\n\nChange-Id: Id6396fd31e500613150407d0281383b556de9605\n"
    },
    {
      "commit": "372a910ee64fb1b7118a00e4d01db12f284c42d0",
      "tree": "ae6c6826ba0508e894c7d7de02e0f077df7ae78e",
      "parents": [
        "449a49bedfb72f0d5643977a99346935f1b33c55",
        "65db880c73718f89278dac8975d58d3a49ff1fdb"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 26 10:32:48 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 26 10:32:48 2012 -0800"
      },
      "message": "Merge \"Estimate allocation rate to predict when to request concurrent GC.\" into dalvik-dev"
    },
    {
      "commit": "65db880c73718f89278dac8975d58d3a49ff1fdb",
      "tree": "0d9a6826f83cecf6c348366b985a46bbce7c993b",
      "parents": [
        "90ad9639047a8acbd563247f8869f825cf80e576"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 20 12:36:46 2012 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 26 10:30:05 2012 -0800"
      },
      "message": "Estimate allocation rate to predict when to request concurrent GC.\n\nThe estimate is bytes allocated between GC divided by time between GC.\n\nChange-Id: I7c82196fdc19061c99651d6d82fd7fcdb3b3608b\n"
    },
    {
      "commit": "449a49bedfb72f0d5643977a99346935f1b33c55",
      "tree": "21e90c73b37cd6d29078238253772312d14c862f",
      "parents": [
        "02031b185b4653e6c72e21f7a51238b903f6d638"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Nov 25 19:25:44 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Nov 25 19:25:44 2012 -0800"
      },
      "message": "Portable compiler: fix build\n\nAdd a missing #include to pick up Quick backend refactoring changes.\n\nChange-Id: I301dcaa90a8322631ea91860e69b48ad2fa2be24\n"
    },
    {
      "commit": "02031b185b4653e6c72e21f7a51238b903f6d638",
      "tree": "0fae8dbc0a15d4ed379768bdc7adf1910b1d46af",
      "parents": [
        "90ad9639047a8acbd563247f8869f825cf80e576"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Nov 23 09:41:35 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sun Nov 25 13:22:45 2012 -0800"
      },
      "message": "Quick compiler: Single .so for all targets\n\nWith this CL, all targets can be built into a single .so (but\nwe\u0027re not yet doing so - the compiler driver needs to be reworked).\n\nA new Codgen class is introduced (see compiler/codegen/codegen.h),\nalong with target-specific sub-classes ArmCodegen, MipsCodegens and\nX86Codegen (see compiler/codegen/*/codegen_[Arm|Mips|X86].h).\n\nAdditional minor code, comment and format refactoring.  Some source\nfiles combined, temporary header files deleted and a few file\nrenames to better identify their function.\n\nNext up is combining the Quick and Portable .so files.\n\nNote: building all targets into libdvm-compiler.so increases its\nsize by 140K bytes.  I\u0027m inclined to not bother introducing conditional\ncompilation to limit code to the specific target - the added build and\ntesting complexity doesn\u0027t doesn\u0027t seem worth such a modest size savings.\n\nChange-Id: Id9c5b4502ad6b77cdb31f71d3126f51a4f2e9dfe\n"
    },
    {
      "commit": "90ad9639047a8acbd563247f8869f825cf80e576",
      "tree": "59824e7dccf886567a4b7783d4875d3c1f8cf3dd",
      "parents": [
        "28c9a83398a6e48eefb9b79a390920629bbb8519",
        "d752132c73072084a3def9257cca4fcee76047b6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 21 15:52:34 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 21 15:52:34 2012 -0800"
      },
      "message": "Merge \"Various fixes to the interpreter. First 23 run-test tests pass.\" into dalvik-dev"
    },
    {
      "commit": "28c9a83398a6e48eefb9b79a390920629bbb8519",
      "tree": "9d12fec60f41a3f185243d0195f9ed31a945005e",
      "parents": [
        "dd20a8d64a8cd120361b44078074bd242913da0a"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 21 15:39:13 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 21 15:39:13 2012 -0800"
      },
      "message": "Quick Compiler: pointer/boolean cleanup\n\nMore minor code cleanup - follow the Art convention of not treating\npointers as booleans in \"for\" loop tests.\n\nChange-Id: I2fcd06efe6a51d1195c0900f7fa110fc01110001\n"
    },
    {
      "commit": "d752132c73072084a3def9257cca4fcee76047b6",
      "tree": "92c7bc15db2328db7c14c31f77504a7e879e8467",
      "parents": [
        "278b0db1ee55106486a7aecf39a581aac09fb619"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 21 15:38:24 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 21 15:38:24 2012 -0800"
      },
      "message": "Various fixes to the interpreter. First 23 run-test tests pass.\n\n- Factored out code to throw stack overflow error into its own method.\n- Increased kStackOverflowReservedBytes to 10kB to support interpreter.\n- Reordered return type checks to prevent type resolution with an\n  exception pending.\n- Fixed field checks so they pass if the field is static or the object\n  is the declaring class.\n- Suppressed using the interpreter for proxy methods.\n\nChange-Id: Ide73ec928ab0aa7b31229c4e69679a35dd948e43\n"
    },
    {
      "commit": "fa57c47f1b72916371a9c2d5c1389219bce655b4",
      "tree": "3ca3bc1cb3c91545f6c3514af296213348c09a99",
      "parents": [
        "aad94383fc41e8f8770f0b2144f766a2ffa772e7"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 21 12:06:18 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 21 12:35:29 2012 -0800"
      },
      "message": "Quick Compiler: Shoot the Camel\n\nAnother step towards moving the Quick Compiler from the old\nDalvik coding style to Art\u0027s coding style.  In this CL, Camel-case\nlocals, struct variables and arguments are converted to lower-case\nwith underscore names.  Most of the name changes were formulistic,\nbut I also took this opportunity to change the old \"printMe\" into\nthe more traditional \"verbose\", and shorten cUnit to cu.\n\nNo logic changes.\n\nChange-Id: I64b69b28a8357d5cc0abc1dc975954c91abd9b45\n"
    },
    {
      "commit": "aad94383fc41e8f8770f0b2144f766a2ffa772e7",
      "tree": "a887ff6101126e3d3d3045d09ea502561524ce1a",
      "parents": [
        "0c1e45fc411b05e026abf6a2e343927bbd1aa4ca"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 21 07:40:50 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 21 07:40:50 2012 -0800"
      },
      "message": "Quick Compiler: static, extern and inline cleanup\n\nMore declarations cleanup.  Some dead code removal. No logic changes.\n\nChange-Id: Ife3d0426082f4eeae7c0010ceb92d7dbdc823c71\n"
    },
    {
      "commit": "0c1e45fc411b05e026abf6a2e343927bbd1aa4ca",
      "tree": "8368a3628dc44bab72a38ffa5458caf6fa80330c",
      "parents": [
        "a3b122e83c8cdaa9e00f7ebb3cd7b7e17b06e257",
        "52a77fc135f0e0df57ee24641c3f5ae415ff7bd6"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 21 05:31:41 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 21 05:31:41 2012 -0800"
      },
      "message": "Merge \"Quick Compiler function renaming\" into dalvik-dev"
    },
    {
      "commit": "52a77fc135f0e0df57ee24641c3f5ae415ff7bd6",
      "tree": "ddbe40349dce79bb89a6f2d68ddb4caf903b15e9",
      "parents": [
        "024c463536180ce1e464bbb9853ab427dfac35f5"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 20 19:50:46 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 20 21:38:31 2012 -0800"
      },
      "message": "Quick Compiler function renaming\n\nMove the Quick compiler\u0027s function naming to Art coding conventions. Will\nbe done is pieces: names first, then arguments and locals.  Also removed\nsome dead code and marked statics for the top level source files\n\nNo logic changes aside from eliminating a few useless exported \"oat\"\nroutines.\n\nChange-Id: Iadaddc560942a0fc1199ba5b1c261cd6ac5cfd9a\n"
    },
    {
      "commit": "a3b122e83c8cdaa9e00f7ebb3cd7b7e17b06e257",
      "tree": "b657fe3c3c2bd904291ccab43b87586f78fcec50",
      "parents": [
        "024c463536180ce1e464bbb9853ab427dfac35f5",
        "87a6edd81227a60b3651f9d8e11bdabb793a535f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 18:09:47 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 20 18:09:48 2012 -0800"
      },
      "message": "Merge \"Fixes to interpreter, now passes 003-omnibus-opcodes.\" into dalvik-dev"
    },
    {
      "commit": "87a6edd81227a60b3651f9d8e11bdabb793a535f",
      "tree": "38786dfdec8a5e23e79eed525468db095c8014ae",
      "parents": [
        "d91398cc7ed6ea8acf251bf1aa525df46d914044"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 20 18:05:18 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 20 18:05:18 2012 -0800"
      },
      "message": "Fixes to interpreter, now passes 003-omnibus-opcodes.\n\n- NPE checks on monitor-enter/exit\n- Check for unresolvable classes in check_cast/instance_of\n- Fix float/double to int/long\n\nChange-Id: I61d72411bc3ee360c5261016c87ca6cfe077cf21\n"
    },
    {
      "commit": "024c463536180ce1e464bbb9853ab427dfac35f5",
      "tree": "d312d9f414a0ddec354b357436b3bbe83ce81656",
      "parents": [
        "d91398cc7ed6ea8acf251bf1aa525df46d914044",
        "1bc37c60da71c923ea9a2e99d31ba1b3d76d79a8"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 20 17:51:08 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 20 17:51:09 2012 -0800"
      },
      "message": "Merge \"Continuing Quick compiler refactoring\" into dalvik-dev"
    },
    {
      "commit": "1bc37c60da71c923ea9a2e99d31ba1b3d76d79a8",
      "tree": "6af0698d02487d1561832841ca01dea6a4d5a963",
      "parents": [
        "78f1dc74c54c63bce57d434e756199205c3abf7f"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 20 13:35:41 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 20 17:50:36 2012 -0800"
      },
      "message": "Continuing Quick compiler refactoring\n\nWith this CL, we no longer include any .cc files - all source\nfiles compile stand-alone.   We still build a separate .so for\neach target, but all code in the target-independent \"codegen\"\ndirectory is now truly independent and doesn\u0027t rely on any\ntarget-specific macros to compile.\n\nHeader file inclusion is still a bit of a mess, but that will be\naddressed in a subsequent CL.\n\nNext up: create a codegen class to hold code generator routines\noverrideable by target.\n\nChange-Id: I3a93118d11afeab11f310950a6a73381a99e26e1\n"
    },
    {
      "commit": "d91398cc7ed6ea8acf251bf1aa525df46d914044",
      "tree": "a5f643b43509cb3f87506794dbc734523f87c8f2",
      "parents": [
        "689d9f0cee08a3baaa85a85fb365c7b99f503617"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 20 17:17:33 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 20 17:17:33 2012 -0800"
      },
      "message": "Fix interpreter int/long div/rem.\n\nIt didn\u0027t handle dividing by zero or dividing min int/long by -1.\n\nChange-Id: Id1d7ea5b05a95f655bd7017ba9e331b2a577e8fa\n"
    },
    {
      "commit": "689d9f0cee08a3baaa85a85fb365c7b99f503617",
      "tree": "2c684c3da51864c2855cdff642ad3393ae37c483",
      "parents": [
        "58bf0c6d756ff59d3b50d3e90bcdada92b2c933f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 16:30:29 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 16:30:29 2012 -0800"
      },
      "message": "Missing return for interpreter iput/get NPE.\n\nChange-Id: I50f9fa5f6fd38af59a8fb8e8ad266f753f677a0c\n"
    },
    {
      "commit": "58bf0c6d756ff59d3b50d3e90bcdada92b2c933f",
      "tree": "d64178bcf00a41290968665941599552f524de72",
      "parents": [
        "c0a61fc79e5070f2a16e7dbb7ecf451d13405b45"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 16:24:12 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 16:25:09 2012 -0800"
      },
      "message": "Fix interpreter cmp[gl]-double.\n\nChange-Id: I332ff181db100e2fa8b663f1de84f42baba7da2f\n"
    },
    {
      "commit": "c0a61fc79e5070f2a16e7dbb7ecf451d13405b45",
      "tree": "83ea16f96e728e09a0d6e1e52f62796683c2c620",
      "parents": [
        "f1d39fd9951d84c391de28009d2958c0f07d1e57",
        "373c52fd70336531010268a2de4f7d3b0f236924"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 16:23:32 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 20 16:23:32 2012 -0800"
      },
      "message": "Merge \"Added CheckSuspend and UpdateDebugger to interpreter loop.\" into dalvik-dev"
    },
    {
      "commit": "373c52fd70336531010268a2de4f7d3b0f236924",
      "tree": "782478126bd283faeaeef38e3d3be4e37bde5a2b",
      "parents": [
        "17ffcab3a9428ccdc5ae6b2b42c001fe3df1f1d6"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 20 16:11:52 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 20 16:17:38 2012 -0800"
      },
      "message": "Added CheckSuspend and UpdateDebugger to interpreter loop.\n\nMoved CheckSuspend so that the code doesn\u0027t need to be repeated in LLVM\nas well.\n\nChange-Id: I1073f82352593bf0d5f99b28d382e4687f3a0d90\n"
    },
    {
      "commit": "f1d39fd9951d84c391de28009d2958c0f07d1e57",
      "tree": "cb05e481025fbe9e044ddf1bb875163a9ae02364",
      "parents": [
        "17ffcab3a9428ccdc5ae6b2b42c001fe3df1f1d6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 16:10:25 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 16:10:25 2012 -0800"
      },
      "message": "Fix arg array builder from interpreter for wides.\n\nChange-Id: I702bdf8d54d04198bc1972d05738ae9581253a00\n"
    },
    {
      "commit": "17ffcab3a9428ccdc5ae6b2b42c001fe3df1f1d6",
      "tree": "386b6d7620d87f30f8d45f90a274e53b9a83a1b6",
      "parents": [
        "0dff3f4d41ce8308d1973f317463941abbf79b81"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 15:27:41 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 15:27:41 2012 -0800"
      },
      "message": "Fix interpreter const-class.\n\nChange-Id: Ic0c699a961fcad2fe5d067d697d0a7469f164201\n"
    },
    {
      "commit": "8e56c7e41cb37e2eaf553503968a01ff893b135b",
      "tree": "ae39180a8c56eee6836f1fa1da12548190cd4c59",
      "parents": [
        "e89a354ce08d76cfefd58a3cb3da5115327b2d63"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 20 13:25:50 2012 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 20 13:25:50 2012 -0800"
      },
      "message": "Fix incorrect lock for process references.\n\nProcess references occasionally calls ProcessMarkStack which requires\nexclusive access to the heap bitmap lock. Fixed an error where we had\na reader lock here instead of a writer lock.\n\nChange-Id: I4740f7e80fe2c73ff822a770f250c33698ae0dd1\n"
    },
    {
      "commit": "e89a354ce08d76cfefd58a3cb3da5115327b2d63",
      "tree": "b9c348757b90512cf089c0b0d32f2cf286b6207f",
      "parents": [
        "556d637764b71563030c479bc35364a75188d559",
        "2b82db45c09450022199376c3a5420eacf2aa81e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 12:36:17 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 20 12:36:18 2012 -0800"
      },
      "message": "Merge \"Refactor GC to have a class for each different type of GC.\" into dalvik-dev"
    },
    {
      "commit": "556d637764b71563030c479bc35364a75188d559",
      "tree": "d5e425d376309ee47a3cfc05a4ce3484551306e0",
      "parents": [
        "50ffee20ced9c0c7ac68889c86be8844cf120cf2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 12:19:36 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 12:20:37 2012 -0800"
      },
      "message": "Implement interpreter packed-switch.\n\nDon\u0027t enter interpreter for native methods. Fix ScopedObjectAccess use\nwhen in native state.\n\nChange-Id: I7575a4f2701215009226dde05022213d044fb56d\n"
    },
    {
      "commit": "2b82db45c09450022199376c3a5420eacf2aa81e",
      "tree": "b9561fc19d2826a2b08997fcaef84eadbbeb252c",
      "parents": [
        "2eb840353822092d542361c8d6c4938acfddee8e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 14 17:29:05 2012 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 20 11:58:23 2012 -0800"
      },
      "message": "Refactor GC to have a class for each different type of GC.\n\nAdded a seperate files for mark sweep, partial mark sweep,\nsticky mark sweep.\n\nAdded a common superclass for GC.\n\nAdded additional statistics for each GC.\n\nMoved main garbage collection code away from Heap.cc.\n\nChange-Id: Ida0021ab2f740fc8228bbbf4d43cd9bc56b4ba46\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": "b212a9974ccd3ce3fafb24ddab3b96762cecb14c",
      "tree": "ec4e813f3d92699fb66c1565e80803d3b5afb0dc",
      "parents": [
        "78f1dc74c54c63bce57d434e756199205c3abf7f",
        "40e3bacfd57bca2ca39c1caec64680bd0ed4a16d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 09:11:37 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 20 09:11:38 2012 -0800"
      },
      "message": "Merge \"Make stack visitor location for bad roots more verbose.\" into dalvik-dev"
    },
    {
      "commit": "40e3bacfd57bca2ca39c1caec64680bd0ed4a16d",
      "tree": "808eb0b5138cc1690149dc26f6937e0b14924a6c",
      "parents": [
        "11d4ab2dd052b74923d4a3c6afc3ef4b15f064dc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 00:09:14 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Nov 20 00:09:14 2012 -0800"
      },
      "message": "Make stack visitor location for bad roots more verbose.\n\nChange-Id: Ib2f3f48ccf1f5b2f3a4d1a61df553ad1a5c29d38\n"
    },
    {
      "commit": "78f1dc74c54c63bce57d434e756199205c3abf7f",
      "tree": "e9c467473ba72838a592377d7f56aa3c378feb3b",
      "parents": [
        "11d4ab2dd052b74923d4a3c6afc3ef4b15f064dc",
        "cbd6d44c0a94f3d26671b5325aa21bbf1335ffe8"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Nov 19 17:21:31 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 19 17:21:31 2012 -0800"
      },
      "message": "Merge \"C++\u0027ification of Quick compiler\u0027s casts\" into dalvik-dev"
    },
    {
      "commit": "cbd6d44c0a94f3d26671b5325aa21bbf1335ffe8",
      "tree": "438c25a083cd1487b40ca8a05cef8d96339b83a9",
      "parents": [
        "6aa852b927a12ba16f5c05ee7d044ac1372feb7f"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Sat Nov 17 14:11:25 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Nov 19 15:50:13 2012 -0800"
      },
      "message": "C++\u0027ification of Quick compiler\u0027s casts\n\n o Eliminate old useless LIR casts.\n o Replace remaining C-style casts with new C++ versions.\n o Unified instruction encoding enum\n o Expand usage of the auto-generated ostream helpers for enum LOG messages.\n o Replaced all usages of intptr_t with uintptr_t.\n o Fixed bug in removeRedundantBranches, and moved to common code\n\nChange-Id: I53211c0de1be913f958c8fde915296ac08345b7e\n"
    },
    {
      "commit": "b5bd814f9dafe99909818fc4b2ad84639bc1601a",
      "tree": "4a227728cb0d63638b18af07d7bf5a4ec8bcb19b",
      "parents": [
        "6aa852b927a12ba16f5c05ee7d044ac1372feb7f"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 19 15:19:05 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Nov 19 15:23:04 2012 -0800"
      },
      "message": "Fixed bug in checking wide constants causing cts failures.\n\nThe logic should allow Precise/Imprecise pairs, not Precise/Not-Precise.\n\nChange-Id: I0d919828194a24253c13dbd58e37778fed954f39\n"
    },
    {
      "commit": "6aa852b927a12ba16f5c05ee7d044ac1372feb7f",
      "tree": "e88e202952fcf09fad44a58eb366b6a59dcd0424",
      "parents": [
        "2bcb4a496b7aa00d996df3a070524f7568fb35a1",
        "eaf09bc65f9a10d12befcdb239156938c9bceef2"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Nov 16 16:50:17 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 16 16:50:18 2012 -0800"
      },
      "message": "Merge \"Quick compiler: more refactoring\" into dalvik-dev"
    },
    {
      "commit": "eaf09bc65f9a10d12befcdb239156938c9bceef2",
      "tree": "e3b85c241b24aa058a413363e4f9c94f4c76d4d6",
      "parents": [
        "efc6369224b036a1fb77849f7ae65b3492c832c0"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 15 14:51:41 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Nov 16 16:48:09 2012 -0800"
      },
      "message": "Quick compiler: more refactoring\n\nFocus on header file cleanup here.  Note: target_list.h\nis transitional, and upcoming CLs will do additional header\nfile reorganization.\n\nChange-Id: If86e1a8c1c43305762fe37b157a9d3c17d911ea7\n"
    },
    {
      "commit": "2bcb4a496b7aa00d996df3a070524f7568fb35a1",
      "tree": "8422ab8d65b7422008094b2eaadec0dad87b2df3",
      "parents": [
        "efc6369224b036a1fb77849f7ae65b3492c832c0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 08 10:39:18 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 16 14:01:34 2012 -0800"
      },
      "message": "Add \"kind\" argument to Get/SetVReg.\n\nIn order to determine where a register is promoted its necessary to know\nthe kind of use of the register.\nExtend notion of precise-ness to numeric verifier register types.\nDump verifier output in oatdump.\nDump vregs with their location or constant value.\nIntroduce indenting ostream utility.\n\nChange-Id: Ia3d29497877976bc24465484743bca08236e1768\n"
    },
    {
      "commit": "efc6369224b036a1fb77849f7ae65b3492c832c0",
      "tree": "e61d88a5b3b787d782b2fa02b90947ba9a115458",
      "parents": [
        "a3c6849b160cd5d2b2ca6e6fa9d9df834def85ee"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 14 16:31:52 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 15 09:47:38 2012 -0800"
      },
      "message": "Quick compiler source reorganizatio - part 1\n\nA step towards cleanup of the quick compiler source.  In this\nCL we rename all files to Art standards, combine some of the\nold target-specific files that may have made sense in the\nJIT, but no longer do.  Also removed some codegen/\u003ctarget\u003e/\nsubdirectories, combined and deleted some existing files.\n\nStill quite a bit of work to do in cleaning up header files,\ngetting some better consistency in what codegen functions\ngo where.  That will happen in later CLs.\n\nNo logic changes in this CL - just renaming and moving stuff around\n\nChange-Id: Ic172cd3b76d4c670f8e4d5fdd4a3e967db3f4c1e\n"
    },
    {
      "commit": "a3c6849b160cd5d2b2ca6e6fa9d9df834def85ee",
      "tree": "47de1bd04d76a9c427419a22a28da053a0be50f2",
      "parents": [
        "8e950c117975d23f50ed7e32ca5db01a813c25d0",
        "4da7f2f9fdcd8e2b440155bbbe506b14d47ce7a6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 14 17:16:23 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 14 17:16:24 2012 -0800"
      },
      "message": "Merge \"Fix missing card mark verification.\" into dalvik-dev"
    },
    {
      "commit": "8e950c117975d23f50ed7e32ca5db01a813c25d0",
      "tree": "2d4363de95db34aae624ff90929d4ec215ac63cd",
      "parents": [
        "8bb8e8653b4c3ad5d87863f98ffec5f95a96c1fa"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Fri Nov 02 09:58:19 2012 -0700"
      },
      "committer": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Wed Nov 14 15:45:03 2012 -0800"
      },
      "message": "Simple debugging support for portable path.\n\nChange-Id: Ibdc33b8d7f644c091fdb3ba3ce2ba45804bc4078\n"
    },
    {
      "commit": "8bb8e8653b4c3ad5d87863f98ffec5f95a96c1fa",
      "tree": "fa64f9ad72867a7928ade0708533d8fe51f99db4",
      "parents": [
        "725a957985171d712d5c048cc3d00ff14968784b",
        "f0504cdc5b6400edd4b39eea64ac280465042d5b"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 14 13:32:55 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 14 13:32:55 2012 -0800"
      },
      "message": "Merge \"Quick backend: rename target-specific #defines\" into dalvik-dev"
    },
    {
      "commit": "f0504cdc5b6400edd4b39eea64ac280465042d5b",
      "tree": "09aea792db81ef23e4b5264acc76b677382e3e84",
      "parents": [
        "ec13743da80a80c1817cf6660c28917fc28846bc"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 13 16:31:10 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 14 12:23:53 2012 -0800"
      },
      "message": "Quick backend: rename target-specific #defines\n\nAnother step towards a single compiler.  The #include build mechanism\nrelies on macros with the same name to take on different values for\nour various targets.  This CL prepends a target-specific string\n(and exposes some needed by common code as functions rather than #defines).\n\nMacros and #defines still available for use from target-dependent code,\nbut functions added for target independent use.  For example,\nrRET0 for Arm becomes rARM_RET0 in target-dependent code, and\ntargetRegister(kRet0) in target-independent code.\n\nNo logic changes, other than adding functions to return previously #defined\nvalues.  As of this CL, the primary target includes, xxxLIR.h, have no\nmacro collisions.\n\nChange-Id: I5e11df844815b7d129b525a209dd7c46bd9a4a09\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": "4da7f2f9fdcd8e2b440155bbbe506b14d47ce7a6",
      "tree": "7256d42b436b5fadb9653720dcd1ba13e80dc925",
      "parents": [
        "35883cc623fdf475a4ead1dafcba9e9becc1ed11"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 13 12:51:01 2012 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 14 10:52:45 2012 -0800"
      },
      "message": "Fix missing card mark verification.\n\nFixed card mark verification code to handle aged cards.\n\nRefactored some duplicated code in Heap.cc.\n\nFixed a broken check in card table scan.\n\nChange-Id: I59f2072684fc20873ababcbc5e59640059e25ff7\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": "ec13743da80a80c1817cf6660c28917fc28846bc",
      "tree": "f551225a325636dc56e0a3c01c55a59316e9e829",
      "parents": [
        "f42b6f912dd390808bbd5c025d773ebb02a06ed7"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 13 12:13:16 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Tue Nov 13 13:13:40 2012 -0800"
      },
      "message": "Revert \"Revert \"Refactor codegen resource masks\"\"\n\nThis reverts commit 4b39c9f1b77ff32cf5760e6bf77c189678e2c9a6.\n\nThe problem with the original commit was failure to widen a\ncouple of local variables to hold the newly widenened to 64-bits\nEncodingMap flag field - thus we lost some high-order resource\nattributes and broke instruction scheduling for x86.\n\nChange-Id: I04d7caf79e2cc802c39369ca04666629218ccaea\n"
    },
    {
      "commit": "f42b6f912dd390808bbd5c025d773ebb02a06ed7",
      "tree": "171b0f8a4aff38ba8abd67d1532f6eaf7a00f7fb",
      "parents": [
        "ac86a7cad60c20a131011338057887bb64cbfd38",
        "664bebf92eb2151b9b570ccd42ac4b6056c3ea9c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Nov 12 17:41:44 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 12 17:41:44 2012 -0800"
      },
      "message": "Merge \"Fix occasional deadlock caused by checkpoint root marking.\" into dalvik-dev"
    },
    {
      "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": "ac86a7cad60c20a131011338057887bb64cbfd38",
      "tree": "df59604012fdaa353880cb12b333f9e9ceb0808d",
      "parents": [
        "d22d54849c96760aa1efa259d6dcfbace54da2af"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 12 15:03:16 2012 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 12 16:11:07 2012 -0800"
      },
      "message": "Remove bitmap lock from checkpoint root marking.\n\nShould reduce how long each mutator is paused during the checkpoint\nroot marking since there is no more contention on the heap bitmap\nlock.\n\nChange-Id: I6048d785952e1da807d74eeea1d9958090a22b73\n"
    },
    {
      "commit": "d22d54849c96760aa1efa259d6dcfbace54da2af",
      "tree": "ad8615e7fa305ca768aee9ac43963ab10bcdda49",
      "parents": [
        "d21df09a54b08fbf90f9eb64801f0b03a100b8ec"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 06 17:14:12 2012 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 12 12:06:01 2012 -0800"
      },
      "message": "Remove first GC pause.\n\nFixed error where we were prefetching the address of address of\nobjects.\n\nRemove first paused by removing get dirty cards and replacing it\nwith card aging. We now age the cards before doing the checkpoint\ninstead of clearing them. This lets us know which cards were\ndirtied before the start of the GC and which cards were dirtied\nafter.\n\nOptimized FreeList slightly.\n\nChange-Id: I39d6aac1839476d7541d83970c8b27b266e8a117\n"
    },
    {
      "commit": "d21df09a54b08fbf90f9eb64801f0b03a100b8ec",
      "tree": "7bad64cf4afe2825a95e09442ab2f029105fbcc7",
      "parents": [
        "9572fa7e2742e5b3c706699a4a9f262cf93fb6e7",
        "4b39c9f1b77ff32cf5760e6bf77c189678e2c9a6"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 08 13:37:13 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 08 13:37:13 2012 -0800"
      },
      "message": "Merge \"Revert \"Refactor codegen resource masks\"\" into dalvik-dev"
    },
    {
      "commit": "4b39c9f1b77ff32cf5760e6bf77c189678e2c9a6",
      "tree": "95cf9de07529d58d847898087f8c5fd6c1e1a4fd",
      "parents": [
        "07131ca93c301e5cbd6a8702d6af777e1662fe65"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 08 13:32:05 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 08 13:32:05 2012 -0800"
      },
      "message": "Revert \"Refactor codegen resource masks\"\n\nThis reverts commit 07131ca93c301e5cbd6a8702d6af777e1662fe65\n\nThere\u0027s a problem with the x86 build - reverting until I track it down.\n\nChange-Id: I938ed30617ee943c9dba2d52d034e6d198b32e4b\n"
    },
    {
      "commit": "9572fa7e2742e5b3c706699a4a9f262cf93fb6e7",
      "tree": "12851cc01bec8f78440b91bb4ad2bdf86164b505",
      "parents": [
        "ad834979937aa31b2e1ca070623cc5ac3db173a3",
        "a4a970ab4eb5188d5aa2a078dfe4fe336ccbfc4e"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 08 09:31:50 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 08 09:31:50 2012 -0800"
      },
      "message": "Merge \"Fix overlap bug\" into dalvik-dev"
    },
    {
      "commit": "ad834979937aa31b2e1ca070623cc5ac3db173a3",
      "tree": "57feb62f1aa18eb4ac2a87b10592f87f96e75b34",
      "parents": [
        "07131ca93c301e5cbd6a8702d6af777e1662fe65",
        "2f66382fdb5e98537f724eba43ef1c7162c71b0e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Nov 08 09:15:50 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 08 09:15:51 2012 -0800"
      },
      "message": "Merge \"Restrict Compiler ThreadPool lifetime to compile-time\" into dalvik-dev"
    },
    {
      "commit": "a4a970ab4eb5188d5aa2a078dfe4fe336ccbfc4e",
      "tree": "884d703782a6a32677518a1814ccc633b4b51ef3",
      "parents": [
        "07131ca93c301e5cbd6a8702d6af777e1662fe65"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 08 07:54:03 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 08 07:54:03 2012 -0800"
      },
      "message": "Fix overlap bug\n\nThere is currently no rule against a dex code pattern that\noverlaps the result of a long operation with the source operands.\nFor example:\n\n   ADD_LONG v1, v9, v0\n\nis:  (v1,v2) \u003d (v9, v10) + (v0, v1)\n\nHowever, dx appears to never generate such a pattern.  This masked\na JIT (and later Art) bug in the handling of long arithmetic code\ngeneration.  The above code expands into a pair of 32-bit add\noperations and naively kills the high-order word of the 2nd\noperation while computing the low-order word of the result.\n\nThe fix is simple - detect this case and use an intermediate\nresult temporary.\n\nChange-Id: I127f5a51925d5b4249a7a9710cce587dfe0939ad\n"
    },
    {
      "commit": "07131ca93c301e5cbd6a8702d6af777e1662fe65",
      "tree": "ae60544b0065f8fc935bc254cc5893c3a3f89350",
      "parents": [
        "ebf6aa8185d59eeaa428b51a7e32ccc2b9ab1daf"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Nov 07 16:13:14 2012 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Nov 08 05:44:02 2012 -0800"
      },
      "message": "Refactor codegen resource masks\n\nAnother step towards a single compiler: unified the bulk of the\ntarget-specific instruction resource use/def maps.  This will\nallow more shared code usage, and eliminates target-specific\ndefines used by otherwise common code.\n\nChange-Id: I4132cb4d31647517a654ffdf6c87843b84af132b\n"
    },
    {
      "commit": "2f66382fdb5e98537f724eba43ef1c7162c71b0e",
      "tree": "ff277695e4aad975427f4441c3a45f90c448f7aa",
      "parents": [
        "a0a641c5c47ef37a5d9467582c3dbc4cd3d29529"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Nov 07 22:49:06 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Nov 07 22:51:33 2012 -0800"
      },
      "message": "Restrict Compiler ThreadPool lifetime to compile-time\n\nThe Compiler object continues to exist after compilation is done so we\ncan get the state after compilation, but we don\u0027t need to keep the\nthreads alive. Now they have the same lifetime as the TimingLogger\nwhich seems appropriate.\n\nChange-Id: Idcf871c699563cd239f16418fb83a8d9bffe8c52\n"
    },
    {
      "commit": "ebf6aa8185d59eeaa428b51a7e32ccc2b9ab1daf",
      "tree": "95cf9de07529d58d847898087f8c5fd6c1e1a4fd",
      "parents": [
        "a0a641c5c47ef37a5d9467582c3dbc4cd3d29529"
      ],
      "author": {
        "name": "mikaelpeltier",
        "email": "mikaelpeltier@google.com",
        "time": "Wed Nov 07 14:02:15 2012 +0100"
      },
      "committer": {
        "name": "mikaelpeltier",
        "email": "mikaelpeltier@google.com",
        "time": "Wed Nov 07 14:02:15 2012 +0100"
      },
      "message": "Fix bug in static field initialization.\n\n- Field::Set routines take the declaring class even for static field accesses.\n\nChange-Id: I842f47243b576b3d0793d5a47f329c8f9cab0d05\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": "994d62a359188354de6ad01699b2ae6698db16f9",
      "tree": "0c8d5a98dc906343974da120d992803986a0d577",
      "parents": [
        "81b8871007101f42e2baabf213e1312004073eb0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Nov 05 20:43:45 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Nov 05 20:44:30 2012 -0800"
      },
      "message": "Add --no-watch-dog for use when debugging dex2oat\n\nChange-Id: I1cfbcc638aef2eb28431d9fc63c2f34b15cee67d\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": "bcc2926b9721f94c17ed98fae5264cc98f0e066f",
      "tree": "ebc059463499b973804d52e0bba593a12cd0326e",
      "parents": [
        "af6eaca5034a602f459a6eca9fb185f3abe8a882"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Nov 02 11:36:03 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Nov 02 17:00:27 2012 -0700"
      },
      "message": "Add dex2oat watch dog thread for host builds\n\nChange-Id: I90b4b6b3a1aebb82955b4aa84d3f2d599af1d13b\n"
    },
    {
      "commit": "af6eaca5034a602f459a6eca9fb185f3abe8a882",
      "tree": "43674148ddb6f75ab052d63438db521f5187d4ba",
      "parents": [
        "5f7fa551162b9e755fdaf054ffc89411a0e135e3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 02 14:25:43 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 02 14:25:43 2012 -0700"
      },
      "message": "Remove files not part of quick, portable or iceland builds.\n\nThese files aren\u0027t built and are bit rotting. Removing to relieve\nmaintenance burden.\n\nChange-Id: I6f86d22538370a7e7d31e6f4d6a6e62243c9fece\n"
    },
    {
      "commit": "5f7fa551162b9e755fdaf054ffc89411a0e135e3",
      "tree": "636107724db94b5015b46a4a179a518c089039cf",
      "parents": [
        "64b6d145fa53b8dfb07a8fc2426af13f155d5a4d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 02 11:45:53 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 02 12:17:51 2012 -0700"
      },
      "message": "Force boot image strings into dex cache.\n\nFor const-string in the boot image, force the string into the dex-cache\nso that slow paths aren\u0027t necessary.\nIncreases boot.art from 7M to 9.8M but reduces boot.oat by ~3M. Code\ngenerated assuming no slow paths will be faster.\n\nChange-Id: I6c7be390adf7c09b5e6872d05f7d69ab6384c618\n"
    },
    {
      "commit": "64b6d145fa53b8dfb07a8fc2426af13f155d5a4d",
      "tree": "727647da235e21508d6661c7e2a780ff8ee2003e",
      "parents": [
        "0f79d728370ab51b9b16a356b058c48330f43148"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 29 16:34:15 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 01 17:26:15 2012 -0700"
      },
      "message": "Interpret class initializers when building image.\n\nWe initialize all image classes with the interpreter if they have a\nclass/static initializer.\nBlack list classes whose initializers need access to on device native\ncode. If such classes are added to the image classes they will fail when\nthey attempt to enter JNI code. A number of \"intrinsic\" style JNI\nroutines are special cased to allow more than just trivial class\ninitializers to run.\nAdd a lock for initialization in the compiler to serialize the execution\nof class initializers and avoid deadlock.\nRemove InSourceSpace from image writer (cruft) and teach the image writer\nto fix up referent fields in references.\nFix bugs in the interprerter and implement filled-new-array.\nFactor some VM code to more easily share between the interpreter and\nJNI entry points.\n\nChange-Id: I6bb811dea84f1b82260b1a4e73ac7412179c0b41\n"
    }
  ],
  "next": "0f79d728370ab51b9b16a356b058c48330f43148"
}
