)]}'
{
  "log": [
    {
      "commit": "39c3bfbd03d85c63cfbe69f17ce5800ccc7d6c13",
      "tree": "fa777039b3f7c34f3dd322d04307766246526080",
      "parents": [
        "0918614b7434783477e8668df7850a7aaf8d5611"
      ],
      "author": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Tue Jan 28 18:33:52 2014 -0800"
      },
      "committer": {
        "name": "Dave Allison",
        "email": "dallison@google.com",
        "time": "Fri Mar 07 13:42:48 2014 -0800"
      },
      "message": "Make use of profiling information for dex2oat\n\nIf the profile file exists, the compiler driver will read it\nand store the data in an internal map.  Then, when we want to work\nout whether to compile a method or not, the map is consulted and if\nthe method shows up with a high enough percentage of use we compile it.\n\nThe profile file itself is created by installd and is writeable by the\napp.  The file is in /data/dalvik-cache/profiles and is named by\nthe package name.\n\nThis also modifies the profiler itself to:\n\n1. Only count runnable threads (not suspended threads) in the profile\n2. Use system properties to allow tuning of the profile parameters\n3. Merge profiles from multiple processes using file locking.\n\nBug: 12877748\nChange-Id: Iab2f3a327a2860db2a80d5724277d6c626227f2b\n\nConflicts:\n\tcompiler/dex/frontend.cc\n\tcompiler/dex/mir_analysis.cc\n\tcompiler/dex/verification_results.cc\n\tcompiler/driver/compiler_driver.cc\n\tdex2oat/dex2oat.cc\n\truntime/class_linker.cc\n\truntime/runtime.cc\n\truntime/runtime.h\n"
    },
    {
      "commit": "c147b00f86c28f5275c99c8ce515499c90c01e31",
      "tree": "d90a9f1139b043c2c16f6c69c46919d4b97ea5f5",
      "parents": [
        "aa00fe010eb7b61c2de82611ce3f6fc0918a4f9e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 06 18:11:06 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 07 20:35:17 2014 +0000"
      },
      "message": "Release unused parts of a JNI frame before calling native code\n\nTwo-pass process for setting up the JNI frame so we can put Sirt\nand native call stack as close together as possible.\n\nChange-Id: I827167a55fafc4eba7d4eaf14a35fc69fd5f85ce\n"
    },
    {
      "commit": "aa00fe010eb7b61c2de82611ce3f6fc0918a4f9e",
      "tree": "53a1769024151ecd756b20ec4fec5d2733d59c9f",
      "parents": [
        "de46ed1ceb8272e65f780f041b52e7bbc03421d8",
        "c645f1ddb7c40bea6a38eda4b3f83f6b6dec405b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 20:09:48 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 07 20:09:49 2014 +0000"
      },
      "message": "Merge \"Add more VerifyObject calls.\""
    },
    {
      "commit": "c645f1ddb7c40bea6a38eda4b3f83f6b6dec405b",
      "tree": "de6141864c1c011216c19dd99a2c1e2bc442dd6d",
      "parents": [
        "a9d7be62735e3356cef7e8ed797c519134a17061"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 18:11:53 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 12:09:04 2014 -0800"
      },
      "message": "Add more VerifyObject calls.\n\nAdded verify object calls to SirtRef, IndirectReferenceTable,\nReferenceTable.\n\nRemoved un-needed verify object in ScopedObjectAccess / DecodeJObject\nsince object sources are handled.\n\nBug: 12934910\nChange-Id: I55a46a8ea61fed2a77526eda27fd2cce97a9b125\n"
    },
    {
      "commit": "b166d8407622e842eb0dc9302ede01cdea182149",
      "tree": "7401b7eab80c72e977e305896e90ee4ce4c32a6d",
      "parents": [
        "3c0c1791d4b5efe59d2a659b6925b908d9d44b56",
        "067d20fd2fddd947ce3a014d023e9de249082ebe"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Mar 07 18:47:22 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 07 18:47:22 2014 +0000"
      },
      "message": "Merge \"backtrace: use Java stack to help decode native\""
    },
    {
      "commit": "a9d7be62735e3356cef7e8ed797c519134a17061",
      "tree": "631a2b7985bfdebc99e0b244273700e22036243c",
      "parents": [
        "234897797cf15beb3223dd2a99047add25a42f0a",
        "83cc7ae96d4176533dd0391a1591d321b0a87f4f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 07 10:50:35 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 07 10:50:35 2014 +0000"
      },
      "message": "Merge \"Create a scoped arena allocator and use that for LVN.\""
    },
    {
      "commit": "44d6ff197b340b5ac2a4094db148b39c366317dd",
      "tree": "818c34e10f126b20a22ee7abd5f054b7f34c3100",
      "parents": [
        "b35d722809e93cd2aeaf523255fdfac9eba75f76"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 23:11:11 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 23:11:11 2014 -0800"
      },
      "message": "Fix issues with clang and BUILD_HOST_64bit.\n\nChange-Id: Id954d0c1144de6eaf89a4d27d205e3bf6ccb655f\n"
    },
    {
      "commit": "719d1a33f6569864f529e5a3fff59e7bca97aad0",
      "tree": "fcd84efd7b9806b93ec1a44e2317e6f882e7fe0e",
      "parents": [
        "5365eea9940269b662cfbe103caa348816ff1558"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 12:13:39 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 19:16:01 2014 -0800"
      },
      "message": "Enable annotalysis on clang ART builds.\n\nFix clang build errors aswell as restructure locking/mutex code for correct\nthread safety analysis support.\nReorder make dependencies so that host builds build first as they should\nprovide better compilation errors than target.\nRemove host\u0027s use of -fno-omit-frame-pointer as it has no value with correct\nuse of CFI, which we should have.\n\nChange-Id: I72cea8da9a3757b1a0b3acb4081feccb7c6cef90\n"
    },
    {
      "commit": "5365eea9940269b662cfbe103caa348816ff1558",
      "tree": "877ad900a7950b8bc66f8a2495f2f27ebf8d5eb8",
      "parents": [
        "f1ac817fbb9a908086803c7d098cc4f4c16eface",
        "a5f9de040a7a740b7b4979bc8d47f95eb05718ae"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 07 01:18:07 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 07 01:18:08 2014 +0000"
      },
      "message": "Merge \"Defer heap transitions to heap trimming daemon.\""
    },
    {
      "commit": "f517f1a994fab72ba484bbbac6911e315f59f6cd",
      "tree": "5dbd368323e6d3ebdf47db4ab7d5bdd7a2a7845f",
      "parents": [
        "c7a8981098646b4e255d9ede1f3798023bac6e84"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 15:52:27 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 16:00:46 2014 -0800"
      },
      "message": "Restore obj after RequestConcurrentGC.\n\nRequestConcurrentGC can cause thread suspension, this means that\nanother thread could transition the heap or cause moving GC.\n\nBug: 12934910\n\nChange-Id: I5c07161e2e849d7acbdf939f1c24e1ba361a1d6a\n"
    },
    {
      "commit": "a5f9de040a7a740b7b4979bc8d47f95eb05718ae",
      "tree": "a06560b27a6e2ec1e7c90b3b8f0f1f6344f09c81",
      "parents": [
        "c7a8981098646b4e255d9ede1f3798023bac6e84"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 28 16:48:42 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 15:38:06 2014 -0800"
      },
      "message": "Defer heap transitions to heap trimming daemon.\n\nThis fixes the case where quick back and forth process state changes\nwould cause a lot of heap transitions.\n\nChange-Id: Ia5be792edcf26079b2aa23b9c115f6b0a9a39a1c\n"
    },
    {
      "commit": "067d20fd2fddd947ce3a014d023e9de249082ebe",
      "tree": "22ebe9335ce783d6b4cfaa311281e001d578ac12",
      "parents": [
        "8785d615122d4abbd22db702139584e8c472f502"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 05 14:57:21 2014 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 06 13:38:41 2014 -0800"
      },
      "message": "backtrace: use Java stack to help decode native\n\nBefore change:\n\n  native: usb_host_run+16 [0x400a43f9] (/libusbhost.so)\n  native: android::Vector\u003cint\u003e::do_move_forward(void*, void const*, unsigned int) const+54 [0x501b1c5b] (/libandroid_servers.so)\n  native: ??? [0x624de480] (/system@framework@boot.oat)\n  at com.android.server.usb.UsbHostManager.monitorUsbHostBus(Native method)\n  at com.android.server.usb.UsbHostManager.access$000(UsbHostManager.java:38)\n\nAfter change:\n\n  native: usb_host_run+16 [0x400933f9] (libusbhost.so)\n  native: android::Vector\u003cint\u003e::do_move_forward(void*, void const*, unsigned int) const+54 [0x4e984c5b] (libandroid_servers.so)\n  native: Java_com_android_server_usb_UsbHostManager_monitorUsbHostBus__+92 [0x624de480] (system@framework@boot.oat)\n  at com.android.server.usb.UsbHostManager.monitorUsbHostBus(Native method)\n  at com.android.server.usb.UsbHostManager.access$000(UsbHostManager.java:38)\n\nChange-Id: Iea550a251a12e9ba7df9582fd454093bfa4e90e0\n"
    },
    {
      "commit": "c7a8981098646b4e255d9ede1f3798023bac6e84",
      "tree": "18c575c5ee5e7b934814ddbf5a5300eb78511992",
      "parents": [
        "a7e649d2341039072d02b954338aed3cb6b3638b",
        "6dda898d47b3e8931e4404330e81b7110108e34f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 19:56:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 06 19:56:21 2014 +0000"
      },
      "message": "Merge \"Disable compaction for jni workarounds.\""
    },
    {
      "commit": "6dda898d47b3e8931e4404330e81b7110108e34f",
      "tree": "d8a0a20b8ac1ce3cd44273cf5c748d09980bd800",
      "parents": [
        "8785d615122d4abbd22db702139584e8c472f502"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 11:11:48 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 06 11:43:06 2014 -0800"
      },
      "message": "Disable compaction for jni workarounds.\n\nCompaction can\u0027t work when jni workarounds is enabled. Also some\nother refactoring.\n\nChange-Id: Ia7b0f2b39c79f5a0a5f50874d823b950ab02a0c3\n"
    },
    {
      "commit": "a7e649d2341039072d02b954338aed3cb6b3638b",
      "tree": "5a6b424ff483ef017d506170e85cd117a85997c4",
      "parents": [
        "8785d615122d4abbd22db702139584e8c472f502",
        "e63a745f26fec5a5b4162fc83f6e88a1f696c30c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 06 18:33:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 06 18:33:59 2014 +0000"
      },
      "message": "Merge \"Make heap reference poisoning work with the interpreter.\""
    },
    {
      "commit": "83cc7ae96d4176533dd0391a1591d321b0a87f4f",
      "tree": "6b3c607119c1dc2850810f8463dfd968c486fba4",
      "parents": [
        "8785d615122d4abbd22db702139584e8c472f502"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 18:02:05 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 06 15:37:40 2014 +0000"
      },
      "message": "Create a scoped arena allocator and use that for LVN.\n\nThis saves more than 0.5s of boot.oat compilation time\non Nexus 5.\n\nTODO: Move other stuff to the scoped allocator. This CL\nalone increases the peak memory allocation. By reusing\nthe memory for other parts of the compilation we should\nreduce this overhead.\n\nChange-Id: Ifbc00aab4f3afd0000da818dfe68b96713824a08\n"
    },
    {
      "commit": "befbd5731ecca08f08780ee28a913d08ffb14656",
      "tree": "ee359fc38671950afa91d96bf8c29232a799b628",
      "parents": [
        "97c3d61e46a3678dac848578c686c724ec3397fa"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 01:13:39 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Mar 06 01:34:07 2014 -0800"
      },
      "message": "Fix host architecture for 64bit.\n\nAlso, hack x86 assembler for use as a x86-64 trampoline compiler\u0027s assembler.\nImplement missing x86-64 quick resolution trampoline.\nAdd x86-64 to the quick elf writer.\n\nChange-Id: I08216c67014a83492ada12898ab8000218ba7bb4\n"
    },
    {
      "commit": "85ae517ebb093d6c3bcc86f87b5a70c720cefd04",
      "tree": "49567501ebde325abf2592459fbd4d5430033bf6",
      "parents": [
        "653661ff54fd2bd8b66389d8f2cec655723d3547"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 05 23:40:59 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 05 23:40:59 2014 -0800"
      },
      "message": "Lock ranking fix for monitor IDs.\n\nFree-ing objects holds a lock and so the monitor ID lock needs to be\nof a lower rank.\n\nChange-Id: I594ac04c1f76c5d6fd2e752886040565001d4eaf\n"
    },
    {
      "commit": "bf6b92a158053c98b15f4393abb3b86344ec9a20",
      "tree": "93a28d1e01b045a8df23fe5279601496b62af3dd",
      "parents": [
        "359597ee8c0667a7d2c0b74dcbb0f90bb6059bae"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 05 16:11:04 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 05 22:32:53 2014 -0800"
      },
      "message": "Generic JNI implementation for x86_64\n\nStarting implementation for generic JNI on x86_64. Frames are of\nlarge static size (\u003e4K) right now, should be compacted later. Passes\nthe whole of jni_compiler_test.\n\nChange-Id: I88ac3e13a534afe7568d62a1ef97cb766e8260e4\n"
    },
    {
      "commit": "e63a745f26fec5a5b4162fc83f6e88a1f696c30c",
      "tree": "f26e1429c8226c5dde5ee4c361a57754ff46298c",
      "parents": [
        "e26baffe7f9e2a54f276f5c65e48454e413683ba"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Feb 27 14:44:36 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Mar 05 19:20:14 2014 -0800"
      },
      "message": "Make heap reference poisoning work with the interpreter.\n\nIt is disabled by default.\n\nBug: 12687968\nChange-Id: Iee0cad647f341a7b566f4cf74c2770d1c19312c9\n"
    },
    {
      "commit": "39d921865c207bd315daa372759e75b454cbcae1",
      "tree": "122aa731726ebcf1c1dc2c7668cd0a20fa45bdcf",
      "parents": [
        "c050485355f594681e045f84b477c74a2f0d7f9e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 05 16:46:44 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 05 16:46:44 2014 -0800"
      },
      "message": "Size and offset fixes to compile for 64b host\n\nSome Runtime fields have moved after deletion of other fields.\nParsedOptions uses size_t, but parsing function works on unsigned int.\n\nChange-Id: I6b7f25787af5d3f9e38554abea2bfb220299f475\n"
    },
    {
      "commit": "c7cb1901b776129044a4ad3886fd6450e83df681",
      "tree": "611c648c250ac7e84ac7079fe000b7ce76d50685",
      "parents": [
        "c8554361e89970ab92a94d1f719553a30d45b86c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 05 14:41:03 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 05 15:02:18 2014 -0800"
      },
      "message": "Print error message if ImageSpace::Init fails.\n\nAlso changed some of the args in mem_map.cc to print as hex.\n\nBug: 13323732\n\nChange-Id: I02cd81300793515d143e94473f48fc701e401b38\n"
    },
    {
      "commit": "c8554361e89970ab92a94d1f719553a30d45b86c",
      "tree": "0275debfd06a8611768670a675f8614225a15b30",
      "parents": [
        "77e4cb33f0b311e86b9e350943ce302239108bde",
        "661974a5561e5ccdfbac8cb5d8df8b7e6f3483b8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 05 22:36:59 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 05 22:37:00 2014 +0000"
      },
      "message": "Merge \"Fix valgrind gtests and memory leaks.\""
    },
    {
      "commit": "77e4cb33f0b311e86b9e350943ce302239108bde",
      "tree": "952408132f6390bac6b47bef703914aa77ef76aa",
      "parents": [
        "83b96684ec004167693409c5ad6b243ce2fbe591",
        "cc460f11b5422d8ad93c64b9c1d79b694386c272"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 05 22:27:12 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 05 22:27:12 2014 +0000"
      },
      "message": "Merge \"backtrace: trim of unneeded slash from solib\""
    },
    {
      "commit": "cc460f11b5422d8ad93c64b9c1d79b694386c272",
      "tree": "45edd34545e2d9e85f0c691ec0ffc52455796324",
      "parents": [
        "511472b9110d15cf30a205bb514eb98f6afce651"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 05 14:11:04 2014 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 05 14:11:04 2014 -0800"
      },
      "message": "backtrace: trim of unneeded slash from solib\n\nPreviously we would output solib with an unnecessary slash:\n\n  native: art::JDWP::JdwpState::Run()+6018 [0x416bf3e3] (/libart.so)\n\nTrim it off so it omits the slash:\n\n  native: art::JDWP::JdwpState::Run()+6018 [0x41961f6b] (libart.so)\n\nChange-Id: I82baf1e624227858f5750ef57058474d21777451\n"
    },
    {
      "commit": "661974a5561e5ccdfbac8cb5d8df8b7e6f3483b8",
      "tree": "02e428694277d85a98505f8e814aba378fc7651c",
      "parents": [
        "3cd52df3d740f8a656233b199dfcaab165f415ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 09 11:23:53 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 05 12:44:22 2014 -0800"
      },
      "message": "Fix valgrind gtests and memory leaks.\n\nAll tests pass other than image_test which passes if some bad reads\nare disabled (buzbee working on this).\n\nChange-Id: Ifd6b6e3aed0bc867703b6e818353a9f296609422\n"
    },
    {
      "commit": "ed8dd492e43cbaaa435c4892447072c84dbaf2dc",
      "tree": "e93e3d1e7dd6770ec8e2a3ed7105a7305eb2bc4d",
      "parents": [
        "511472b9110d15cf30a205bb514eb98f6afce651"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Tue Feb 11 14:15:10 2014 +0000"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 05 12:14:43 2014 -0800"
      },
      "message": "AArch64: Add ARM64 Assembler\n\nThis patch adds the ARM64 Assembler and ManagedRegister backend.\nThe implementation of the Arm64Assembler class is based on VIXL (a\nprogrammatic A64 Assembler - see external/vixl ).\n\nChange-Id: I842fd574637a953c19631eedf26f6c70d9ed7f9e\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "c0a1b18ac71ec0ff3ec0cca3cc8db9eb74e50690",
      "tree": "b587b9b0df1969ab4e9d49c0a57c83cbf2c35feb",
      "parents": [
        "c84d2f1d3feb6271ea260947e2a1eb43d64a099b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 04 23:19:06 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 04 23:34:23 2014 -0800"
      },
      "message": "Reuse NoopCompilerCallbacks in oatdump\n\nChange-Id: Icb4d3941196c1a236f0184fe4d0b7f5838bc13bd\n"
    },
    {
      "commit": "cd937a9dabaabccdeeafcd7fb69b98752e72dca5",
      "tree": "86eef59bce5eaa3be4b389c9e78126287ac099b8",
      "parents": [
        "17c4c92f92e014b8013ef66d000aec0bb49fb1ca"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 04 22:53:23 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 04 23:01:58 2014 -0800"
      },
      "message": "Fix some \u003c vs \u003c\u003d issues in OatFile\n\nChange-Id: I86c7eb182f7ebd57790d77b9abbcdf39a8b18e2f\n"
    },
    {
      "commit": "b04388f6f05be900386da1ca66615d9542c35475",
      "tree": "fa28a2dfc445ee9cbe14812c1bfb63c58bb01e45",
      "parents": [
        "94e05cfdbd7e3f8f633b77b478c6674e9be5aedc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 04 22:49:27 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 04 22:49:27 2014 -0800"
      },
      "message": "Fix oatdump for interpret-only boot classpath\n\nChange-Id: I12cf5046b01dfba110bf0604fe01a8abf8b352dc\n"
    },
    {
      "commit": "2ec6520d57479d393bffa05defa1479b25ca8382",
      "tree": "6f5266b53e335c7bf74b52905f64435dd114a18f",
      "parents": [
        "e6031e6fefc8f439b44e284b8563c790ef764c68"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 03 15:16:37 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Mar 04 16:53:15 2014 -0800"
      },
      "message": "Support compiler filters for boot classpath\n\nimage_writer.cc\n  Remove assumption that all methods in the boot classpath are compiled\n\noat_writer.cc\n  Don\u0027t skip writing ArtMethod::quick_code_offset_ for methods that need resolution, leave that to ImageWriter\n\ndex2oat.cc\n  Allow dex2dex compilation of image dex files by making the in memory pages writable in all cases, not just app case.\n\noatdump.cc\n  dump new OatHeader fields\n  use ImageSpace.GetImageFilename, not command line image filename, since location may be in dalvik-cache\n  remove inaccurate check about non-null GC map\n\nquick_trampoline_entrypoints.cc\n  add and improve some DCHECKS that were useful while debugging\n\nclass_linker.cc\nimage_space.cc\n  fix double facepalm\n\nparsed_options.cc\n  fix zygote logging to not skip values to two part options like -classpath \u003cfoo\u003e\n\nruntime.cc\n  wireup parsed compiler options to runtime\n\nChange-Id: Iad314df0b80623c0663d61713d5098297ab9ac87\n"
    },
    {
      "commit": "6cbd271d061707dfe70e29c16bb97b6acbd3c533",
      "tree": "2a4dc81b46b7f29b6dec85ec9f5c375d50ba7c6f",
      "parents": [
        "6f2083d3f909bce3988e71cd80374cee038ecba6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 04 16:06:50 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Mar 04 16:06:50 2014 -0800"
      },
      "message": "Oatdump fix.\n\nChange-Id: Idd4fe294a628efb2a3bd39061a61bab3017784a2\n"
    },
    {
      "commit": "6f2083d3f909bce3988e71cd80374cee038ecba6",
      "tree": "ff70112b6d4fcc5c07e153734e4cb05a10dcf99b",
      "parents": [
        "a6ed651cfe290b9558f4bb18e1c43250a1abcbbd",
        "893263b7d5bc2ca43a91ecb8071867f5134fc60a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 04 23:26:43 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 04 23:26:43 2014 +0000"
      },
      "message": "Merge \"Avoid marking old class linker and intern table roots during pause.\""
    },
    {
      "commit": "893263b7d5bc2ca43a91ecb8071867f5134fc60a",
      "tree": "a99238843a9caad00122c8f7d13e031f5d81bc38",
      "parents": [
        "2fece5941f12395a94e742313e7059a9e419994d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 04 11:07:42 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 04 14:21:58 2014 -0800"
      },
      "message": "Avoid marking old class linker and intern table roots during pause.\n\nThe new root visiting logic has a concept of a root log which holds\nnew roots which were added since the start of the GC. This is an\noptimization since it lets us only mark these newly added roots\nduring the pause (or pre-cleaning) since the other roots intern table\nand class linker roots were marked concurrently at the start of the\nGC.\n\nBefore (EvaluateAndApplyChanges):\nMarkConcurrentRoots:\tSum: 605.193ms\nAfter:\nMarkConcurrentRoots:\tSum: 271.858ms\n\nThis should also reduce pathological GC pauses which used to be able\nto happen when the intern table or class linker became \"dirty\"\nduring the concurrent GC.\n\nChange-Id: I433fab021f2c339d50c35aaae7161a50a0901dec\n"
    },
    {
      "commit": "28c8359c4e9d01ee09dc73409070b7f2223d670f",
      "tree": "33addd09ac4d5fc2b45265d32262b7d5e5a1ef12",
      "parents": [
        "b02458f842a1263e6a7b3107d819a97a37fec726"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 04 13:40:17 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 04 13:48:25 2014 -0800"
      },
      "message": "Disable new signal handler.\n\nDoesn\u0027t play well with existing signal handlers.\n\nChange-Id: Ic93691ad8af14f037bec571a2163bae146741d31\n"
    },
    {
      "commit": "b02458f842a1263e6a7b3107d819a97a37fec726",
      "tree": "15f8810e54c10933236c4dba31d1e50a75a15fb9",
      "parents": [
        "2fece5941f12395a94e742313e7059a9e419994d",
        "26d69ffc0ebc98fbc5f316d8cd3ee6ba5b2001ac"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Mar 04 18:34:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 04 18:34:50 2014 +0000"
      },
      "message": "Merge \"Decrease lock uses in RosAlloc::BulkFree().\""
    },
    {
      "commit": "9583fbcf597eff6d0b3c5359b8e8d5f70ed82c40",
      "tree": "847912709f811adda0fa63e89e4bf8af27769f2e",
      "parents": [
        "093aad184b4451639951a7e012d9b55cbf8c8a07"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 28 15:21:07 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 04 16:30:48 2014 +0000"
      },
      "message": "Remove oat file location in the image.\n\nThe oat file is now always in the same directory, and has the\nsame name as the image file. Only difference is the extension.\n\nThis also removes the need for host-prefix.\n\nChange-Id: I16d1f7aeb1d58372d41921694664e9c321afc1ad\n"
    },
    {
      "commit": "26d69ffc0ebc98fbc5f316d8cd3ee6ba5b2001ac",
      "tree": "5ac4599dd8198cf4c6e8d265bf509dcef8acd89b",
      "parents": [
        "a9242dfd0a9547141ddaba84cd4e2ea0117dff5b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Feb 27 11:27:10 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 03 17:44:15 2014 -0800"
      },
      "message": "Decrease lock uses in RosAlloc::BulkFree().\n\nRead rosalloc page map entries without a lock.\n\nDisabled for now.\n\nThis change speeds up Ritz MemAllocTest by ~25% on host and reduces\nthe GC sweep time, but somehow slows it down by ~5% on N4, which is\nwhy it\u0027s disabled for now. TODO: look into the slowdown on N4 more.\n\nBug: 8262791\nBug: 11790317\nChange-Id: I936bbee9cfbd389e70d6343503bf0923865d2a2c\n"
    },
    {
      "commit": "a071575c616f1f8f6d462cc74e04cebf1b7e276d",
      "tree": "cf5177e9a1d762f72bd8dea971091a0ee3c3ecd6",
      "parents": [
        "55a0b53de40d6445447b80aff8f0d8a480de0d77",
        "c2f4d0240b3a9b905dff5b546924865f15241481"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 04 01:15:09 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 04 01:15:10 2014 +0000"
      },
      "message": "Merge \"Fix SafePrettyTypeOf to never call VerifyObject.\""
    },
    {
      "commit": "55a0b53de40d6445447b80aff8f0d8a480de0d77",
      "tree": "6ddd6f9bc51b51dc8aeaa2fa2356dd5ef39bbe1c",
      "parents": [
        "987f55f91ddc58447077e74758e65b15f59d4b12",
        "d889178ec78930538d9d6a66c3df9ee9afaffbb4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 04 01:09:16 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 04 01:09:16 2014 +0000"
      },
      "message": "Merge \"Guard entrypoint changing by runtime shutdown lock.\""
    },
    {
      "commit": "d889178ec78930538d9d6a66c3df9ee9afaffbb4",
      "tree": "6fa250bdadcdfc1702f57500e618b51df6d46828",
      "parents": [
        "06c09f6d79e037ee00113d6289ef98226680797d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 02 13:28:37 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 03 17:08:30 2014 -0800"
      },
      "message": "Guard entrypoint changing by runtime shutdown lock.\n\nThere was a race when we changed the allocation entrypoints where a\nnew thread would be starting (Thread::Init) and initialize to the\nwrong entrypoints. Guarding allocation entrypoint changing\nwith the runtime shutdown lock fixes this race condition since\nThread::Init is only called with the runtime shutdown lock held.\n\nBug: 13250963\n\nChange-Id: I8eb209c124b6bf17020de874e1b0083f158b8200\n"
    },
    {
      "commit": "c2f4d0240b3a9b905dff5b546924865f15241481",
      "tree": "133e39fac183d8ea0818f93b8e5e88f4221b9555",
      "parents": [
        "6b8c503c6df887ff30f478ab58bdfdb223492f45"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 03 16:11:42 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 03 16:40:42 2014 -0800"
      },
      "message": "Fix SafePrettyTypeOf to never call VerifyObject.\n\nCalling VerifyObject from the segfault handler caused another\nsegfault.\n\nChange-Id: I459646594d830cbb110a4ac2bac25a7b90794854\n"
    },
    {
      "commit": "6243e0e5ae78acfa10a197d727db96c8a7f27622",
      "tree": "f31cd4187a69176fd278bdb3ab9cb56a80755df4",
      "parents": [
        "06c09f6d79e037ee00113d6289ef98226680797d"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 03 13:33:48 2014 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 03 16:27:28 2014 -0800"
      },
      "message": "GDB JIT support: move .text segment check earlier\n\nIf the file is to be purely interpreted, the .text segment will be of\nzero length and won\u0027t get a segment mapped. Currently this will cause a\ncheck failure, but we should just exit if the GDB JIT support cannot be\nenabled.\n\nChange-Id: Iea3834ee5c1313837ebcbe3b58ecd2dc924c1b1e\n"
    },
    {
      "commit": "06c09f6d79e037ee00113d6289ef98226680797d",
      "tree": "484ff4341d73a350de118872f77534303125d907",
      "parents": [
        "a9242dfd0a9547141ddaba84cd4e2ea0117dff5b",
        "763fab6aba4707f277bb1756412320f14eaf642c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Mar 04 00:24:57 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 04 00:24:58 2014 +0000"
      },
      "message": "Merge \"Include what is used\""
    },
    {
      "commit": "763fab6aba4707f277bb1756412320f14eaf642c",
      "tree": "56a8d18b1ca4e1ba0ff03b9d1202a1f548255e25",
      "parents": [
        "f796ca0715d0cb6f5afe00b3df00e80f99e186f7"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 03 16:12:05 2014 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Tue Mar 04 00:15:02 2014 +0000"
      },
      "message": "Include what is used\n\nIf you use it, you should put an #include in it.\n\nChange-Id: I8919fe2e48adb7cc19173cc44838547a2015288f"
    },
    {
      "commit": "2da882315a61072664f7ce3c212307342e907207",
      "tree": "67d777be044f5b60e2f13ab7968b63c581904ea9",
      "parents": [
        "762d4e5b9e777ae64c4ba581af9c84b78a5e96a6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 27 12:26:20 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 03 23:27:12 2014 +0000"
      },
      "message": "Initial changes towards Generic JNI option\n\nSome initial changes that lead to an UNIMPLEMENTED. Works\nby not compiling for JNI right now and tracking native methods\nwhich have neither quick nor portable code. Uses new trampoline.\n\nChange-Id: I5448654044eb2717752fd7359f4ef8bd5c17be6e\n"
    },
    {
      "commit": "762d4e5b9e777ae64c4ba581af9c84b78a5e96a6",
      "tree": "e2f7b184e0cad75db5d400ba36592eab577070ed",
      "parents": [
        "3952057fbb7b2852d58cb2283894ebbd38160ad5",
        "491ca9e75fad381468dd7f5fdbff56d1a9738dd7"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 03 23:15:42 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 03 23:15:43 2014 +0000"
      },
      "message": "Merge \"Add ART -help and -showversion\""
    },
    {
      "commit": "3952057fbb7b2852d58cb2283894ebbd38160ad5",
      "tree": "fed98ea0bab5e1e4b30674aed399d62daadeb921",
      "parents": [
        "0afc1cb469a07d47e64bb11b8b624bd99f6acf72",
        "6b8c503c6df887ff30f478ab58bdfdb223492f45"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 03 23:04:56 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 03 23:04:57 2014 +0000"
      },
      "message": "Merge \"Make ModifyCardsAtomic 64 bit safe.\""
    },
    {
      "commit": "3d3f249a63b54503b2babda69c0a50077f35a743",
      "tree": "890b38da728dd01acbba81ffd02d0de84d1120dd",
      "parents": [
        "24f11dca5b69a5b9ca976617e3da1186c959d250"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 03 13:49:09 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 03 21:56:14 2014 +0000"
      },
      "message": "Fix 64-bit build\n\nChange-Id: I14b84424f804120edf11f3d9b2bb2b9e497b429f\n"
    },
    {
      "commit": "491ca9e75fad381468dd7f5fdbff56d1a9738dd7",
      "tree": "4a88d05188aebbcbe868a27b58fc1a932f914ce2",
      "parents": [
        "82e3a8ef9cd776d7026b45fe7fb6c72bcfd61394"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Mar 02 18:24:38 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Mar 03 13:31:40 2014 -0800"
      },
      "message": "Add ART -help and -showversion\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d62149\nChange-Id: I5c21c0433f5f341f94e7d977e8d2d69cc46d6fe3\n"
    },
    {
      "commit": "24651ecef33eac8ea155ce36681ca7331340547a",
      "tree": "c911fc3bacd0cc90ba90fed117d413e1bb26ecbb",
      "parents": [
        "4e9b9be18bd3e8dd5b144869ee7142d672a1d6e5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 27 13:26:16 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 03 19:08:41 2014 +0000"
      },
      "message": "Further split of the space tests\n\nSplit the random-size allocations from the static-size allocation tests\nHave all tests have distinguished names\n\nBug: 13117676\nChange-Id: I40130b04d11715b9bd1d1ea8d76720f83af6ba82\n"
    },
    {
      "commit": "4e9b9be18bd3e8dd5b144869ee7142d672a1d6e5",
      "tree": "02358339995e1a3913eb6d5c66c36d69d8c791d0",
      "parents": [
        "f796ca0715d0cb6f5afe00b3df00e80f99e186f7",
        "563b47cc142e477da244539b1d63070425e7fd78"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 03 18:58:02 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 03 18:58:03 2014 +0000"
      },
      "message": "Merge \"Fix the bug that some compiled code was invoked with -Xint.\""
    },
    {
      "commit": "6b8c503c6df887ff30f478ab58bdfdb223492f45",
      "tree": "7068f5680d766f10f0a412fee80ca23636a2c7bf",
      "parents": [
        "1179b7b770c096e93442b9c6afea4730283256f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 02 18:01:13 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 03 10:12:52 2014 -0800"
      },
      "message": "Make ModifyCardsAtomic 64 bit safe.\n\nThere was some logic which assumed sizeof(uintptr_t) \u003d\u003d 4 bytes.\nNew method also provides a slight speedup in\nFormulaEvaluationActions.EvaluateAndApplyChanges\n\nAllocSpaceClearCards:\n\nBefore total time spent aging alloc space cards:\n914ms @ 389 GC iterations\n886ms @ 386 GC iterations\n906ms @ 413 GC iterations\n\nAfter:\n865ms @ 376 GC iterations\n857ms @ 386 GC iterations\n826ms @ 379 GC iterations\n\nChange-Id: Ie375b7e57c36a0257a4ffe5a1622ffb6754509c7\n"
    },
    {
      "commit": "ae9fd93c39a341e2dffe15c61cc7d9e841fa92c4",
      "tree": "e5f70dc307945fd510660ebde1fd259aecdf66a1",
      "parents": [
        "9fab32265f35c808b216210a8d5bebd931279041"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Feb 10 16:14:35 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sun Mar 02 11:57:10 2014 -0800"
      },
      "message": "Tell GDB about Quick ART generated code\n\nThis is actually a lot of work.  To do this, we need:\n.debug_info\n.debug_abbrev\n.debug_frame\n.debug_str\n\nThese are generated into the OAT file by OatWriter and ElfWriterQuick.\n\nSince the Quick ART runtime doesn\u0027t use dlopen to load the OAT files,\nGDB can\u0027t find this information.  Use the alternate GDB JIT interface,\nwhich can be invoked at runtime. To use this interface, an ELF image\nneeds to be built in memory.  Read the information from the OAT file,\nfixup the addresses to point to the real locations, add a symbol table\nto hold the .text symbol, and then let GDB know about the information,\nwhich will be read from the runtime address space.\n\nThis is quite primitive now, and could be cleaned up considerably.  It\nprobably needs symbol table entries for the methods, and descriptions of\nparameters and return types.\n\nCurrently only supported for X86.\n\nThis defaults to enabled for debug builds. Added dexoat --gen-gdb-info\nand --no-gen-gdb-info flags to override.\n\nChange-Id: I4d18b2370f6dfaa00c8cc1925f10717be3bd1a62\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "b48b9eb6d181a1f52e2e605cf26a21505f1d46ed",
      "tree": "117d99c16f201b2f14adfe0922e56b9ff433c133",
      "parents": [
        "3c506f9877b4a106d93169b6bb5610b24a84d61c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 28 16:20:21 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 28 19:03:57 2014 -0800"
      },
      "message": "Fix clang to compile and run host tests.\n\nDon\u0027t use the computed goto interpreter with clang 3.4 as it causes compilation\nto hang.\nAvoid inclusion of LLVM_(HOST|DEVICE)_BUILD_MK except for with portable as it\nsets clang incompatible cflags.\nMost fixes are self-evident, for the quick dex file method inliner the enums\nwere being used with ostreams, so fix the enums and operator out python script\nto allow this.\nNote this change effects portable but this is untestable as portable was broken\nby ELF file and mc linker changes.\n\nChange-Id: Ia54348f6b1bd3f76d3b71c6e8c5f97626386b903\n"
    },
    {
      "commit": "3c506f9877b4a106d93169b6bb5610b24a84d61c",
      "tree": "11e8332eb4dd3fec2074dd9859719621aa5d522d",
      "parents": [
        "8fcda9b52019128cec2d35f010c3fb7aac89cf79",
        "f9c612f2e657adb0764285256b228622e0789254"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Mar 01 01:42:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 01 01:42:50 2014 +0000"
      },
      "message": "Merge \"Support in VMRuntime for allocating \"unpadded\" arrays.\""
    },
    {
      "commit": "563b47cc142e477da244539b1d63070425e7fd78",
      "tree": "3da2bb5ccdcd16f7104211855d47ece3f1d24767",
      "parents": [
        "e58d0203351d9740a8f74a140fdee342168e6552"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 28 17:18:37 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 28 17:34:30 2014 -0800"
      },
      "message": "Fix the bug that some compiled code was invoked with -Xint.\n\nSome compiled code (probably static methods) is still being invoked\nwith -Xint. Added an assert to detect this case.\n\nBug: 13250375\nChange-Id: Iecfe8ef40c6c326962593db78e6e1d9f1c93842e\n"
    },
    {
      "commit": "f9c612f2e657adb0764285256b228622e0789254",
      "tree": "c4a94053d07fc089703694ba1406a295333fecad",
      "parents": [
        "95c2e440582f31f77a047797a5e2be4af53a8bfa"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 27 10:58:17 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Feb 28 17:13:09 2014 -0800"
      },
      "message": "Support in VMRuntime for allocating \"unpadded\" arrays.\n\nBug: 13028925.\n\nChange-Id: I0a53645f0468aaf44d38aabe016cb610fcfefaf7\n"
    },
    {
      "commit": "9e8b367100da968e0a2fd5e0db6330d108421203",
      "tree": "7ad0fd61116de65f91658817f4e8a93e204baf59",
      "parents": [
        "5a40712f67341a8b919afbe6a6d462e8f9044767"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 28 17:06:40 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 28 17:06:40 2014 -0800"
      },
      "message": "Add VerifyObject calls to JniMethodEndWithReference.\n\nBug: 12934910\nChange-Id: I9d0926100c5e08dfbaea8926e8ac7cdd4e7dfe1c\n"
    },
    {
      "commit": "15d3402bbf8265eb1165694da2e4117eb128f3bc",
      "tree": "eea2dae3c338d3070f63e086fa2a3669a9204873",
      "parents": [
        "ba8fdcc10193cdfa825c973d740b7ebf6dec2d89"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 26 17:16:38 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 28 17:02:17 2014 -0800"
      },
      "message": "Add custom SIGSEGV handler to help find heap corruption.\n\nThe new signal handler prints heap diagnostics when you get a SIGSEGV.\nAdded a fault message member in runtime which is modifiable by\nRuntime::SetFaultMessage. When you get a SIGSEGV it will print out\nwhatever is stored in this string as well as the normal information.\nThis is useful for debugging heap corruption since it lets you see\nwhich threads were in which methods when the last GC occured.\n\nAdded some smarter object dumping logic when the faulting address is\nin the heap.\n\nBug: 12934910\n\nChange-Id: Ia72be2c39f70ad711cbd746d66fad2b617d5d29f\n"
    },
    {
      "commit": "ba8fdcc10193cdfa825c973d740b7ebf6dec2d89",
      "tree": "2bc8ca2a0a8d7cde1acfae286bb17219546eae50",
      "parents": [
        "1b22ddf2efe48ae1cbcdc34468037eca6072fe5c",
        "13db9aa2d23e705d49c777abb45ba47e3747d873"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Feb 28 19:41:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 28 19:41:53 2014 +0000"
      },
      "message": "Merge \"Avoid tripping up debuggered with the fatal crash abort\""
    },
    {
      "commit": "8580154e01910459d99074ef10584b8d647d912f",
      "tree": "da6e717eb6f77c8cf959a9b0d1f8073f63d4e9fd",
      "parents": [
        "b63841060cdca9603bf72e737de52a9cec0d6434"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 27 18:06:26 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 27 18:08:12 2014 -0800"
      },
      "message": "Fix 080-oom-throw with semispace GC.\n\nFixes a moving GC related error in array allocations where we didn\u0027t\nconsider that the array class might have moved.\n\nChange-Id: Iefe8bdc06b51ec2329a7984359f3da7fda479fec\n"
    },
    {
      "commit": "b63841060cdca9603bf72e737de52a9cec0d6434",
      "tree": "cd1d140413c925a99c08c722e12c92fcf6b6c9fc",
      "parents": [
        "7a5d1c0a7b2923f71a9b0a322ef9839bd07b4868",
        "b1f1d642093418612c0a27ce4203b421bb6eb767"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Feb 27 23:27:23 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 27 23:27:23 2014 +0000"
      },
      "message": "Merge \"Workaround for range ops spanning vreg gap\""
    },
    {
      "commit": "7a5d1c0a7b2923f71a9b0a322ef9839bd07b4868",
      "tree": "f31c2c1f429bf1cdfa7e6fa8ae125240c594a6c7",
      "parents": [
        "7aa9ac0b25c9f391fd87f72edbf14baab9da918f",
        "a2806550cefb7c70781d8ee6279e6ad5769804cb"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 27 22:53:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 27 22:53:09 2014 +0000"
      },
      "message": "Merge \"Remove some stray stringpiece.h includes\""
    },
    {
      "commit": "b1f1d642093418612c0a27ce4203b421bb6eb767",
      "tree": "bb30f5246ec96d838e493aadccfc604d305f5a39",
      "parents": [
        "7aa9ac0b25c9f391fd87f72edbf14baab9da918f"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Feb 27 12:55:32 2014 -0800"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Feb 27 14:51:37 2014 -0800"
      },
      "message": "Workaround for range ops spanning vreg gap\n\nThe Dalvik runtime model includes two stacks: an interpreted stack\nholding the Dalvik virtual registers, and a native stack used by\nthe runtime system itself.  The interpreted stack closely follows\nthe Dalvik byte-code frame layout and invoke model, in which a\ncallee\u0027s incoming argument are physically located in the out region\nof the caller\u0027s frame.  Further, the non-argument vregs of a method\nare contiguous with its in argument region.\n\nThe Art runtime model retains the notion of a callee\u0027s incoming\narguments being physically located in the out region of a caller\u0027s\nframe.  However, because Art uses a single-stack model, a method\u0027s\nincoming argument region is not contiguous with its non-argument\nvirtual register storage.  There is a gap between them that is used\nto store the native return PC of the caller, as well as the callee\nsave register spill region.\n\nThe Dalvik\u0027s bytecode instruction set includes several \"range\"\nformat instructions (invoke-static-range, fill-array-data-range,\netc.).  These instructions define a contiguous range of virtual\nregisters as arguments.  Given the current Dalvik bytecode definition,\nthere is no rule preventing an operand range from spanning the\nincoming argument and normal vregs.  In Dalvik, this would not have\nbeen an issue.  In Art, it adds complexity to correctly copy a\nrange of arguments with a potential gap somewhere in the middle.\n\nWe don\u0027t believe this is a common situation.  This workaround CL\nensures correct behavior by detecting the spanning case and falling\nback to the interpreter.\n\nIf it turns out this is a more common case than expected, compiler\nsupport can be added.  More likely, though, is that we will disallow\nspanning ranges in a future revision of the bytecode (going forward,\nexisting range-spanning bytecode will continue to be supported).\n\nFix for internal tracking bug 13216301\nFix for external bug https://code.google.com/p/android/issues/detail?id\u003d66371\n\nChange-Id: I9562aa5ab0aae8ebf333c8b72caac8a1be33ab3c\n"
    },
    {
      "commit": "13db9aa2d23e705d49c777abb45ba47e3747d873",
      "tree": "e170ee5e06ec205baa465083c4e213983a1ccc54",
      "parents": [
        "a2806550cefb7c70781d8ee6279e6ad5769804cb"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 27 12:44:32 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 27 12:44:32 2014 -0800"
      },
      "message": "Avoid tripping up debuggered with the fatal crash abort\n\nBug: 13226780\nChange-Id: Ia876d1dc7774713ec49fb8e6b0625f118fffb198\n"
    },
    {
      "commit": "a2806550cefb7c70781d8ee6279e6ad5769804cb",
      "tree": "464c0dd8018379c65db92772644de5d426f2949d",
      "parents": [
        "95c2e440582f31f77a047797a5e2be4af53a8bfa"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 27 12:29:32 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 27 12:29:32 2014 -0800"
      },
      "message": "Remove some stray stringpiece.h includes\n\nBug: 13186058\nChange-Id: I2cb313425864a5d4e988fcf71a99c60ad63c63fb\n"
    },
    {
      "commit": "bd0a65339a08dc28c6b56d2673f1f13b6bddd7aa",
      "tree": "bf78a1fc3ca89fd753518d351b5d3f18ed2906b2",
      "parents": [
        "e58d0203351d9740a8f74a140fdee342168e6552"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 27 11:14:21 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 27 11:50:09 2014 -0800"
      },
      "message": "Enable large object space for command line runs.\n\nAdded a dynamic large_object_threshold_ variable which is max int\nwhen the large object space is disabled.\n\nNo longer clear timing logger timings after zygote creation since\nit is not required and removes the boot semispace timings.\n\nChange-Id: I693865f4699cc32381199377239854c6ec42f37e\n"
    },
    {
      "commit": "e58d0203351d9740a8f74a140fdee342168e6552",
      "tree": "e28fa7d932456baab6b25b127fa386f65eaae7f5",
      "parents": [
        "95c2e440582f31f77a047797a5e2be4af53a8bfa",
        "55871bf5277f8e8041f1303a416be2cd9215aa07"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 27 18:56:00 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 27 18:56:01 2014 +0000"
      },
      "message": "Merge \"Add null check in artQuickResolutionTrampoline\""
    },
    {
      "commit": "55871bf5277f8e8041f1303a416be2cd9215aa07",
      "tree": "3c8699c8910738552d9a5ee14a2e856747c30a87",
      "parents": [
        "4f2573b38f7b0bca027d8540c9b22abe8ba7b7bc"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 27 10:24:50 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 27 10:34:48 2014 -0800"
      },
      "message": "Add null check in artQuickResolutionTrampoline\n\nAlso fix possible compaction bug around ResolveMethod.\n\nBug: 13221223\nChange-Id: I0495eaee8d5f9ae5da0a87c4800a66cd04dc4aa7\n"
    },
    {
      "commit": "12d16ad924836cad46419a0f7eb57e13363139ef",
      "tree": "12a7ee32ff97c82cb86dc52b5a6fe66ca16ca37a",
      "parents": [
        "b565506a63e75dac4a8bb9dd54dabf5259e5b95f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 27 13:42:09 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 27 13:47:47 2014 +0000"
      },
      "message": "Clean up MappingTable::FirstDexToPcPtr().\n\nUse DecodeSignedLeb128() to skip over dex PCs. This is just\nto be consistent, the number of bytes skipped is the same\nas with DecodeUnsignedLeb128() and the result is ignored.\n\nChange-Id: Ib5198b0367030957a6e2c650200121c2d828c0a6\n"
    },
    {
      "commit": "3d86fbe5413142342554c2414b5b271163ad98fe",
      "tree": "cbcd581c0dc17769bea40284fb42d5cf32a9c93e",
      "parents": [
        "7113d06385902f63a3b227c8d5c0d7d8f36de4b0",
        "659d87d4a61f83f5582d816ee0bc94f00e19b46c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 27 08:52:10 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 27 08:52:11 2014 +0000"
      },
      "message": "Merge \"art: Fix build errors for x86_64 target\""
    },
    {
      "commit": "a55cf41c9d1da7ee8b2f63974dedfb484042dd03",
      "tree": "56ec8209ebb303d83ac519ab8ac64d235b1069ab",
      "parents": [
        "f709d7d7c461b0e0f96510a84ef1d8046ca43d79"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 27 00:31:26 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 27 00:31:26 2014 -0800"
      },
      "message": "Ensure usable space data is zeroed in arrays.\n\nAddress other outstanding review comments.\n\nChange-Id: Iaffe04de080772a0d0c5fd973bcac0e23c8c3e25\n"
    },
    {
      "commit": "659d87d4a61f83f5582d816ee0bc94f00e19b46c",
      "tree": "547c08ad5dabfe64e0941bacf9a7ea7bd354aab7",
      "parents": [
        "4f2573b38f7b0bca027d8540c9b22abe8ba7b7bc"
      ],
      "author": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Thu Feb 27 14:23:11 2014 +0700"
      },
      "committer": {
        "name": "Dmitry Petrochenko",
        "email": "dmitry.petrochenko@intel.com",
        "time": "Thu Feb 27 14:31:38 2014 +0700"
      },
      "message": "art: Fix build errors for x86_64 target\n\nFixes build issues introduced by multilib, CompilerOptions and ElfFile patches.\n\nChange-Id: Ic05d149e3c7a1e644d0cb50cc7c3599025c90bdf\nSigned-off-by: Dmitry Petrochenko \u003cdmitry.petrochenko@intel.com\u003e\n"
    },
    {
      "commit": "f709d7d7c461b0e0f96510a84ef1d8046ca43d79",
      "tree": "a23d1c015af393683ce59526926dffa0559f2ed0",
      "parents": [
        "4f2573b38f7b0bca027d8540c9b22abe8ba7b7bc",
        "4554bfdc2859712a763a12e35a4176914fc7c994"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Feb 27 07:31:23 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 27 07:31:23 2014 +0000"
      },
      "message": "Merge \"Incorrect result of compareTo between empty and non-empty strings\""
    },
    {
      "commit": "3fc4ff7c219b8e2261b199520942416d21f53874",
      "tree": "0bca4570dc59a72ed6dd46864cc18666e5caa8ae",
      "parents": [
        "57e18d5840e5342279809cc8b2d481076ae53728",
        "c1409450dece36852a6e67ec8d843f3da148faf3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Feb 27 00:58:51 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 27 00:58:52 2014 +0000"
      },
      "message": "Merge \"ElfFile should protect itself from bad input\""
    },
    {
      "commit": "c1409450dece36852a6e67ec8d843f3da148faf3",
      "tree": "ac0e029491f58970712be9012e24fb502dc29721",
      "parents": [
        "7f0ff7e7fff82566bca5f9353eaa2c4f81f0671a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 26 14:06:23 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 26 16:57:04 2014 -0800"
      },
      "message": "ElfFile should protect itself from bad input\n\nBug: 13207536\nChange-Id: Ia0406a7e8fce4030570503471e003d4da581652f\n"
    },
    {
      "commit": "6fac447555dc94a935b78198479cce645c837b89",
      "tree": "bcf1449999084b1e1dec3dac287f6f3670d7eda0",
      "parents": [
        "7f0ff7e7fff82566bca5f9353eaa2c4f81f0671a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 25 17:01:10 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 26 16:38:22 2014 -0800"
      },
      "message": "Make allocations report usable size.\n\nWork-in-progress to allow arrays to fill usable size. Bug: 13028925.\nUse C++11\u0027s override keyword on GCC \u003e\u003d 2.7 to ensure that we override GC and\nallocator methods.\nMove initial mirror::Class set up into a Functor so that all allocated objects\nhave non-zero sizes. Use this property to assert that all objects are never\nlarger than their usable size.\nOther bits of GC related clean-up, missing initialization, missing use of\nconst, hot methods in .cc files, \"unimplemented\" functions that fail at\nruntime in header files, reducing header file includes, move valgrind\u0027s space\ninto its own files, reduce number of array allocation routines.\n\nChange-Id: Id5760041a2d7f94dcaf17ec760f6095ec75dadaa\n"
    },
    {
      "commit": "a1ce1fef2d49d1d537776a5308ace7102a815fe5",
      "tree": "a1afe850d9ebd21f4b751eb68e1ec3dc60dab001",
      "parents": [
        "930f7b843ddc6e6530439d3fdb0e2133a6292f1e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Feb 24 23:23:58 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 26 13:17:44 2014 -0800"
      },
      "message": "Split up CommonTest into CommonRuntimeTest and CommonCompilerTest\n\nChange-Id: I8dcf6b29a5aecd445f1a3ddb06386cf81dbc9c70\n"
    },
    {
      "commit": "930f7b843ddc6e6530439d3fdb0e2133a6292f1e",
      "tree": "19aab2c810b069df6c7ece3fe341dcde222c9a5b",
      "parents": [
        "d5846e4b9d654c2a31e4affa3c22c835d2f5e2d6",
        "9d04a20bde1b1855cefc64aebc1a44e253b1a13b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Feb 26 19:15:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 26 19:15:05 2014 +0000"
      },
      "message": "Merge \"(Experimental) Add Brooks pointers.\""
    },
    {
      "commit": "4554bfdc2859712a763a12e35a4176914fc7c994",
      "tree": "6ec9fde68d61fbf5e33955a54755d3e346b38bb5",
      "parents": [
        "ef2cc5a9c6e508a3e8b24d04ca35f7422f27e112"
      ],
      "author": {
        "name": "Alexei Zavjalov",
        "email": "alexei.zavjalov@intel.com",
        "time": "Wed Feb 26 17:28:35 2014 +0700"
      },
      "committer": {
        "name": "Alexei Zavjalov",
        "email": "alexei.zavjalov@intel.com",
        "time": "Thu Feb 27 00:01:00 2014 +0700"
      },
      "message": "Incorrect result of compareTo between empty and non-empty strings\n\nCurrent implementation of the Strings.compareTo() handles the case when\nempty string compares to non-empty string in the wrong way.\n\nThis patch adds handler for such cases.\n\nChange-Id: I35cc2cfd5141551d6da65748c44b59e64a3f8117\nSigned-off-by: Alexei Zavjalov \u003calexei.zavjalov@intel.com\u003e\n"
    },
    {
      "commit": "92246bb5d6caae4fdb09cd3c8c10d78e41932d45",
      "tree": "632ddc6aa34d4c5941d3f65f2e4a8f49a5a05272",
      "parents": [
        "ef2cc5a9c6e508a3e8b24d04ca35f7422f27e112"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 25 18:22:39 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 25 18:27:30 2014 -0800"
      },
      "message": "Fix moving GC bugs in EnterInterpreterFromInvoke.\n\nCalling EnterInterpreterFromInvoke on a static method could cause\nclass initialization and trash the args before calling the method.\n\nChange-Id: If053d46dd6db403c8ebd1a816c20635194dd0e99\n"
    },
    {
      "commit": "eb7bbad163ce7a2c60bba6e0d3d7488e5cfb2c05",
      "tree": "58314ba6f2a3db5f922539566cdedef6d423d287",
      "parents": [
        "678d6f42c4805d4989063a00c26776a494a80175"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 25 15:52:46 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 25 15:54:15 2014 -0800"
      },
      "message": "Remove duplicate card pre-cleaning.\n\nSticky GC was pre-cleaning cards twice since MarkingPhase calls\nMarkReachableObjects.\n\nChange-Id: I61572b79c855bcd02085a1f7ff96dd0089db95fb\n"
    },
    {
      "commit": "9d04a20bde1b1855cefc64aebc1a44e253b1a13b",
      "tree": "85b8315677c3d6545ac6c8b27db7cb00b82e68b7",
      "parents": [
        "0f8aa6b38f204ccacd3ac12bb844e628cec2215b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jan 31 13:35:49 2014 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Feb 25 13:56:48 2014 -0800"
      },
      "message": "(Experimental) Add Brooks pointers.\n\nThis feature is disabled by default.\n\nVerified that the Brooks pointers are installed correctly by using the\nCMS/SS collectors.\n\nChange-Id: Ia9be9814ab6e29169ac85edc4792ce8c81d552a9\n"
    },
    {
      "commit": "678d6f42c4805d4989063a00c26776a494a80175",
      "tree": "0f7488219a03f7ead38e6c374446c7afde06e3c4",
      "parents": [
        "b55c898c6e3a1569a03cedbfc6dbf93d8d8ff3dd",
        "8d7672e476a526aa6205a008b5a06c8216342ac6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 25 20:29:47 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 20:29:48 2014 +0000"
      },
      "message": "Merge \"Print message when throwing new exception with pending exception.\""
    },
    {
      "commit": "0f8aa6b38f204ccacd3ac12bb844e628cec2215b",
      "tree": "1eb278a7636f9541825be523f1217399d195dadc",
      "parents": [
        "a028595f52b61e855d6dcf75f6bdf129d5568895",
        "385de73a252806b212028c4aaccb86c296f2facc"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Feb 25 20:09:49 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 20:09:49 2014 +0000"
      },
      "message": "Merge \"Fix the memory protection issue in RosAllocSpace::CreateFromMemMap()\""
    },
    {
      "commit": "4cf5e57b5ec366b8730dacd45e8011e5f9b07b6d",
      "tree": "4830199916f9f0f507af7a7c0b959e2e881a0aeb",
      "parents": [
        "51c89a953df74c872993ea9a66c3ec8133b132da"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 25 11:47:48 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 25 11:51:26 2014 -0800"
      },
      "message": "Move waitpid(2) includes to art::Exec implementation\n\n(cherry picked from commit 446a13ff04dae7ef9c90584e7cf8e834ee841681)\n\nChange-Id: Id5fe3dd8e6c4cef953c39b00f2a53b23da5a6247\n"
    },
    {
      "commit": "51c89a953df74c872993ea9a66c3ec8133b132da",
      "tree": "1e853b72bc8bc3cd31c9ae1ada56a2654b7bbdaa",
      "parents": [
        "dc7ea119c7c3e8a668527a6c53f445ced647c02c",
        "35d8b8e0f6d174108b5e94ec2e49cf3c6a0c72c3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 25 19:49:11 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 19:49:12 2014 +0000"
      },
      "message": "Merge \"Avoid going through char* for std::string API\""
    },
    {
      "commit": "dc7ea119c7c3e8a668527a6c53f445ced647c02c",
      "tree": "d395839dd94d63ce050fb0120025f7f604644d5a",
      "parents": [
        "efeedc2f56a7525cc5958a429636a74c7c8b77d3",
        "2e589aa58a1372909f95e731fd6b8895f6359c3a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 25 19:38:22 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 19:38:22 2014 +0000"
      },
      "message": "Merge \"Encode VmapTable entries offset by 2 to reduce size.\""
    },
    {
      "commit": "35d8b8e0f6d174108b5e94ec2e49cf3c6a0c72c3",
      "tree": "881aa821d6393f6dc8c0b9c5c7d9e4f799010a83",
      "parents": [
        "efeedc2f56a7525cc5958a429636a74c7c8b77d3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 25 10:51:11 2014 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 25 11:26:03 2014 -0800"
      },
      "message": "Avoid going through char* for std::string API\n\nBug: 13186058\n\n(cherry picked from commit 14ae4a873e91ae8cb1c00013579b5b058268879d)\n\nChange-Id: Ib529cc10abc2d413e9da65c043dbc2638b734acd\n"
    },
    {
      "commit": "c22c59ef8513b4cbbfd25073d1afbf58196b522a",
      "tree": "416fd01407baa5f4ee5f0f64ea8c1b328965a7b5",
      "parents": [
        "661425e1f90d4f4ed44c66f5e74f48b92a3798df"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 24 15:16:06 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 25 11:10:31 2014 -0800"
      },
      "message": "Remove started runtime check in RevokeAllThreadLocalAllocationStacks\n\nThis check occasionally caused some thread local allocation stacks\nto incorrectly not get revoked when multiple threads were allocating\nwithout a started runtime. This showed up in image_test with\ncompaction enabled when we were initializing classes in the compiler\ndriver.\n\nChange-Id: I7f28d072feea333c2503e35265ba25c51a6308fe\n"
    },
    {
      "commit": "2e589aa58a1372909f95e731fd6b8895f6359c3a",
      "tree": "6337f7e4765a6c6c1ba5d21e9f3f7c4ebe4971ee",
      "parents": [
        "661425e1f90d4f4ed44c66f5e74f48b92a3798df"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 25 17:53:53 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 25 19:03:17 2014 +0000"
      },
      "message": "Encode VmapTable entries offset by 2 to reduce size.\n\nWe\u0027re using special values 0xffff and 0xfffe for an\nfp register marker and for method pointer, respectively.\nThese values were being encoded as 3 bytes each and\nthis changes their encoding to 1 byte.\n\nBug: 9437697\nChange-Id: Ic1720e898b131a5d3f6ca87d8e1ecdf76fb4160a\n"
    },
    {
      "commit": "8d7672e476a526aa6205a008b5a06c8216342ac6",
      "tree": "44881b68a2a05b7dae78beb30c7589627781c0f0",
      "parents": [
        "661425e1f90d4f4ed44c66f5e74f48b92a3798df"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 25 10:57:16 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 25 11:01:01 2014 -0800"
      },
      "message": "Print message when throwing new exception with pending exception.\n\nUseful to see what the new exception is.\n\nBug: 12957138\nChange-Id: I751b3a9b0b5d57d72f15d3ed7fa746a1991b181c\n"
    },
    {
      "commit": "aaea7343831b64f4351c9abc7493ec062adfaf53",
      "tree": "9ace06bf09aecdce840d590d9673880461287bdf",
      "parents": [
        "bdbc11899d04b284c0ec4b055e1a009c7034aaa5"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Feb 25 15:10:04 2014 +0100"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Feb 25 18:06:04 2014 +0100"
      },
      "message": "Fix debugger disconnection crash.\n\nFixes a check failure where we uninstall instrumentation while we did not\ninstall it before. This happens when the JDWP thread stops with no debugger\nconnected.\n\nBug: 13168905\nChange-Id: I83766ced79721747e5a7aaf27ce01a853ad55f03\n"
    },
    {
      "commit": "fffb0b7e23796e5470f4fab4611f2fcc4a16979c",
      "tree": "3c2fd045f635a0511149272af9ff55a01a31b83c",
      "parents": [
        "a0c9b085d4ecf90ca3aa1252e81e65072b377ca4",
        "6449c62e40ef3a9bb75f664f922555affb532ee4"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 25 04:42:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 04:42:54 2014 +0000"
      },
      "message": "Merge \"Create CompilerOptions\""
    },
    {
      "commit": "a0c9b085d4ecf90ca3aa1252e81e65072b377ca4",
      "tree": "01b9b556f274c900bee79cfb8846bc9b854118e1",
      "parents": [
        "35312f46b1d71ad7f092dbdbc913c0846835386e",
        "9837939678bb5dcba178e5fb00ed59b5d14c8d9b"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Feb 25 02:51:02 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 02:51:02 2014 +0000"
      },
      "message": "Merge \"Avoid std::string allocations for finding an array class.\""
    },
    {
      "commit": "9837939678bb5dcba178e5fb00ed59b5d14c8d9b",
      "tree": "00f0e6b54d7c4cac78a02752e268724157e50b6e",
      "parents": [
        "3fcf18e25241253f23efbeebe77b2a4c4a7c54d3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 24 16:53:16 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Feb 24 18:47:23 2014 -0800"
      },
      "message": "Avoid std::string allocations for finding an array class.\n\nIntroduce ClassLinker::FindArrayClass which performs an array class lookup\ngiven the element/component class. This has a 16 element cache of recently\nlooked up arrays.\nPass the current thread to ClassLinker Find .. Class routines to avoid calls\nto Thread::Current().\nAvoid some uses of FindClass in the debugger where WellKnownClasses is a\nfaster and more compacting GC friendly alternative.\n\nChange-Id: I60e231820b349543a7edb3ceb9cf1ce92db3c843\n"
    },
    {
      "commit": "385de73a252806b212028c4aaccb86c296f2facc",
      "tree": "5e270c355e06a3f84b5aa4884b8780f64eb92059",
      "parents": [
        "3fcf18e25241253f23efbeebe77b2a4c4a7c54d3"
      ],
      "author": {
        "name": "lzang1",
        "email": "lin.zang@intel.com",
        "time": "Fri Feb 21 14:15:01 2014 +0800"
      },
      "committer": {
        "name": "lzang1",
        "email": "lin.zang@intel.com",
        "time": "Tue Feb 25 10:32:24 2014 +0800"
      },
      "message": "Fix the memory protection issue in RosAllocSpace::CreateFromMemMap()\n\nFrom the implementation of RosAllocSpace::CreateFromMemMap(), the memory\nbeyond the starting_size should be protected.\nBut the argument of mprotect is wrongly set to be \"capacity -\ninitial_size\", logically it should be \"capacity - starting_size\"\nThis patch also fix the same issue in dlmalloc\n\nChange-Id: Icbd4ba790f344d4fa79d9896657f638a03d6f8aa\nAuthor: Lin Zang \u003clin.zang@intel.com\u003e\nSigned-off-by: Jack Ren \u003cjack.ren@intel.com\u003e\nSigned-off-by: Bruce Beare \u003cbruce.j.beare@intel.com\u003e\n"
    },
    {
      "commit": "35312f46b1d71ad7f092dbdbc913c0846835386e",
      "tree": "2ee9ea9deb25e2beeabf8af26e4292310c0f8a95",
      "parents": [
        "ef02c72d9fbd8c88e125052a34c5d57f79bd84dc",
        "dda54f59271464b5a72bf4cde6d9010e8dc1f337"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 25 02:15:20 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 02:15:20 2014 +0000"
      },
      "message": "Merge \"Card pre-cleaning.\""
    },
    {
      "commit": "dda54f59271464b5a72bf4cde6d9010e8dc1f337",
      "tree": "7f5e05654a2fa4d3368d87539ec928a095f617a6",
      "parents": [
        "3fcf18e25241253f23efbeebe77b2a4c4a7c54d3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 24 09:58:40 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 24 18:12:28 2014 -0800"
      },
      "message": "Card pre-cleaning.\n\nWe now pre-clean cards before the pause in the concurrent mark sweep\ncollectors. This provides substantial a pause time reduction for GC\niterations which have a lot of dirty cards. The only downside is a\nslight GC time increase for large heaps.\n\nBenchmark FormulaEvaluationActions.EvaluateAndApplyChanges:\n\nBefore:\nPartial average pause: 5.47ms\nSticky average pause: 2.91ms\nTotal GC time: 25.8s\n\nAfter:\nPartial average pause: 1.98ms\nSticky average pause: 1.66ms\nTotal GC time: 27.0s\n\nBenchmark score difference in the noise.\n\nChange-Id: If9f01f8c1501f122e19432438108d48e723b332e\n"
    }
  ],
  "next": "6449c62e40ef3a9bb75f664f922555affb532ee4"
}
