)]}'
{
  "log": [
    {
      "commit": "b8404a7de94c109e3c17b4205b5f8aaae996eb33",
      "tree": "889f8a63bc3aa43bdf08bbaffcb8eb5cef8c0592",
      "parents": [
        "5833853b58f4e789f903688ef870489aacf0da2e"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Mon Oct 15 10:32:44 2012 -0700"
      },
      "committer": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Tue Oct 16 23:05:32 2012 -0700"
      },
      "message": "Workaround for portable path.\n\nAfter this commit, the portable path phone can boot.\nRun-test: 044-proxy still fails.\n\nChange-Id: I72368c799a47dd9b66a6672eae55bdaa8a5ac18c\n"
    },
    {
      "commit": "ed6d5ed3494648780b9e91422c90d6bc22c16b79",
      "tree": "39c1d32ab0ab9316e475e7dd3e07f7d4c8758510",
      "parents": [
        "215a926eae1630b0814069828332697f64ce063c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 12 14:51:46 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 12 14:51:46 2012 -0700"
      },
      "message": "Fix memory leak in compiler\n\nFixes jni internal test which is failing TOT on Nakasi.\n\nChange-Id: Ie1d8256bb8719554737c6602cd14c6527c020869\n"
    },
    {
      "commit": "4df2bbdfe6602ce5f141b7b44028b95faa0bd8ef",
      "tree": "9c23dad1023ccd1bf710825e6115892291232dae",
      "parents": [
        "1aae273f8827bcbfff6b00c5babd77a111852272"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Oct 11 14:46:06 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Oct 11 15:33:23 2012 -0700"
      },
      "message": "Enable multi-threaded Quick compilation\n\nReuse thread-local copies of llvm context data for Quick compiler\n(while continuing to regenerate fresh ones per method for Portable).\nThis is a transitional CL - the upcoming compiler driver change\nis expected to pass pass a thread context structure to each compiler\nworker thread rather than use the pthread_key mechanism.\n\nChange-Id: I277920a5c2705748c3a9f37ceace53c903747ec2\n"
    },
    {
      "commit": "c468e92d1e18305a5053c8a4a7c88cb297e525af",
      "tree": "537262677292cb258370b2d643d72785ea910e6c",
      "parents": [
        "ae4b0a1974183a7fb150f33d7596fbc623f0e26b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 10 18:11:33 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 10 18:11:33 2012 -0700"
      },
      "message": "Fix compiler logging for interface invocations.\n\nChange-Id: I67800c6d4e7987097d41dcf8ffd4dd5358b55087\n"
    },
    {
      "commit": "137e88f798857321f4007631fdf052d2830ec2c4",
      "tree": "7ed6a166328adbc5109fbb5b07a1cdc4e3bbb739",
      "parents": [
        "7469ebf3888b8037421cb6834f37f946646265ec"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 08 17:46:47 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Oct 09 14:16:35 2012 -0700"
      },
      "message": "Fast path interface dispatch.\n\nInterface dispatch when the method we\u0027re dispatching against is known\ncurrently goes slow path. This change makes the load of the interface\nmethod either a load of a constant or from the resolve methods table. It\nalso makes the null check on the \"this\" pointer inline.\n\nChange-Id: I69571a062d3d693bee2dec6e46a456e0f74411cd\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": "4445a7e3398a6143939168097a3aa275b734504d",
      "tree": "9eda34219b4a840125694a86ddba49077e15b944",
      "parents": [
        "50b35e2fd1a68cd1240e4a9d9f363e11764957d1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 05 17:19:13 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Oct 06 09:48:02 2012 -0700"
      },
      "message": "Class clean-up.\n\nMove Class code out of native and into Java.\nRemove ClassLinker::FindDexFile.\n\nChange-Id: Idd9c4563d2c32e76690675242ff491276ace9848\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": "de1ef40bd5f344dbb0bdb68f555f45868f502ae6",
      "tree": "5c8ed537c4adf1986b6ec4cca99ec7939146092f",
      "parents": [
        "3d1548debdaf8a1915fa432a4d267f7c0145654d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 25 00:18:19 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Sep 25 00:18:19 2012 -0700"
      },
      "message": "Fix race where class state can go between verified/initializing.\n\nChange-Id: I99b425a3a8df937b8c349c22e32e84ad3b02231f\n"
    },
    {
      "commit": "3d1548debdaf8a1915fa432a4d267f7c0145654d",
      "tree": "431569a031e654e24c6cccd79671adbc70cf6d87",
      "parents": [
        "e0f0cb3d855cb5e926452b5e1ec8457adc4e454e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 24 14:08:03 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 24 14:42:57 2012 -0700"
      },
      "message": "Make compiler initialization of classes parallel.\n\nFix hang where super class initialization could fail to notify threads\ntrying to initialize sub-class.\nUnify logging to log file being compiled in all occurances.\nRemove empty PostCompile method.\nRemove experimental ForAllDexFile \u0026 Class code.\n\nChange-Id: I471e9414f94d468d53b401e086f0fb65e36cc27c\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": "0c7abda482f53db3d153c073d1c7a145f84e0626",
      "tree": "837b89c75f0047cbcd16c9121739069a36b4f22a",
      "parents": [
        "ba0b9c55adce3f533845ab1b25c552589e5b4118"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Sep 19 13:33:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 20 15:26:35 2012 -0700"
      },
      "message": "NativePcOffsetToReferenceMap\n\nRather than translate a native PC to a Dex PC and then to the reference\nbitmap, just go straight from the native PC to the reference bitmap.\nEncode the native PC offsets using a hash rather than linearly\nsearching.\n\nChange-Id: Iee1073d93c941c0a31f639e5f23cea9e9f747bee\n"
    },
    {
      "commit": "9ffb039a548996bdc136ae0b2eb42b709d64f1cc",
      "tree": "5de92142b169253a4602a188ee37d97cd0c07081",
      "parents": [
        "18c24b6e05e7591069f1a2ac9c614b28fc0853ac"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 10 11:56:50 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Sep 10 13:47:05 2012 -0700"
      },
      "message": "Don\u0027t retry verification at compile time.\n\nWe don\u0027t re-verify verified or erroneous classes at compile time. We\nalso need to not re-verify compile time verified classes or else the\nclass status can become misleading.\n\nThis should fix races seen in dalvik-dev builds since parallel\nverification was re-enabled.\n\nSome other code and logic clean up.\n\nChange-Id: Iff8987292064b825742c52e408d38c31eb25c526\n"
    },
    {
      "commit": "c8982582778cc1571b65519e1112441be59a5f83",
      "tree": "4010b35ae0ea4f21c73fd58b7162318f8868afa2",
      "parents": [
        "b724071b67f6449589994a93d4195dda49321a47"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 07 16:53:25 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Sep 07 17:26:33 2012 -0700"
      },
      "message": "Re-enable parallel verification.\n\nCheck that when verifying and initializing a class the lock on the class\nis held.\nAdd logging for slow verification of a method.\n\nChange-Id: Id51f8a108b8d1801d61ee276fab5001ddc5c0044\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": "692be80cb2278ae585a776a163bc4b3ef60cae88",
      "tree": "7ddadb6753024b2b6b864a192e56c4a4047354ee",
      "parents": [
        "9a4f003f9a6da8e4c6ee279bd2a13aac37648183"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Aug 29 15:52:59 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Fri Aug 31 14:46:26 2012 -0700"
      },
      "message": "Quick compiler: reuse llvm context \u0026 ir builder\n\nWith this CL, we avoid setting up an llvm context, module and intrinsic\ndefinitions for each method, and considerably speed up compilation time.\nThis does not represent a final form - we\u0027ll be reworking the compiler driver\nto support Quick \u0026 Portable via the command line, and this code will likely\nchange at that time.\n\nChange-Id: I19e298a011141c3bc35c4f28175b2b20653fd5e4\n"
    },
    {
      "commit": "c0228b8f02c05ed58bea58490e0d8bdcaf8c5bb8",
      "tree": "afbfe1592284d1978ae619e0f9b5aae642b48197",
      "parents": [
        "08f753d5859936f8d3524e9e4faa6cee353873ea"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 29 18:15:05 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 29 18:29:36 2012 -0700"
      },
      "message": "Fixes to verifier and slowpaths for cts invoke tests.\n\nInstructions are never rewritten, so that has been removed from the\nverifier. Also, the slowpath now checks for access errors when it\ncan\u0027t properly resolve a method.\n\nChange-Id: Ie38eacec8eb092ba23502471a0b27ca8ce38fe68\n"
    },
    {
      "commit": "08f753d5859936f8d3524e9e4faa6cee353873ea",
      "tree": "5679a9ad8be6827e2a10de282cd28e3d000917de",
      "parents": [
        "b0b2be7688109cff548d2ddc8f02eecbad49ecd2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 24 14:35:25 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 28 11:34:56 2012 -0700"
      },
      "message": "Avoid compile time rewriting of dex code by verifier.\n\nCompile time rewriting of dex code leads to dead code that is causing\nissues with the LLVM compiler. Make instantiation and incompatible class\nchange errors be detected in slow path field and invoke logic so its\nsafe for the compile time verification just to softly fail the effected\nclasses.\n\nThis change places incompatible class change logic into the class\nlinkers ResolveMethod and consequently changes a number of APIs.\n\nChange-Id: Ifb25f09accea348d15180f6ff041e38dfe0d536e\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": "ca7a5e484ac02927247cc77ad40f291bf6613ed5",
      "tree": "5dd6f55984fe8eb0dd2cf80bd3b2aff5f514afa2",
      "parents": [
        "b18e77abdb06a443744fbb6589e0932fa89f6073"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Aug 20 11:12:18 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Aug 23 15:22:25 2012 -0700"
      },
      "message": "Quick compiler: restore optimizations\n\nThis CL re-enables optizations on the Quick compile path.\nNotes:\n\n  o Although all optimization are enabled, several are now useless\n    because of llvm and bitcode constraints:\n      - Large method de-optimization (i.e. - skipping expensive dataflow\n        analysis) can\u0027t be done because we have to do the analysis to\n        produce a CFG that makes the bitcode verifier happy.\n      - Small method pattern matching isn\u0027t applicable w/ bitcode (though\n        I can probably do something similar in the Quick backend, but\n        looking for bitcode instead of dex patterns).\n      - Branch fusing doesn\u0027t translate to bitcode.\n      - Bitcode generation has de-optimized code layout.  We\u0027ll try to\n        repair the damage in a subsequent CL.\n\n  o There is an ugly workaround related to the way we\u0027re loading and\n    unloading the compiler .so containing llvm. [See comment in compiler.cc]\n\n  o We\u0027re still running single-threaded - need to add the magic to allow\n    multi-threaded use of llvm.\n\n  o With the CL, the phone boots, all target tests pass and all cts VM\n    tests pass (except those being dealt with via a verifier change).\n\n  o Compile time is pretty bad - when flashing it\u0027s best to follow\n    with an adb sync to avoid on-device compilation of system apps.\n\nChange-Id: I1c98f9e64aefbcbd24b957c71544c28450eb2023\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": "c05f85a61fde3de5cc7d6f53dc504e23f74185d0",
      "tree": "767041fc3c168b84784838a2e5fec487e5486236",
      "parents": [
        "0fb6bb558feebfcb9e0ddc1a58cbcb3f61da758d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 15:39:34 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 14 15:39:34 2012 -0700"
      },
      "message": "Fix compiler for ART_USE_LLVM_COMPILER.\n\nChange-Id: Id81d5fbf84a9ca4dcd4b5b9d022ddfc2bd1e4823\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": "b062fdd4cb097fbae69b4bcb479c34d83ecab8ca",
      "tree": "215ea8fb42828a0f753ac5bd424ca098ce748342",
      "parents": [
        "ca314c6a1be1b4cc11f4d284da90af7dc8a4ce25"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 03 09:51:48 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 11 17:17:46 2012 -0700"
      },
      "message": "Each space has its own bitmap(s)\n\nEach alloc space now has One mark+live bitmap. Each image space has only one live bitmap.\n\nChange-Id: I2e919d1bd7d9f4d35d0e95ed83a58df6f754df6e\n"
    },
    {
      "commit": "5644f0048d6a98dc099ae9fe898ced491da700aa",
      "tree": "baaf17106c8179180f78ed57a7408cc7e9d922ed",
      "parents": [
        "ed8b723c5f3989d2593ec21c65c96d6d8bf25579"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 27 23:05:17 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 27 23:05:17 2012 -0700"
      },
      "message": "Only build target compiler for TARGET_ARCH\n\nChange-Id: Iad4867a358dc273799396ec1c3a76af32b56f5b6\n"
    },
    {
      "commit": "50b69e30ef69e72a48b1789622caaab4de203cfb",
      "tree": "336cb5ac90bfb80666870474e2df8c82a1ffbf49",
      "parents": [
        "0b130de5e6d8fda5f621f87223fa8d0117e6e5a2"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Tue Jun 26 18:11:27 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Jun 27 04:07:40 2012 -0700"
      },
      "message": "Fix build. Remove unused declaration.\n\nChange-Id: I3efef12c816518aa2753d7019de113e68966e760\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": "ca190666fb11820153f74274c495ba1f913d8a69",
      "tree": "cc813b9fd3b0ad38cec0e6952bcbbbbce78494f9",
      "parents": [
        "1fb3bd3559eb6fc34f7ba429adf9bb15c05939b0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 26 15:45:57 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 26 19:50:52 2012 -0700"
      },
      "message": "Fix initializer lists to be Google C++ style.\n\nChange-Id: Iada52ea5cf95492684033993b3299042bdaf6cee\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": "a21039c3ae2b20e44ceb2735251c04d0aac89afd",
      "tree": "66b6fa437e7e4286b50bdef224500f9049633701",
      "parents": [
        "3d9d49fa2d025a041f57ea306ea551ef990177db"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 21 12:09:25 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 21 13:04:41 2012 -0700"
      },
      "message": "Fix a bunch more lint.\n\n(If you ignore the compilers, we\u0027ve got relatively little lint now. Fits on\na single screen.)\n\nChange-Id: I51389002894d4fd8cf46f79d2bac57079322a030\n"
    },
    {
      "commit": "6fcce3092040f829afd68862091ce00c7661d8ed",
      "tree": "438147684436ab04308a6ff01942a1e78304e778",
      "parents": [
        "72e401c59bce47fdf0274a0d47f0340b05e4f27f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 19 16:54:19 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 19 16:54:19 2012 -0700"
      },
      "message": "More tests for detail messages, plus a new one.\n\nThe array-length instruction is likely to encounter nulls.\n\nChange-Id: I628f5f00dfaff9414740e2f7015b9fb3d34a1bc9\n"
    },
    {
      "commit": "4909ba443f71f62404eb17ce299396655f70dc08",
      "tree": "91d6ee9fe583bdf5d7879e3e9eb4e28af5b522d2",
      "parents": [
        "a6399035ee2af012e2ac898ee7a753a2f83b35ab"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 14 13:33:49 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 14 13:46:04 2012 -0700"
      },
      "message": "Run the verifier single-threaded.\n\nAlso improve crash dumps so the frame numbers are the same as when you\u0027re\nin gdb, and add a more memorably-named environment variable for waiting\nfor gdb.\n\n(cherry picked from commit 5db7ea037e9acad434efe8ab4ce798c513fdb49a)\n\nChange-Id: I428569d84dc5728bcd090919456395be44bdc97b\n"
    },
    {
      "commit": "a168c83a1d247094e9efb1244b0f73a5f1e1ed97",
      "tree": "d0fb5a91a00227eda6b430fd64f2a1bff5271723",
      "parents": [
        "289be85116aaf7c48413858b5d0448868b4e61f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 12 15:34:20 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 12 15:34:20 2012 -0700"
      },
      "message": "Convince tsan that the card table isn\u0027t a problem.\n\nAlso move the #include \u003csys/mman.h\u003e into \"mem_map.h\", since it\u0027s\ncurrently not possible to make any use of the latter without the\nformer. If we care about the pollution, we should offer our own\nconstants as part of our API.\n\nChange-Id: I01ec451d23c1d8afb8cb8a6660af8d9723faf5f5\n"
    },
    {
      "commit": "2cfc639fc803bf67e3d2a961f2b637220c86d5f7",
      "tree": "dfb184dc35b3a534fcd54a420378f29f30011f3a",
      "parents": [
        "a9719eb4167b544438268d46692389761652fc5d"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Mon May 07 14:51:40 2012 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Jun 07 16:29:03 2012 -0700"
      },
      "message": "Foundation for Quick LLVM compiler\n\nReady for review - probably better get this cleaned up and\nchecked in even though much work remains.\n\nBasic conversion from MIR to GreenlandIR and from GreenlandIR\nback to LIR.  Support sufficient to run Fibonacci test.\n\nNote some structural changes in MIR to support this work:\n    o  retaining incoming label for phi nodes\n    o  constant propagation\n    o  include object reference detection in type inference pass\n\nChange-Id: I8ba63c73e76d071aa40cae0f744e598b96f68699\n"
    },
    {
      "commit": "d06dfe7b09de95c035fa736d2b62aa9fee2347b5",
      "tree": "dbb358fe31259a4f56ccf4ae84e24f8a54fea1e3",
      "parents": [
        "61b409cd6bb5990dd33c5c816071e8946d9ba017"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 06 22:15:39 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Jun 06 22:24:48 2012 -0700"
      },
      "message": "Add missing llvm ifdef\n\nChange-Id: Ia6cc6a60434c952d3d7e66465913f6f4bc026485\n"
    },
    {
      "commit": "61b409cd6bb5990dd33c5c816071e8946d9ba017",
      "tree": "e644ec30c39fe4223ded35a202023b67b9d37409",
      "parents": [
        "b08ed1255fc34b9f34bcea66cd5e0a292af3d698"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Tue Jun 05 23:54:30 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Jun 06 21:53:49 2012 -0700"
      },
      "message": "After fixing llvm if-conversion, we can reduce stack to 1MB.\n\nChange-Id: Ia5b1995363fa79a14520c6ce54a28465f735463d\n"
    },
    {
      "commit": "7a2a23a44d27f769718e28327af671f4e486c49a",
      "tree": "345a05da812927dafe13af82a4926257c3b368e9",
      "parents": [
        "95dfa6a8c522ad84a492d88666ea69fe7a3852c5"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Jun 06 11:01:00 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Jun 06 21:22:11 2012 -0700"
      },
      "message": "Cleanup proxy stub compiler code.\n\nChange-Id: I2a5815cc2a38f5cea9e9c36e5e6db92c1a861eaa\n"
    },
    {
      "commit": "f1e6b7c8cd78c02f4eb36574f0e417c4edc2b91e",
      "tree": "3ddb49fd0230cdef765ff7fb95f049a990cce018",
      "parents": [
        "662618fa6725631353a115993feaf2a9897b094a"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Jun 05 18:33:30 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Jun 06 13:21:14 2012 -0700"
      },
      "message": "Added new state and Soft/Hard error return to verifier for bad supers.\n\nMarket was failing because a superclass failed with a soft error, and\nthen its subclass would be rejected with a hard error. New states and\nreturn values were added, and now ClassLinker::VerifyClass allows a\nsuperclass to have either kStatusVerified or\nkStatusRetryVerificationAtRuntime as valid states.\n\nChange-Id: I72f23d25fa3bdcfd08f3113b091303535a327c14\n"
    },
    {
      "commit": "5ddbe0bd1d3091f7afca7ad7e8ce8494c0c79994",
      "tree": "666bd76cc8ae242b31aaf78ff6c0a44ea682a4bb",
      "parents": [
        "28c7bfdb245c09dfb6d953c42c42ebc5bb178ea1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 12:58:24 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 01 12:58:24 2012 -0700"
      },
      "message": "Various bits of LLVM changes that are in dalvik-dev but not ics-mr1-plus-art.\n\nLLVM guys: please review this; I don\u0027t know why you only had these changes\nin dalvik-dev, but I\u0027m assuming it wasn\u0027t deliberate.\n\nChange-Id: Icfcba5ea13fe135b441ce6b78a1638cb5e37e30e\n"
    },
    {
      "commit": "b5c4922f3c0f56eec5064536c4bb780c4f58f3fb",
      "tree": "40d9a7dc7a336017c03ad1f1d8f7ee7640c7de96",
      "parents": [
        "8cea5fd3a46e6bd1d91fe0e9cacd75f22bbb1326"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed May 30 00:40:26 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed May 30 00:40:26 2012 -0700"
      },
      "message": "Fix stack overflow problem in art-llvm.\n\nFor JRN54F, dex2oat needs 8MB stack size.\n\nChange-Id: Ief8062722df9acedab2f4008b4ff149205c32c77\n"
    },
    {
      "commit": "8cea5fd3a46e6bd1d91fe0e9cacd75f22bbb1326",
      "tree": "6f18a2081d5bf204d158d2e019a3e70fa1c5383f",
      "parents": [
        "35be9b1f7d5b51652adda85d79e368597df68d64"
      ],
      "author": {
        "name": "TDYa127",
        "email": "tdy@google.com",
        "time": "Tue May 29 22:22:32 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue May 29 22:25:12 2012 -0700"
      },
      "message": "For art-llvm, fix stack size to compile ThinkFree.\n\nChange-Id: I14e4e5c7d6eb5db84e4752c1fa3763a7c29b2081\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": "bf1b4574dc681d49696571c59033e8c63583a029",
      "tree": "299abb1e367c64de42e0f8f45f81acd407b941b7",
      "parents": [
        "8829635f1326e8cf336415da5c9aa58b1b11959b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 19:11:39 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 24 19:20:38 2012 -0700"
      },
      "message": "Fix multithreaded dex2oat on Mac OS.\n\nAlso ensure that we error out rather than writing an empty .oat file if we can\u0027t\nopen one or more .dex files.\n\n(cherry picked from commit 1376f8687373317dc8766ffd5b475c5e294f1fdc)\n\nChange-Id: I60cc6b8e3d47018fa2b58698e8ed14fd6d259029\n"
    },
    {
      "commit": "68adbe41c7d9295da2bfc521d737ba6dabd36c98",
      "tree": "45f0c74e8ef2a16f8baafd3be9befcb42af1c616",
      "parents": [
        "6f29d0e6d5444ff84157c922c23c221567dcc6c5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 11 17:18:08 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 11 17:18:08 2012 -0700"
      },
      "message": "Better handle of 0 edge case in duplicate method skipping\n\nChange-Id: Ic701096167e57d8e639a16e4dee8eea2cbb3e0a8\n"
    },
    {
      "commit": "6f29d0e6d5444ff84157c922c23c221567dcc6c5",
      "tree": "bd59a7c1006507d5d230876e703814191db9f0df",
      "parents": [
        "71e85b74eb5710a689e83623706b3bb372762eb5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 11 15:50:29 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri May 11 16:51:58 2012 -0700"
      },
      "message": "Skip compilation of dead code from duplicate methods\n\nChange-Id: If6114b3cd8e9a2d9a901dc93c352cee6afa3361f\n"
    },
    {
      "commit": "90dc30f4b9967e850d0594e57dfa8e7cb0369575",
      "tree": "f5944514f0fd7b6072050aa4edb8805aefb4c1ef",
      "parents": [
        "9b49689cc20c6b84cfcb049a8093f11e65ee8522"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Apr 23 02:03:30 2012 -0700"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Apr 23 02:38:11 2012 -0700"
      },
      "message": "Remove the barrier between each compilation of dex files.\n\nChange-Id: I14392283cd59189f91f9aa947135a15c44ca5731\n"
    },
    {
      "commit": "fd8ea97f64fb6d32cbfe35729b816a22dfa18224",
      "tree": "6b9e7b5f9d92483cbf05dda01ebdbec24658bd3f",
      "parents": [
        "d668a06b5dcc3b0f7f788da4d756cd4ee6f1d0fa"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Apr 16 02:28:08 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Apr 15 15:28:14 2012 -0700"
      },
      "message": "Remove the CompilerLLVM mutex lock workaround.\n\nChange-Id: Iefc4e020d6b0a9a67d4c7ad5780f28e0082393c2\n"
    },
    {
      "commit": "776ac1fa61237db645adb4370a4aab888530caf4",
      "tree": "fbdfe1dec5f1c890d479f700f2b11549d5574119",
      "parents": [
        "42f302c1da4cf1abf935d7aee29ece8d90441e0c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Apr 13 23:36:36 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Apr 14 13:38:06 2012 -0700"
      },
      "message": "Separate out more of LLVM build. Move verifier.\n\nMove the verifier to its own directory and break out major components.\nAvoid compiling unused files as part of the LLVM build, increase the use\nof unimplemented for LLVM.\n\nChange-Id: Icd3b1708363fb70ae99417d06ef8669d60446533\n"
    },
    {
      "commit": "a0e180632411f7fe0edf454e571c42209ee7b540",
      "tree": "97dc85e76c5449ec1a901226c44e0f68fec89870",
      "parents": [
        "e5eb1914de86129d78e965fb9f2e1bfb2aa68640"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 13 15:59:59 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Apr 14 11:44:21 2012 -0700"
      },
      "message": "Add a SafeMap equivalent to std::map but without the error-prone operator[].\n\nChange-Id: Iae5ba2091c55a34dbd1005cf3d25fce2a8d5c1f9\n"
    },
    {
      "commit": "e2645d3e2db211bfd75775a2185c135ff387161a",
      "tree": "623fdeb19171df63c01d0a36f75ecf6ec53dde8e",
      "parents": [
        "4b952e74b4b2efa15cecedfc643c212eaeac2cc7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 11 14:42:42 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Apr 11 15:32:48 2012 -0700"
      },
      "message": "Fix bug in protected field access.\n\nChange-Id: I38b094e54025d26950c0d8c8bb79d2de81d28428\n"
    },
    {
      "commit": "34e069606d6f1698cd3c33b39e72b79ae27e1c7b",
      "tree": "0feb7e9bde6cfe01c0df3ef2d8de3210570f7ce2",
      "parents": [
        "e62934d85fbc2d935afdad57eeade39ecbd7440a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 13:55:55 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Apr 09 13:55:55 2012 -0700"
      },
      "message": "Remove the useless \"suspend count already zero\" message for new threads.\n\nWe can actually detect the expected case of this warning ourselves, and\nnot emit it. Then we can upgrade the WARNING to a FATAL.\n\nI also tripped over the fact that the operator\u003c\u003c for Thread::State was out\nof date, so I\u0027ve moved the Thread enums up to namespace scope so the script\ncan automatically generate correct operator\u003c\u003c implementations for us. (All\nthe high-numbered thread states have been off by one for a couple of weeks.)\n\nChange-Id: I5de573d33d641e5a3cba87b370e9620c8c66e633\n"
    },
    {
      "commit": "0045a290e6b79a274250e3112880c04bde437d4a",
      "tree": "a125d556b6c817218b14f6f3f72079b83d0032c4",
      "parents": [
        "d23f5206cf72ca3fb53ac3049649bb7d018232bf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 31 21:08:41 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 31 22:38:22 2012 -0700"
      },
      "message": "Avoid a case of eager initialization.\n\nDon\u0027t mark as initialized classes that contain static field\ninitialization.\n\nChange-Id: Iedcabbdf355e8861eb7731650eee1467f68ae0cd\n"
    },
    {
      "commit": "57b86d47b66322693a070185fadfb43cb9c12eab",
      "tree": "81d53304a63a660a683917a19f7dd83723a397ad",
      "parents": [
        "68aefb06c449df0bd8a34f3491f7594ee3f9dd0b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 27 16:05:41 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 29 11:51:44 2012 -0700"
      },
      "message": "Refactor runtime support.\n\nChange-Id: Id7470a4105838150d5ceb73ab2c8c83e739660df\n"
    },
    {
      "commit": "448e93c728b352729afde3c8e95e902c08b1d929",
      "tree": "62f1748c09bf8b3e97cf941a3c2cc9afeeceb71b",
      "parents": [
        "f1498437b0d6beb9f4f91980b98cbeb0b5c773ce"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 28 22:30:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 28 22:30:06 2012 -0700"
      },
      "message": "Fix dex2oat on the Mac.\n\nWhat did we do before valgrind? _NSGetExecutablePath was responsible for the\nheap corruption. The vmmap(1) parsing was slightly off too.\n\nChange-Id: Id458d99c0f75e70a5c59cfbd785ea2efebfbdfce\n"
    },
    {
      "commit": "64277f38032208a0c1081ff9e466c04009b96383",
      "tree": "a7c2e92907584521c1caedbf5e6a798f5984c9e9",
      "parents": [
        "6e41d42f6b7977325a87a125c344c1c9cdf6c949"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 26 23:53:34 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 27 00:03:43 2012 -0700"
      },
      "message": "Additional check to catch BooksTablet monkey issue\n\nChange-Id: I9dfe695b008b2ca23998d2cfb29e5ba04354a029\n"
    },
    {
      "commit": "de08e84143f7339d5bad24f252681207abbe0951",
      "tree": "6a810189c3fb29f24c8e057b5fdfc824012f0b2d",
      "parents": [
        "0cc6ab6c5104f565a0a3256b5b2b31c6383be189"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Mar 21 00:34:12 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 21:10:46 2012 -0700"
      },
      "message": "Remove ELF filename argument.\n\nWe are embedding the ELF image in the Oat file.  We don\u0027t\nneed ELF filename anymore.\n\n(cherry picked from commit b245ccacf447b014838535a7d8a58365642f0c3d)\n\nChange-Id: I235429222401100c09381ba44a3978f38d5b499c\n"
    },
    {
      "commit": "df57614aa99801a50202e284ee8e8497d8e92621",
      "tree": "c58b9f0294f2c4e3d0e5d0517eee2e4d8fad8daa",
      "parents": [
        "0f0899ac8fbaa470922976d058bbb144fb9eea06"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Mar 20 17:36:32 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 21:09:36 2012 -0700"
      },
      "message": "Add GetElfImages() method to CompilerLLVM.\n\n(cherry picked from commit 950fc6e6a6b568f0cf511c092bee3d31547dc857)\n\nChange-Id: I1ded5909bae4d87ed05b2c192fcb2362eaa37461\n"
    },
    {
      "commit": "f7015fd55a8dc969ac2440ffc829a6b4d942fb5a",
      "tree": "735c4ba7aed0089c073effd5e530e6f53fcdf720",
      "parents": [
        "106b2a03be66748a25b9019e4c222cee498d559f"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Sun Mar 18 01:19:37 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 21:01:20 2012 -0700"
      },
      "message": "Add ELF loader to load the executables.\n\n(cherry picked from commit 8c9ca414a7ed05c3530973c63496e477e9ca5eb7)\n\nConflicts:\n\n\tsrc/compiler.cc\n\nChange-Id: I950749625d5b266990c617e2d8cea688fbdc11fb\n"
    },
    {
      "commit": "106b2a03be66748a25b9019e4c222cee498d559f",
      "tree": "c949a5948b6c4fedba020de206c334dec04b0f10",
      "parents": [
        "aeb53035febaaa186b3abdac55e21579a8988d84"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Sun Mar 18 04:41:38 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Mon Mar 26 20:56:51 2012 -0700"
      },
      "message": "Create an instance of CompilerLLVM in the constructor of Compiler.\n\n(cherry picked from commit 120539c9a333789f52dd75aa3ec2d303c7cf2119)\n\nChange-Id: I43d10f712e515cffd2f97e628a9d2aa2ff994f5b\n"
    },
    {
      "commit": "398f64b5805246765b699839b439e18c0dfbf2ee",
      "tree": "de3f86de82289b1734b12cdc7c4292f4aff16f55",
      "parents": [
        "ee0fa76b2e5d39ad36d1ff144b2d0270df81e606"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 18:05:48 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 18:05:48 2012 -0700"
      },
      "message": "Remove more lint, mostly C-style casts.\n\nChange-Id: Iaf1f23290e35ed48e5795fb20690953a9a834457\n"
    },
    {
      "commit": "b25c3f6a86dc634ce44fb2849385b49465caa84d",
      "tree": "f359c72d821d913f78b977d8dde0fc7023afb511",
      "parents": [
        "fc9e6fabed89d948fa8c0e9d673e430076712c60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 16:35:06 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 17:11:59 2012 -0700"
      },
      "message": "Fix cpplint\u0027s whitespace complaints.\n\nChange-Id: I11fd2db2badf7bd98e7866ca2155d8ef1e112408\n"
    },
    {
      "commit": "67d920071fe4a0aa8b8bc339e93b18276238c320",
      "tree": "a665c6bdeecf149fc976b992c71543642b44e464",
      "parents": [
        "16da17c8d39a813f1b880f576fd2f8bc98ac4a9d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 15:08:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 15:08:51 2012 -0700"
      },
      "message": "Add a compile-time constant bool equivalent to !defined(NDEBUG).\n\nThis makes some code slightly less awkward.\n\nChange-Id: Iafd359dd0baa65510ed9510a7d93ee01605f51e4\n"
    },
    {
      "commit": "ba0668ecd2a6459ed7c77012995ad08d27f88725",
      "tree": "4840d42598b7a30d5e41636d979be28390dee93e",
      "parents": [
        "1ac29447d6053b142f257330d6e237660076911e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 26 13:14:07 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 26 13:14:07 2012 -0700"
      },
      "message": "Make non-debug dex2oat omit timing and stats information\n\nThis is to try and avoid logcat rollovers during startup in stability monkey runs\n\nChange-Id: I32a84517fdb97829d7efa3067cb99e2f38b049ae\n"
    },
    {
      "commit": "1ac29447d6053b142f257330d6e237660076911e",
      "tree": "9d708925c501974149d16a4b35e66e330eb4eb9a",
      "parents": [
        "d5347e08172d6d462c703c0f5e1ce9ef070ec69d"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 26 11:37:32 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 26 11:50:04 2012 -0700"
      },
      "message": "Verifier sets class to error on hard error, resolved on soft.\n\nThis solves problems with the runtime finding classes that were rejected\nby the verifier at compile time that end up passing at runtime. Before,\nall classes that failed compile time verification were being set to\nerror, and now only classes that have hard errors should be set to\nerror.\n\nChange-Id: I3a694d12ba4d6051b0310b21f8161f5aa62b43c3\n"
    },
    {
      "commit": "462c94449720e0dc6b93d7138d835d345ccf67ae",
      "tree": "e719ceab0e64e0cc2ca4acb6ee715623ab458215",
      "parents": [
        "81ff3184e7eb8de4605c7646674ea4f9fa29b5f3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 23 18:47:50 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 26 08:42:04 2012 -0700"
      },
      "message": "Fix AttachCurrentThread to use the right thread group.\n\nChange-Id: I9818845c005563d894a571edc4f9be9862312380\n"
    },
    {
      "commit": "4155fcd385bebe869e04c50ff99f4d3d608097bb",
      "tree": "fd8556bbd5c10d77a55d87db16649706dcf81e44",
      "parents": [
        "47282e59ca60fc8a1e02b23a1cb59916dd7c8b81"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 21 11:42:12 2012 -0700"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 23 16:56:56 2012 -0700"
      },
      "message": "Fix sharpening of super when methods class \u003d\u003d referrer class.\n\n(cherry picked from commit 6791bdb5ce8daca5a555117e9b02d11437f81542)\n\nChange-Id: I41e11858e657174dd241b6227c03c54c7992f0fa\n"
    },
    {
      "commit": "0637e27af8e54f39634024dc77e8b094f21782f9",
      "tree": "59f09f85479b52445cd890203d62f72eabe2d60e",
      "parents": [
        "53c5fc6394dd31da673dab032435b96aaf64fecd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 20 01:07:52 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 20 01:07:52 2012 -0700"
      },
      "message": "Enable kSupportBootImageFixup\n\nChange-Id: I57b338b3d985e2de96a6fb99327fc274406e3844\n"
    },
    {
      "commit": "f582258f0e296223a091fd64231a203ad71e9649",
      "tree": "23049122f075220421803a1745cf634337360a40",
      "parents": [
        "a7c12688da57ea052e127776ad3043ca5079488d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 19 22:34:31 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 19 22:59:13 2012 -0700"
      },
      "message": "oat file patching\n\nChange-Id: Idbbdf19f3a77498d79d043fd33ca12ce39cafbb7\n"
    },
    {
      "commit": "3fa13791c51985d9956d01bc465de6d36c3390d3",
      "tree": "b7c5e7a8e3462edd64e141e9de9f3e170333748d",
      "parents": [
        "10fa929276fc069f882783174fda7af8194d41cf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 18 15:53:45 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 18 15:55:17 2012 -0700"
      },
      "message": "Patch support for the boot image.\n\nRequires oat and image writer support.\n\nChange-Id: Ic87dd481a4f86d15faa1e830ea1dd0b3d664c220\n"
    },
    {
      "commit": "2ed3b9536ccfd7c7321cc18650820b093b22d6c9",
      "tree": "c0e211414d0fed674ed2d1fbb340433b49adb57b",
      "parents": [
        "e9dc4c0beae58d7d6d4cf43140c233251e06bbb7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 17 11:49:39 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 17 12:34:56 2012 -0700"
      },
      "message": "Implement direct apk -\u003e boot calling\n\nAlso sharpen super calls.\n\nChange-Id: Ie4d3ab2cbf2961a06ec86762a53132f49a4ed922\n"
    },
    {
      "commit": "f320b639eee1ec0e9d99e8d6c2a805892d016807",
      "tree": "2da40113e4edf1c37e19fae6445ecc4d62a05681",
      "parents": [
        "3d661949dba4a2f3311e6f74a3c42b5addf1f534"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 13 18:47:47 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 14 23:15:21 2012 -0700"
      },
      "message": "Enable sharpening, fix off by one in GetOatCodeFor(Method*)\n\n(cherry picked from commit 0dd87f7f60470057eddf635e209496830911ef3b)\n\nChange-Id: I53ad0b83ac74112cfd46f10fb6b74a627286ded3\n"
    },
    {
      "commit": "6f4976c1a9fdaf108974143cd11e6b46037fd24e",
      "tree": "f0c21b703eab0039f5c31e1b272144c5228b8fa3",
      "parents": [
        "13b835a45f3dccff1c6d024ad82a2044831c7c41"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 21:19:01 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Mar 14 11:27:16 2012 -0700"
      },
      "message": "Replace some LLVM-specific code with something more general.\n\nThis basically gives any compiler a place to hang extra private data\noff art::Compiler, even though only LLVM needs it right now.\n\nChange-Id: I408778ea1010ab2ad9ec4810e5c53d468a8772c2\n"
    },
    {
      "commit": "13b835a45f3dccff1c6d024ad82a2044831c7c41",
      "tree": "73bbdc151d85b7fe83d6086e42f6da5c63ed7e7c",
      "parents": [
        "3fa1b7e7a7fc9785ba4e8335d730e5caf6343322"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 19:45:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 19:45:22 2012 -0700"
      },
      "message": "Fix LLVM #includes and push one piece of LLVM-specific lossage down.\n\nChange-Id: I9f2b7a9fd4d543a3bd9dd9f4c62367c28c69ea36\n"
    },
    {
      "commit": "3fa1b7e7a7fc9785ba4e8335d730e5caf6343322",
      "tree": "b20075991a2f9260d043accf818f629d368baec0",
      "parents": [
        "2f1deb5753ef39b82752fd01e7bc0fc4c15004b1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 17:06:22 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 13 18:33:25 2012 -0700"
      },
      "message": "Unify the invoke stubs and replace \"oat\" with \"Art\" in the API.\n\nChange-Id: Ic1529d7568bd5297fdce4da69ede67c2f48487a4\n"
    },
    {
      "commit": "c4c9881e5d22432f3f1a30eeec5aa109dfc08a7d",
      "tree": "98f1125db961451699880019c8663d76e7b94d02",
      "parents": [
        "1580379bb02ee7866ca94d54851a4d08de12a5a4"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sat Mar 10 21:55:51 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Mar 13 10:26:51 2012 -0700"
      },
      "message": "Fix the LLVM build. Separate out libart-compiler-llvm.so.\n\nAfter this refactoring:\nIf (!USE_LLVM_COMPILER), I pass the test-art and boot the phone alright.\nThe behavior is the same for non-LLVM builds as before. Multi-target\nart-compiler shared libraries are generated as before.\nIf (USE_LLVM_COMPILER), I generate libart-compiler-llvm.so successfully.\n\nNote that the ideal refactoring for the next step will be to always build\nart-compiler and LLVM-[arm|mips|x86] shared libraries. Currently, we\nhaven\u0027t removed all the ifdefs for libart.so yet, so this is not ideal yet.\nReason for not-done-yet is that the next step requires discussions.\nI can remove all the ifdefs today, but then the (!USE_LLVM_COMPILER)\nbuild will incur extra fields and overhead.\n\nThis refactoring allows us to restore the LLVM build situation to be before\nthe breakage yesterday, so we can continue making forward progress again.\n\nOne difficulty in the refactoring is that LLVM is not a method compiler\nin default, unlike (!USE_LLVM_COMPILER). LLVM actually compiles an LLVM module\nat a time normally. So we need to do more call backs and tell\nlibart-compiler-llvm.so in each invocation where we are in terms of\nOatCompilationUnit.\n\nAnother difficulty is that currently our LLVM compiler is not\nmultithreaded and requires locking, unlike (!USE_LLVM_COMPILER). So more\ncallbacks are needed. This will be fixed when we fix the multithreading\nissue.\n\nChange-Id: I93bce21b6d673254188f2a60b1a7f91b508e497f\n"
    },
    {
      "commit": "059d5c142b0ef1fa421153cdcc2326c5c56fd530",
      "tree": "af5ec4dd38cfc588b917f60ffe0017b0fd52706a",
      "parents": [
        "530fa005e2944d3b12712f80d974f0e753f568ef"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 12 17:39:18 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 12 17:39:18 2012 -0700"
      },
      "message": "Fix loading of compiler libraries on Mac OS.\n\nChange-Id: I0deecf991f4e45a37221a1348dddf2759144b0a0\n"
    },
    {
      "commit": "49c4894f76f6a7aec4d6a1ec2c901700c9108944",
      "tree": "ac32b9284b268b1ee0070f9ce380e1d77a69d7ae",
      "parents": [
        "efccc565091b3409ed1372615b4ea4e2f6c39323"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 11 15:15:37 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 11 15:15:37 2012 -0700"
      },
      "message": "Add instruction-set option to dex2oat\n\nChange-Id: I3beefe28abb0ea8fc4697eded2793fd52e3f12c7\n"
    },
    {
      "commit": "46f060a53fffc14333096f0a48f95730ee4768ee",
      "tree": "e29bd9d927e315191840e81fd1ddbcfbddaa04cc",
      "parents": [
        "b3cd1229e6904365ca0ca2a7bbc4701ad1908154"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 17:36:50 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 17:36:50 2012 -0800"
      },
      "message": "Move other compiler bits into the compiler shared libraries.\n\nChange-Id: I288337af4c70716709217ff2d21050ba5f858807\n"
    },
    {
      "commit": "b3bd5f07884f5a1f2b84224363b1372d7c28d447",
      "tree": "6e2997ab64b4a4f32d7ef539a4649adc736ea553",
      "parents": [
        "ddbd01ac1660d57416879d5a576482f1048dde64"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 08 21:05:27 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 09 15:37:46 2012 -0800"
      },
      "message": "Refactor the compilers out of libart.\n\nThis builds three separate compilers and dynamically links with the right one\nat runtime.\n\nChange-Id: I59d22b9884f41de733c09f97e29ee290236d5f4b\n"
    },
    {
      "commit": "9a8a8889418e09bf2d4ae3f683fbb40a71c3c8f4",
      "tree": "706ce6181dfd046845a82d60b3b66ee7270131d3",
      "parents": [
        "680b1bdd7e5d112ba4b95d6c81a43b65119b3b9c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 08 02:30:55 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 08 02:30:55 2012 -0800"
      },
      "message": "Disable virtual call sharpening.\n\nA regression in voice search was seen. Disable for now. Add a few\nassertions to aid future diagnostics.\n\nChange-Id: I635b1126b3e45293489b6b7ad54d838773ae7030\n"
    },
    {
      "commit": "be5ff20bc68de0d14f043421815c5f3dbe0c39da",
      "tree": "31445fbc651ff0dec85678c48ae45969d78f6adf",
      "parents": [
        "63deaad18853e55097761e47a9eedd12eb0c1e58"
      ],
      "author": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Mar 06 21:57:49 2012 -0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Mar 06 21:57:49 2012 -0800"
      },
      "message": "Fix ART_USE_LLVM_COMPILER breakage.\n\nCope with today\u0027s compiler.cc change.\n\nChange-Id: I0f13536652a5b7c617648fe43a03dbbec391efd6\n"
    },
    {
      "commit": "731b2abfccd8704d129e3b8e46a086660161fef3",
      "tree": "dae3ad92a46b1846b767bfb643b1360b6973b8f7",
      "parents": [
        "f56197c5519395fcf8226a7148cc87367e0a7ad4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 06 16:53:35 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 06 16:53:35 2012 -0800"
      },
      "message": "Make the code more defensive against null DexCache values\n\nChange-Id: Iaa3f17dced518a5d2a53479b3ae3cebacb1e3b6a\n"
    },
    {
      "commit": "f56197c5519395fcf8226a7148cc87367e0a7ad4",
      "tree": "1403d90cb236e3643192e40a293b71ea8cd4a3be",
      "parents": [
        "9787ac4a18e71a57ed2b559759e9903b557a65dd"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 05 18:01:54 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 06 16:19:22 2012 -0800"
      },
      "message": "Verifier can handle an unresolved method or class.\n\nAdded a new dex verifier entry point that takes in a ClassDef index and\ncontext instead of a Class pointer. This allows basic structural\nverification to still be run on classes that FindClass fails to find. If\nthe basic structural classes fail, then the compilation for the class is\nskipped. Before, an unresolvable malformed class would cause the\ncompiler to segfault.\n\nChange-Id: Ia02c77560bf274281c4e22250983dc96511501eb\n"
    },
    {
      "commit": "9787ac4a18e71a57ed2b559759e9903b557a65dd",
      "tree": "57f673ba508c0fea41b9a231866ecd4b47f42adf",
      "parents": [
        "bc615a1d16969196168d5d4632f2cb1aa8b6664b"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Mar 06 18:24:03 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Tue Mar 06 14:38:23 2012 -0800"
      },
      "message": "Skip src/jni_compiler.cc from llvm backend\n\nLLVM backend has llvm-specific JNI compiler, which\nis using different calling convention and being\nincompatible with src/jni_compiler.cc, thus we are\nnot using src/jni_compiler.cc in the llvm backend.\n\nChange-Id: I68a3beb2668b4bcc8ed36aed57fa252907ad2453\n"
    },
    {
      "commit": "fb6adba0d5d5505610fbd325e7911db700a2f1e8",
      "tree": "84ad8f9cc55a2ae87f80c05927126af7e75604d7",
      "parents": [
        "123e8a7fdf69b40603f7df95f08d62c69ee1c07e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 04 21:51:51 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 05 08:56:55 2012 -0800"
      },
      "message": "Sharpen virtual calls to final methods.\n\nAlso remove unused instance resolution stub.\n\nChange-Id: I2abb988d107e98ac0148fb81464b22622a468382\n"
    },
    {
      "commit": "7f76761d8705b7aa5b1fdd2fc1ebb80250992f4c",
      "tree": "4a94f53797ce340ec147896baca6333522040637",
      "parents": [
        "94bbf8873848b9c5e99d0f77abe1cda0f038aadb"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu Mar 01 18:54:49 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Mar 01 12:17:05 2012 -0800"
      },
      "message": "Cleanup LLVM code generation code.\n\nMaterialize the bitcode in the end of CompileClass,\nso that the code generation time won\u0027t be calculated\nin method compilation time.\n\nChange-Id: I1e2bd0b23bcb5c55bd966a31b1df0b8b34922f94\n"
    },
    {
      "commit": "dbe72bde0815ad53d26ec26da581c163d7928656",
      "tree": "e37e7e920bf42736845ce1ace6b94cb6801cbc7a",
      "parents": [
        "8ee03b5f4fce36047927191f7cc48c0ed2382445"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Thu Mar 01 18:27:33 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Thu Mar 01 11:52:45 2012 -0800"
      },
      "message": "Allocate local variable on the stack.\n\nChange-Id: I14ce622686d44e975e2760e2f1c1e0e64e83125f\n"
    },
    {
      "commit": "8b977d38483aaa08abcbdaa5fa888076c1142169",
      "tree": "ae61c7cb1c397582f22c5c585bb0b531fd8f59b0",
      "parents": [
        "88894ee835411de72025cd8a5d8d111a6f2a004a"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Tue Feb 21 19:14:55 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Feb 29 17:11:27 2012 -0800"
      },
      "message": "Compile llvm.Module into ELF object file.\n\nChange-Id: I8faf7427944324c9bac12573d217cde2a2e658f1\n"
    },
    {
      "commit": "88894ee835411de72025cd8a5d8d111a6f2a004a",
      "tree": "76e4d1cfbb39f82cf6f97f679e0b90a2438f3beb",
      "parents": [
        "d1224c79631bd1801b067a0f212b91afa961a362"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Mon Feb 13 16:42:22 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Feb 29 15:29:05 2012 -0800"
      },
      "message": "JNI compiler.\n\nChange-Id: Ia9a52cced70b8c44d1354e3342ad27f212c8d993\n"
    },
    {
      "commit": "d1224c79631bd1801b067a0f212b91afa961a362",
      "tree": "6863033cc7e365536d549e2ee4f7613851685f11",
      "parents": [
        "ed2adb6158ffbe85c89aa5c9892a35bafa5006cd"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 29 13:43:08 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 29 15:03:33 2012 -0800"
      },
      "message": "Suppress compilation of malformed dexfiles to prevent compiler segfault.\n\nGeneric failures detected at compile time will not be fixed at runtime,\nso classes with generic failures are now added to a rejected classes\nset and not compiled at all. This prevents the compiler from\nsegfaulting on certain occasions when registers and indexes are out of\nrange, etc. There is one remaining segfault in the vm-tests now.\n\nChange-Id: Id67c12fd13f3e993a6a16a8625620daa0ea496cb\n"
    },
    {
      "commit": "4dd96f56909ec35c83a3d468b0e47769988c1a1d",
      "tree": "99fde7aab07e550864860825b7732a37fce81d81",
      "parents": [
        "45619fcc01fb6db1ac9481a91608eb46f90829e4"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Wed Feb 29 01:26:58 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Wed Feb 29 11:53:18 2012 -0800"
      },
      "message": "Extract method-related information from CompilationUnit.\n\nExtract method-related information, such as class_loader,\nclass_linker, dex_file, dex_cache, code_item, method_idx,\nand access_flags from art::CompilationUnit, so that we\ncan use them in 2 different code generators.\n\nChange-Id: I20631cc73b6f01e9646a983156f3fcb066d732db\n"
    },
    {
      "commit": "45619fcc01fb6db1ac9481a91608eb46f90829e4",
      "tree": "cb25ff0b8ee54e092fab8579a9f56f47c08ab8e2",
      "parents": [
        "282dab03fd0c80819fa988ef2e81b2bae1c36287"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 29 11:15:25 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 29 11:25:14 2012 -0800"
      },
      "message": "Allocate small arg arrays on the stack\n\nCreate a helper class to either keep in a short local array or allocate\nthe arg array. This benefits JNI methods with a small number of\narguments by avoiding an allocation.\n\nChange-Id: I88a9ff6b7ff88b16021813650e9425697e934353\n"
    },
    {
      "commit": "1984651929744dd603fd082e23eacd877b9bc177",
      "tree": "ffa10973a88f0f2743f3fbfaf5e7e4235d5f262d",
      "parents": [
        "f3c01c530ab3a645bd5a980522df4d396dcbf228"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 24 11:42:47 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 27 16:08:56 2012 -0800"
      },
      "message": "Invoke static/direct dispatch change.\n\nThere was a subtle race in static/direct dispatch via the code and methods\ntable. This patch removes the table in preparation of architectures like\nx86 which will more aggressively sink loads.\n\nRemoves unused fields, code.. Brings back resolved methods table\nshort-cut and associated fast paths to use this (such as in Proxy). Adds\na resolution method that is used as the trampoline for static and direct\nmethods.\n\nAdd source file and line number to Throwable::Dump.\n\nMethodHelper knowledge of runtime methods.\n\nChange-Id: Ieae1b74c24072e6327a5bb2cad466f04e3c46c4d\n"
    },
    {
      "commit": "de6e4cf1b63acd7032a52826d9df21ff649d7128",
      "tree": "00a44b884b33591e3a33512123484145bfee6ff0",
      "parents": [
        "408e41920549371079eecd6a6ba2b7ce0fa7e328"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 27 14:46:06 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Feb 27 14:46:06 2012 -0800"
      },
      "message": "Add dex2oat -g to control whether the compiled code has debugger support.\n\nChange-Id: I69c83f707d874fee0464929769b1f1f28e9d97ee\n"
    },
    {
      "commit": "8cd6ddaeb78cc904e13bac88753654a04b2e15b8",
      "tree": "005ebbe14563bb3ec5bfc9837bf3fd4284427cec",
      "parents": [
        "a656a0f6fbcf2ba3f15cae54a773b9c636dd32c1"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 22 10:15:34 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Thu Feb 23 15:55:20 2012 -0800"
      },
      "message": "Numerous fixes to compiler and verifier for cts vm-tests.\n\nClassNotFoundExceptions in ResolveType are converted to\nNoClassDefFoundErrors.\n\nCompiler checks for puts into final fields.\n\nMethod resolution searches direct methods if an appropriate virtual\nmethod can\u0027t be found.\n\nInvocations of \u003cclinit\u003e are rejected by the verifier.\n\nInvoke-super and invoke-virtual can\u0027t be used on private methods.\n\nUsing invoke-interface on non-interface methods and not using\ninvoke-interface on interface methods leads do an error.\n\nChange-Id: Ia589f1ffccf91b62812ee34c8c5fae1aaf3798c6\n"
    },
    {
      "commit": "f04364f0ff789935d05490ee684f01c3de431780",
      "tree": "a47070af79126f5aa315480280b7b44ba7205ef1",
      "parents": [
        "7caf37e2aebdb9e6f10f691a8148dd3d3405f157"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri Feb 10 12:01:39 2012 +0800"
      },
      "committer": {
        "name": "Shih-wei Liao",
        "email": "sliao@google.com",
        "time": "Sun Feb 19 02:50:04 2012 -0800"
      },
      "message": "Add upcall compiler.\n\nUpcall compiler compiles the invoke stub for native-to-managed\nmethod invocation.\n\nChange-Id: I09fb1e4b3f166e8da5de73e8f39509cd9be6c152\n"
    },
    {
      "commit": "c8b306f5221658c7e4b5516be8917dc8c9288e7e",
      "tree": "d8d3499030152361129f002e99d2b4a10d36660d",
      "parents": [
        "6c6f12d0ed64e0f4bcbb7139eca8fe564302f385"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 17 21:34:44 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 17 23:52:39 2012 -0800"
      },
      "message": "Run time illegal access checks on static and direct methods\n\nFixes test 075.\n\nChange-Id: I28b20451dcae8000dc0e2cb9068dfa5166659d43\n"
    }
  ],
  "next": "d1fec81868a3567560a3868350e0a945248e925b"
}
