)]}'
{
  "log": [
    {
      "commit": "756ee4e090bc1e1812b41fb7b4661df601a32ef9",
      "tree": "b456ca4a582d5e75d20b418ab4c27ed56b46f40d",
      "parents": [
        "eeb9888421b696990f45b89286ad9d0908c70a69"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 15:46:12 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 18:14:18 2013 -0700"
      },
      "message": "Find OatDexFile by DexFile name and checksum, not just checksum\n\nBug: 10614658\nChange-Id: Ie0b5a34fd396b6299000c37909108c5e7e6ab80f\n"
    },
    {
      "commit": "7c3d13aebdd8611cae58a1048bffb13cbdc465cb",
      "tree": "23f2415bb38e77b0d53c1de06c37a133c7b08e51",
      "parents": [
        "f15242943a7a836966cd521e3095a4b731695c71"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 04 17:15:11 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 03 17:00:39 2013 -0700"
      },
      "message": "Use file magic to determine file type, not file extension.\n\nBug: 10614658\nChange-Id: I9156dfca78ac8cd1c62fb258825cc791629270a4\n"
    },
    {
      "commit": "b00309f1aece094de16e0e542cc30cb2e27f2326",
      "tree": "527686184d3f77ca160efd7b88c4a08eb8ed7fc6",
      "parents": [
        "eb1efc4575e93543ed459c7ee5c6c36109e69b5f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 30 14:23:30 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 30 14:34:41 2013 -0700"
      },
      "message": "Fix OatFile leak causing dlopen to return stale OatFile contents\n\nBug: 10917637\nChange-Id: If6b7bb8dd9c7aa3d870bd43964f31512385c5d39\n"
    },
    {
      "commit": "abcf7ae8deba4ee81dec44f3d1a2f0ecaf032859",
      "tree": "4f8145f8c5ba6cf29e151e88ea31dafb2fecdabb",
      "parents": [
        "cb5f5e53b580023fa2c1d8235c2e9aa1ff67d1dc"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 23 22:19:52 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 23 22:19:52 2013 -0700"
      },
      "message": "Fix overly restrictive assert\n\nFound by 084-class-init on a clean build.\n\nBug: 10750824\nChange-Id: I7cf1ee190cbddbda98132511527eab36c36da523\n"
    },
    {
      "commit": "cb5f5e53b580023fa2c1d8235c2e9aa1ff67d1dc",
      "tree": "90033a1839d51e8b54a095aa896dc9295ccab959",
      "parents": [
        "ee39a10e45a6a0880e8b829525c40d6055818560"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 23 17:48:16 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 23 18:50:52 2013 -0700"
      },
      "message": "Make sure CompilerDriver actually resolves types\n\nBug: 10750824\nChange-Id: Ie61881f24196e851d87822798a7e9abdf9678aa3\n"
    },
    {
      "commit": "ee39a10e45a6a0880e8b829525c40d6055818560",
      "tree": "88cf2b0765ffc8cc96aa2f895254fbf799d0eb40",
      "parents": [
        "7d690ba929a2a02e2b6344749561d49e2c0d55d2"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Sep 19 02:56:49 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Sep 21 22:00:10 2013 -0700"
      },
      "message": "Use class def index from java.lang.Class.\n\nBug: 10244719\nThis removes the computation of the dex file index, when necessary this is\ncomputed by searching the dex file. Its only necessary in\ndalvik.system.DexFile.defineClassNative and DexFile::FindInClassPath, the\nlatter not showing up significantly in profiling with this change.\n\n(cherry-picked from 8b2c0b9abc3f520495f4387ea040132ba85cae69)\nChange-Id: I20c73a3b17d86286428ab0fd21bc13f51f36c85c\n"
    },
    {
      "commit": "c4621985bdfc2b27494087e5dee65a6d0cc5a632",
      "tree": "d8165f5b8d337e73942ee29d66fb40585dc7caf1",
      "parents": [
        "5666afd6854b5634ae741dc8a3a633fc47d52168"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 16 19:43:47 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 17 10:03:00 2013 -0700"
      },
      "message": "Fix race in root marking.\n\nThere was a race which caused the class linker / intern table to not\nbecome dirty after adding a root. We now guard the is dirty flag by\nthe corresponding locks to prevent this from occuring. This was\ncausing roots to be occasionally missed.\n\nAlso fixes the bug where we occasionally scan more cards than\nneeded.\n\nBug: 10626133\n\nChange-Id: I0f6e72d92035ff463954d66988ef610ea0df61be\n"
    },
    {
      "commit": "a436fde2762664a3ecdda5eefcadd20b2e104f59",
      "tree": "22431bc387483220728a3bc99ec7314abce3ad60",
      "parents": [
        "10cc81056261625902a8a073bafb9f499eec4ff7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 27 23:34:06 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 27 23:37:33 2013 -0700"
      },
      "message": "Handle OOMEs in class linker with grace.\n\nCheck for OOMEs and then fail due to them in class loading.\nMake the compiler driver spot OOMEs during resolution and abort compilation to\navoid needless GC thrash then eventual death.\nAllocate the pre-allocated OOME during Runtime::Init as Runtime::Start isn\u0027t\ncalled in the context of the compiler/tools.\n\nChange-Id: Id72199d0fe82001b5bf22758b3cdc9cc4b8efbb9\n"
    },
    {
      "commit": "7dfb28c066159e6cde8181720f0c451a700ef966",
      "tree": "5279fb95da015365846eb48d931b9355b540cb9e",
      "parents": [
        "a7e885013753df3f07bf038a8c4a187fb97c78e1"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Aug 22 08:18:36 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 23 10:49:29 2013 -0700"
      },
      "message": "Don\u0027t scan image space when starting runtime.\n\nBug 10432288.\nFind Classes and Strings from dex caches lazily rather than when the image is\nloaded.\nMake class status changes do notifies when there can be waiters.\nFor Class lookup there\u0027s a pathology if we always search dex caches and\nso after 1000 failures move all classes into the class table.\nBe consistent in using \"const char*\" for class linker descriptors as this\nmost easily agrees with the type in the dex file.\nImprove the intern run-test so that it has a case of a literal contained in the\nimage.\nModify image_test to allow any valid lock word rather than expecting 0, ideally\nwe wouldn\u0027t see inflated monitors but we do due to NotifyAll (see bug 6961405).\n\nChange-Id: Ia9bfa748eeccb9b4498784b97c6823141b1f6db8\n"
    },
    {
      "commit": "6d3f72ce67d012318dee23c86a7464a9440fabff",
      "tree": "e9fe8daf9dc000e748d411028d806c3fad37467a",
      "parents": [
        "efd441d938d12961dca7326d7f2dad19fb3498d5"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 21 18:06:34 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 21 19:15:01 2013 -0700"
      },
      "message": "Use Class::IsVerified to confirm status, not MethodVerifier::FailureKind\n\nChange-Id: Ideeb1ee38e9188ec7cbfd001e7422e847d52092c\n"
    },
    {
      "commit": "a853bd7353b16e8f2d9614c5d9b6592962fd65ea",
      "tree": "0146ef5d8a0f57f7cb58850c004666a5cbef74c1",
      "parents": [
        "ee23f85dc66e651a1a220a612d3407689b8de5e8",
        "8f3c9ae38df2460940a26dff889a84430b6c38d3"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 21 23:52:54 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 21 23:52:55 2013 +0000"
      },
      "message": "Merge \"Don\u0027t allow class status to go backward except for error.\" into dalvik-dev"
    },
    {
      "commit": "8f3c9ae38df2460940a26dff889a84430b6c38d3",
      "tree": "55d5858382e5f66211db96d587b06914bad850d7",
      "parents": [
        "b8a0b94735f188bc739e4c55479c37699006b881"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 20 17:26:41 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 21 16:31:42 2013 -0700"
      },
      "message": "Don\u0027t allow class status to go backward except for error.\n\nAllow greater parallelism of initialization.\nBug 10393546.\n\nChange-Id: Ic194ed490bb0a986250c09fcf335eb1be9714657\n"
    },
    {
      "commit": "fe9ca4028f379688ecba6132ac3738171176b3e4",
      "tree": "00bb0eace8f37499aabce60cd296485d75b6b38e",
      "parents": [
        "4aa48fccbd3782d78207a79541b61948a066b8fc"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Aug 21 09:48:11 2013 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Aug 21 15:13:35 2013 -0700"
      },
      "message": "Compiler filter update\n\nTweak of the compiler filter to give better results for applications\nwhich are not dominated by tight arithmetic loops. Deleted\nthe \"DeferCompilation\" setting - it didn\u0027t differ enough from the\n\"Space\" setting.  Added \"Everything\" setting to support forced\ncompilation (for images and testing).  Previously used \"Speed\"\nfor that purpose, but in the speed setting there are some things we\ndon\u0027t want to compile.\n\nChange-Id: Ia53b14f2044fc9738c1a4c1318f8204f2c25abe3\n"
    },
    {
      "commit": "be7149fc2e7cc607937209f2819e3c1d672e2668",
      "tree": "7add2e6efce570424fe9950d86f5a196192729c1",
      "parents": [
        "46398608eaa47afe5a4cfb91e3f43211bf937d68"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 20 09:29:39 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 20 10:53:51 2013 -0700"
      },
      "message": "Avoid throwing NoClassDefFoundError at compile time.\n\nChange-Id: I8ba56a8750e1718babcb1f94e0408d89f58ea9b5\n"
    },
    {
      "commit": "e6bb3b2ce5a69c31c2adfc7eb2705633b7f966eb",
      "tree": "2c562e3de0fcd0cdd4528c4d2f40aa7fc75eea2e",
      "parents": [
        "cf3de6209f056aa8d6005e4610d49855da581eb4"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 19 21:51:45 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 19 22:52:23 2013 -0700"
      },
      "message": "Reduce AOT initialization.\n\nWhen compiling apps there is no need to resolve all types in the dex file, just\nthose declared in the dex file. There\u0027s also no need to initialize static\nfields if we can only leave the class in a verified state.\n\nIncrease use of CompilerDriver::IsImage.\nMove timing of dex2oat setup to before Runtime::Create.\n\nOn run-test 056 the performance improvement is an order of magnitude, for\nThinkFree dex2oat time is dominated by compilation and this change has no\neffect.\n\nBug 10316099.\n\nChange-Id: Ibdd7caa43284e7448e6a56d810967100ae4a7898\n"
    },
    {
      "commit": "3eeda8fe5a481226b246d08e1c645f3ee3b48cf2",
      "tree": "0f96cb7f34888aa81b4dc2ce9345d979987745ec",
      "parents": [
        "0e480cad5d2cf0904b98b7b56e90280e9b97ba30",
        "90af14d2743614e3e1453984b14258a6f145501d"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Aug 16 22:56:30 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 16 22:56:30 2013 +0000"
      },
      "message": "Merge \"Get SEA fibonacci running in interpreter mode.\" into dalvik-dev"
    },
    {
      "commit": "90af14d2743614e3e1453984b14258a6f145501d",
      "tree": "defcc7bdc0a85de36695b7c7285d7d5759ade92c",
      "parents": [
        "212ec8f32919d50a1e1cb7ea4b3b91ca938ae4e6"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Thu Aug 15 17:50:16 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Fri Aug 16 14:34:53 2013 -0700"
      },
      "message": "Get SEA fibonacci running in interpreter mode.\n\nAndroid.mk: Added new file to build.\ncompile_driver.cc: Moved SE_IR usage test in the block\n         protected by bool compile, which is enabled by\n         adding a sepatate test in IsCnadidateForCompilation.\nclass_linker.cc: Added check in NeedsInterpreter to enable SEA_IR.\nart_method-inl.h: DIsabled check in SEA_IR mode.\nmethod_verifier.cc: Added check for SEA_IR mode.\nmethod_verifier.h: Chenged IsCandidateForCompilation signature to\n         allow testing the function name (for SEA_IR selective\n         compilation).\ndot_gen.h: Updated ART file API usage to altest version.\nsea_ir/frontend.cc: Passing function symbol name to CompileMethod.\ninstruction_Nodes.h: Added  accessor for method index for\n         InvokeStatic IR node.\nsea.cc: Added additional IR SignatureNode for function calls (extra\n         Method parameter). Fixed UnnamedConstant constant value.\nsea.h: Passing function_name to GenerateLLVM.\ntype_inference_visitor.cc: Aded type for first (placeholder) method\n         parameter.\n\nChange-Id: I295858ea0761a3dffb36f35748d8b93d4919d6a9\n"
    },
    {
      "commit": "02e25119b15a6f619f17db99f5d05124a5807ff3",
      "tree": "7be4cbbf28033e5ee0621565b410fe5d8170a8fb",
      "parents": [
        "7d70a7932f0ba09eb01a93caab060aef1403d4e6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 14 16:14:24 2013 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 16 13:15:37 2013 -0700"
      },
      "message": "Fix up TODO: c++0x, update cpplint.\n\nNeeded to update cpplint to handle const auto.\n\nFixed a few cpplint errors that were being missed before.\n\nReplaced most of the TODO c++0x with ranged based loops. Loops which\ndo not have a descriptive container name have a concrete type instead\nof auto.\n\nChange-Id: Id7cc0f27030f56057c544e94277300b3f298c9c5\n"
    },
    {
      "commit": "7571e8b761ebc2c923525e12ea9fcf07e62cb33e",
      "tree": "5d90ecf4d0ba1a72b040a376f227df1ba9278889",
      "parents": [
        "2e250c826b3c405d675017efe79e5db3651c9ee6"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Aug 12 17:04:14 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Aug 15 10:33:53 2013 -0700"
      },
      "message": "Add flock(2)ing on dex-cache files to prevent races\n\nBug: 9071417\nChange-Id: I1ee9ff281867f90fba7a8ed8bbf06b33ac29d511\n"
    },
    {
      "commit": "0f40ac31134d9ae0f059d4c448165599dc8459c1",
      "tree": "2f908f5d7a51d4e7b028b307e5d43a9e794abc10",
      "parents": [
        "97a03e3cc86002b10889562a6b5b164cd2b99e7e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 13 22:10:30 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 13 22:30:39 2013 -0700"
      },
      "message": "Fix races in small mode compiler filters setup\n\nFixes host tests in small art mode.\n\nChange-Id: I2579f872583f425607f91c1e58df68b05b5098bb\n"
    },
    {
      "commit": "ea46f950e7a51585db293cd7f047de190a482414",
      "tree": "9dddc8073547a2dcb58a19e1728932a89cb149c3",
      "parents": [
        "5e3572709b5a5d59957f835db4f73760ecef08da"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 30 01:26:50 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Aug 13 18:09:46 2013 -0700"
      },
      "message": "Refactor java.lang.reflect implementation\n\nCherry-picked from commit ed41d5c44299ec5d44b8514f6e17f802f48094d1.\n\nMove to ArtMethod/Field instead of AbstractMethod/Field and have\njava.lang.reflect APIs delegate to ArtMethod/ArtField.\n\nBug: 10014286.\n\nChange-Id: Iafc1d8c5b62562c9af8fb9fd8c5e1d61270536e7\n"
    },
    {
      "commit": "08bf1967611965b65ffd5de1aa603b60e7b2d6a8",
      "tree": "a9272c3a767cee878fdad81207bd8037f08dd830",
      "parents": [
        "73a79074c06d8b0a8c14946438c59c3821d88fe7"
      ],
      "author": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Mon Aug 12 08:53:04 2013 -0700"
      },
      "committer": {
        "name": "Dragos Sbirlea",
        "email": "dragoss@google.com",
        "time": "Tue Aug 13 10:09:48 2013 -0700"
      },
      "message": "Work on SMALL_ART and PORTABLE working at the same time.\n\nChange-Id: Iddedf63b6f9d908717a4d30f963e9b81a9604d49\n"
    },
    {
      "commit": "c9f9444a0d58f395fee5ddd9f55ff32f92cb7b57",
      "tree": "2626125a263f8cbb0b733631a7c6fd2a07e9360a",
      "parents": [
        "b0f871965d588cce066785728fb105248b38bb4a",
        "a024a0686c3b0fea13f362bff70d65981e5febc5"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Aug 08 14:01:03 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 08 14:01:03 2013 -0700"
      },
      "message": "am a024a068: Compilation filter\n\n* commit \u0027a024a0686c3b0fea13f362bff70d65981e5febc5\u0027:\n  Compilation filter\n"
    },
    {
      "commit": "a024a0686c3b0fea13f362bff70d65981e5febc5",
      "tree": "99b003e7524544156a4e94bcca7daa41ed4d4b77",
      "parents": [
        "e0a53e99e2a01f8668d6616c3cec7e2f5a711286"
      ],
      "author": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Wed Jul 31 10:47:37 2013 -0700"
      },
      "committer": {
        "name": "buzbee",
        "email": "buzbee@google.com",
        "time": "Thu Aug 08 13:30:16 2013 -0700"
      },
      "message": "Compilation filter\n\nThis CL introduces a static compilation filter mechanism intended\nto allow us to reduce compilation time and space requirements until\nwe have a profiling mechanism in place.\n\nIt supports 5 modes of filtering:\n\n   o interpret-only (compile nothing)\n   o deferred-compilation (compile only those methods believe to be\n     compute-intensive)\n   o space (optimized for space)\n   o balanced (best return on space investment)\n   o speed (compile everything)\n\nA future CL will allow the default filtering mode to be set\nvia system property.  For now, you can pass it in via command\nline as follows:\n\n   dalvikvm -compiler-filter:[interpret-only|defer-compilation|\n                              space|balanced|speed]\n\nor dex2oat --runtime-arg -compiler-filter:[one of the above modes]\n\nCreating a file named art/SMALL_ART will force the filter\ndefault to interpret-only.  Later on we\u0027ll move this capability\nto a persistent system property.\n\nor modify kDefaultCompilerFilter in runtime.h\n\nIt also changes the compiler driver to allow the compilers to\ndecline to compile a method by return NULL.\n\nChange-Id: Ic73411818f8bb845a4a19a05b0395c50902c534f\n"
    },
    {
      "commit": "848871b4d8481229c32e0d048a9856e5a9a17ef9",
      "tree": "4be4602e3becc899f76a29a87618801458fe04b9",
      "parents": [
        "423fb4d70f2ac36bf9f630146b4150771a8e7e76"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Aug 05 10:56:33 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Aug 07 22:17:00 2013 -0700"
      },
      "message": "Entry point clean up.\n\nCreate set of entry points needed for image methods to avoid fix-up at load time:\n - interpreter - bridge to interpreter, bridge to compiled code\n - jni - dlsym lookup\n - quick - resolution and bridge to interpreter\n - portable - resolution and bridge to interpreter\n\nFix JNI work around to use JNI work around argument rewriting code that\u0027d been\naccidentally disabled.\nRemove abstact method error stub, use interpreter bridge instead.\nConsolidate trampoline (previously stub) generation in generic helper.\nSimplify trampolines to jump directly into assembly code, keeps stack crawlable.\nDex: replace use of int with ThreadOffset for values that are thread offsets.\nTidy entry point routines between interpreter, jni, quick and portable.\n\nChange-Id: I52a7c2bbb1b7e0ff8a3c3100b774212309d0828e\n"
    },
    {
      "commit": "7655f29fabc0a12765de828914a18314382e5a35",
      "tree": "219f2df20cf7f053a73a345ae20e131a73759c79",
      "parents": [
        "1a8080d4c2e1772cfcc5e9d6587bc63bba3945d9"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Jul 29 11:07:13 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jul 30 16:00:24 2013 -0700"
      },
      "message": "Portable refactorings.\n\nSeparate quick from portable entrypoints.\nMove architectural dependencies into arch.\n\nChange-Id: I9adbc0a9782e2959fdc3308215f01e3107632b7c\n"
    },
    {
      "commit": "8df6cea295bb685e812e40496ed77351b9881ef6",
      "tree": "92a54b5ab7d0cf546c41a47f50fb25545c518b1c",
      "parents": [
        "166db04e259ca51838c311891598664deeed85ad"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 29 13:54:48 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 29 14:17:10 2013 -0700"
      },
      "message": "Put jni lookup stub in native code ptr and fix GetOatMethodFor for proxy.\n\nChange-Id: I197aeafd9828a6ac5546af86ca4e6141b2375896\n"
    },
    {
      "commit": "7934ac288acfb2552bb0b06ec1f61e5820d924a4",
      "tree": "43f3acd8af7fd34d4ae7b64f6e06bb8429d74bb8",
      "parents": [
        "fb331d7ca004f39608fcfdae49d38df90c702ea9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 10:54:15 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 26 11:55:10 2013 -0700"
      },
      "message": "Fix cpplint whitespace/comments issues\n\nChange-Id: Iae286862c85fb8fd8901eae1204cd6d271d69496\n"
    },
    {
      "commit": "a6468f681b6e5feff940d0c32363847e795e97c6",
      "tree": "8de6686edfecebe2827776cfa5136104eb167af7",
      "parents": [
        "be45988e2ea837e73fe96f08a0a8be4112786877"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 19 11:36:19 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 19 11:36:19 2013 -0700"
      },
      "message": "Fix dalvik-dev branch cpplint issues\n\nChange-Id: Id5710dd26e8c433887543c867f037532e61731cc\n"
    },
    {
      "commit": "ad256bb4ca1740eba533d6527bad34e9a046ec00",
      "tree": "f245458aeebf43426579d6fbef3e4c3376317d65",
      "parents": [
        "08524597899d0bb021c9165218deff51dc88da50"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu Jul 18 14:58:55 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu Jul 18 15:06:44 2013 -0700"
      },
      "message": "Fixing gtest failure due to VerifyClassUsingOatFile change\n\nChange-Id: I8d4ed31fada333013a56dcb7aebbd25f5323017c\n"
    },
    {
      "commit": "1761e7b083d89f2070fe1e10c5915e2400359b10",
      "tree": "206f09a22cd320f5ffce0e0f81a5e6bcf9a232cd",
      "parents": [
        "42425b3a8befe092199fde69c95833e31db8fec9",
        "044d2832edbdadbbdce78012a257428224f42a15"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Thu Jul 18 00:34:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 18 00:34:53 2013 +0000"
      },
      "message": "Merge \"Fix VerifyClassUsingOatFile to check preverified image classes\" into dalvik-dev"
    },
    {
      "commit": "044d2832edbdadbbdce78012a257428224f42a15",
      "tree": "7a6b73e6665f39420adfcdcc4b2bb574cfc80842",
      "parents": [
        "82f9f02d89ea859bd04514bd28bb6cac0409c7b2"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Wed Jul 17 15:22:31 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Wed Jul 17 17:32:20 2013 -0700"
      },
      "message": "Fix VerifyClassUsingOatFile to check preverified image classes\n\nWe now bail out in two cases: we\u0027re verifying an application class or we\u0027re\nverifying a boot classpath class while compiling boot classpath classes.\n\nChange-Id: I0b8c776c032612a24799d72468dcf26280a9ab8d\n"
    },
    {
      "commit": "56d947fbc9bc2992e2f93112fafb73e50d2aaa7a",
      "tree": "cfdbb596075c8652384e89c1d002f147d610c07d",
      "parents": [
        "6d69f592696f3bbd3bb0978ae3b25f2c359aac0d"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 15 13:14:23 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 17 13:10:11 2013 -0700"
      },
      "message": "Add verification of boot.oat generated on device\n\nChange-Id: I069586205a9a92fc7375ccf5cdde136bbbcfc800\n"
    },
    {
      "commit": "f1d3455064792ac1c486a4a9c24279a37b4af473",
      "tree": "ac3020b447d6929def1f3322b5165bef6a66a4cd",
      "parents": [
        "7940e44f4517de5e2634a7e07d58d0fb26160513"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 20:22:23 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 20:45:54 2013 -0700"
      },
      "message": "Do not mark pages executable unnecessarily to play nice with selinux\n\nChange-Id: Ief4a5da38ac7c2cf7bf6f7a640cb63c5e8ed03bd\n"
    },
    {
      "commit": "7940e44f4517de5e2634a7e07d58d0fb26160513",
      "tree": "ac90242d96229a6942f6e24ab137bc1f8f2e0025",
      "parents": [
        "5cd9e3b122f276f610980cbaf0d2ad6ed4cd9088"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 13:46:57 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 17:49:01 2013 -0700"
      },
      "message": "Create separate Android.mk for main build targets\n\nThe runtime, compiler, dex2oat, and oatdump now are in seperate trees\nto prevent dependency creep.  They can now be individually built\nwithout rebuilding the rest of the art projects. dalvikvm and jdwpspy\nwere already this way. Builds in the art directory should behave as\nbefore, building everything including tests.\n\nChange-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81\n"
    },
    {
      "commit": "3693c086ad4d5ba13ffcc7c7f481b21f67543660",
      "tree": "9b3d40be35ee56c84f4df947d4800be0d6dc9cb2",
      "parents": [
        "1581766afea0b31de0ed0f9f677fc3b92a29daae"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 09:48:25 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 12 09:48:25 2013 -0700"
      },
      "message": "Fixes for portable build\n\nChange-Id: I29d6a9fb7f8ec134128329d974acf6b6534e25f1\n"
    },
    {
      "commit": "7d658cf06827d409d76686da1cd2b6acb5977885",
      "tree": "0a0ee93edb8c28c859c47af7390fad05a9fc356a",
      "parents": [
        "3dd9f76ff8fa99be9ff6b18354528c5def7b26f7"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Jul 09 10:56:11 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Jul 09 11:19:23 2013 +0200"
      },
      "message": "Fix -Xint mode.\n\nBug: 9700950\n\nMake ClassLinker::FixupStaticTrampolines updates entry point from compiled code\nwith interpreter entry point when interpreter mode is enabled.\n\nChange-Id: Ie52ace8ea054ae7cb17442264dc62f68472409c6\n"
    },
    {
      "commit": "1d54e73444e017d3a65234e0f193846f3e27472b",
      "tree": "1de93661e95a0ce6fa78fdfc23d0cfd3dd2a06f7",
      "parents": [
        "4c22e7eabef3f815841dfc6e0d5bbead96150752"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 02 21:10:01 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Jun 21 11:10:42 2013 -0700"
      },
      "message": "GC clean up.\n\nGreater use of directories and namespaces.\nFix bugs that cause verify options to fail.\nAddress numerous other issues:\n\nGC barrier wait occurring holding locks:\nGC barrier waits occur when we wait for threads to run the check point function\non themselves. This is happening with the heap bitmap and mutator lock held\nmeaning that a thread that tries to take either lock exclusively will block\nwaiting on a thread that is waiting. If this thread is the thread we\u0027re waiting\nto run the check point then the VM will deadlock.\nThis deadlock occurred unnoticed as the call to check for wait safety was\nremoved in: https://googleplex-android-review.googlesource.com/#/c/249423/1.\n\nNewTimingLogger:\nExisting timing log states when a split ends but not when it begins. This isn\u0027t\ngood for systrace, in the context of GC it means that races between mutators\nand the GC are hard to discover what phase the GC is in, we know what phase it\njust finished and derive but that\u0027s not ideal.\n\nSupport for only 1 discontinuous space:\nCode special cases continuous and large object space, rather than assuming we\ncan have a collection of both.\n\nSorted atomic stacks:\nUsed to improve verification performance. Simplify their use and add extra\nchecks.\n\nSimplify mod-union table abstractions.\n\nReduce use of std::strings and their associated overhead in hot code.\n\nMake time units of fields explicit.\n\nReduce confusion that IsAllocSpace is really IsDlMallocSpace.\n\nMake GetTotalMemory (exposed via System) equal to the footprint (as in Dalvik)\nrather than the max memory footprint.\n\nChange-Id: Ie87067140fa4499b15edab691fe6565d79599812\n"
    },
    {
      "commit": "4c22e7eabef3f815841dfc6e0d5bbead96150752",
      "tree": "85cc5fded5852dfa78102da10861e24c9e8fea15",
      "parents": [
        "7f46fc67094104aa637a1b5534fe8f844d40afc5",
        "30e2ea4a701d53f28431041af68dc0669e60c569"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 20 16:59:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 20 16:59:24 2013 -0700"
      },
      "message": "am 30e2ea4a: Move art to use dalvik names for .oat files\n\n* commit \u002730e2ea4a701d53f28431041af68dc0669e60c569\u0027:\n  Move art to use dalvik names for .oat files\n"
    },
    {
      "commit": "30e2ea4a701d53f28431041af68dc0669e60c569",
      "tree": "55a04655d0896e1d22d41df17d1fed5f6b85396d",
      "parents": [
        "0eba633357c6c01b298434c7fd8a5705b5b2e18f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 19 23:25:37 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 20 16:53:02 2013 -0700"
      },
      "message": "Move art to use dalvik names for .oat files\n\nChange-Id: Ia383c0a0847684a513cab7db44b4ecf8fe05e1c3\n"
    },
    {
      "commit": "00626c2e50ba085b95f860e941d0f41eb84d4ac9",
      "tree": "a3643f7de76053f678565a78e2727cafb81b1564",
      "parents": [
        "d457d8a5542aacfb497790a0c648c7e34f1e4f69"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 14 15:04:14 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Jun 14 16:42:20 2013 -0700"
      },
      "message": "Fix Class.getModifiers for array classes.\n\nA separate libcore change is needed to fix Class.getModifiers for\narrays of inner classes.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d56267\nChange-Id: I3d95b266bb14a72b766921fe09e53fdef2f6d01b\n"
    },
    {
      "commit": "233ea8e084a95ad2a3af746dddbadb155db6a814",
      "tree": "be5eeee19b2274e1b199a230e9297f277b47d155",
      "parents": [
        "8afe6e0d8c4151ac74afc4ebe0dab85550821243"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Jun 06 11:57:09 2013 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Jun 13 17:15:16 2013 +0200"
      },
      "message": "No access check support.\n\nThis CL adds support to disable access check when a method is preverified (at\ncompilation time) and we know we don\u0027t need to do any access check.\n\nThe interpreter has now two modes of execution: with or without access check.\nThis is realized by using a template function.\n\nA new runtime access flag kAccPreverified is added onto each method belonging\nto a preverified class. If this flag is set, we enter the interpreter in \"no\naccess check\" mode. Otherwise, we enter the interpreter in \"with access check\"\nmode.\n\nChange-Id: Ic34163421d5b0aca3d1bce22ef7c095dcf465a18\n"
    },
    {
      "commit": "e4c41c22f4c76cb825f3c731fd1518020201028d",
      "tree": "49962b234935861e8494f909692a8ac9e4f24d00",
      "parents": [
        "e51439c8b9598de17836542dd66c6ed32afe2c18",
        "e3359f7ad7671c5816f17145ca3a01516512e8d6"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 11 22:30:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 11 22:30:09 2013 +0000"
      },
      "message": "Merge \"Don\u0027t recursively take ClassLinker::dex_lock_.\" into dalvik-dev"
    },
    {
      "commit": "e3359f7ad7671c5816f17145ca3a01516512e8d6",
      "tree": "bfb5a78fb6c42ea5fc93638d6aaa82fdf7a201a6",
      "parents": [
        "62342ec720069cebe55f45aea2ff8512a17e7d62"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 11 15:14:11 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Jun 11 15:14:11 2013 -0700"
      },
      "message": "Don\u0027t recursively take ClassLinker::dex_lock_.\n\nFix for Bug: 9285048.\n\nChange-Id: I4bdefdc7e1de2eec6488e8d629147d9699f4d099\n"
    },
    {
      "commit": "1484395073bdc6369ee0c417546b92a806cc2fec",
      "tree": "d5ad6494039cd82f1cb69f7854d2fca070114022",
      "parents": [
        "62342ec720069cebe55f45aea2ff8512a17e7d62",
        "7675e16bcae06c0fe258aad89b3d511037dec399"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jun 11 11:32:13 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 11 11:32:13 2013 -0700"
      },
      "message": "am 7675e16b: Rename art-cache to dalvik-cache\n\n* commit \u00277675e16bcae06c0fe258aad89b3d511037dec399\u0027:\n  Rename art-cache to dalvik-cache\n"
    },
    {
      "commit": "7675e16bcae06c0fe258aad89b3d511037dec399",
      "tree": "7b1ef4555225ba2e6d9b63fe61549c52d291a757",
      "parents": [
        "5f4bd97519aad4f075346f8c5c0a84c6105951d8"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 10 16:18:04 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 10 16:18:04 2013 -0700"
      },
      "message": "Rename art-cache to dalvik-cache\n\nChange-Id: I294995066aecc29fbd739c3e9e6f60934f743064\n"
    },
    {
      "commit": "dd75d5dec19f6a7c7f530a1a7932c8e5faa3129e",
      "tree": "746ab445d90223ec4de6bf70b60e8fbd4c12aa85",
      "parents": [
        "6cda291b40cd02a079ec2c4e42da555f28c9246a"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Jun 07 16:43:14 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Jun 07 16:44:20 2013 -0700"
      },
      "message": "Don\u0027t set resolution method\u0027s compiled code entry to the interpreter.\n\nChange-Id: I7c25dad3176f67f7bd4c423676acca9fdd92dd41\n"
    },
    {
      "commit": "0aba0ba155bef7346bde19e53581200b89ae8a7a",
      "tree": "6590f8a50bde7c30b57f1bb0ae67c6d88cea8116",
      "parents": [
        "515661b14b60ab9684efa1ab1d5124934406094e"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jun 03 14:49:28 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Jun 07 14:43:24 2013 -0700"
      },
      "message": "Created compiled stubs in image.\n\nSaves class linker from having to set code pointers when loading\nfrom an image. Added stubs for quick and portable resolution\ntrampolines, and interpreter-to-interpreter and interpreter-to-quick\nentry points. Also added sizing stats output for oat writer.\n\nChange-Id: I3905fae81047742c23d1cf0ca001db798db971b1\n"
    },
    {
      "commit": "9b645acfea19b3e3a8c9c61733f07d08dc43dae1",
      "tree": "16eeabeabf6f85de6deef4cdd1ff7c38f3151a81",
      "parents": [
        "5243e912875026f99428088db7e80cb11651d64e",
        "62cd098c0ca1300ce4c748cad85466e018f44de9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 03 13:53:55 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 03 13:53:55 2013 -0700"
      },
      "message": "am 62cd098c: Add check to catch use dalvik\\\u0027s libcore earlier\n\n* commit \u002762cd098c0ca1300ce4c748cad85466e018f44de9\u0027:\n  Add check to catch use dalvik\u0027s libcore earlier\n"
    },
    {
      "commit": "62cd098c0ca1300ce4c748cad85466e018f44de9",
      "tree": "14519f14fef2c8d033edc84c6f85e55f76a49078",
      "parents": [
        "6b019b33739bfe1613ac6960a2403fa54b4bc671"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 03 11:30:25 2013 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 03 11:30:25 2013 -0700"
      },
      "message": "Add check to catch use dalvik\u0027s libcore earlier\n\nChange-Id: Ic776ee35aead930157500f99049101786b3ee187\n"
    },
    {
      "commit": "39ebcb800aabedd0ffa6aa4aeac8aa4194c66e61",
      "tree": "3efbbafa4cc39683a8bcbc2d76103c3d5bfbf072",
      "parents": [
        "f89eccd509475cb1949c729e796b26a2a248ae04"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 30 16:57:23 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri May 31 11:43:42 2013 -0700"
      },
      "message": "More profiler driven tweaks.\n\nMake more code inlinable by moving to header files.\nUse reserve on std::vectors to avoid reallocation.\n\nChange-Id: I1bf67d32dd58ff5c06dec73a247fadc3de593e91\n"
    },
    {
      "commit": "1bf8d4dbe5cb9891e8a1125ff1928b544efc243a",
      "tree": "84b28ef4c8bdf7da73c16e891e2fe978b52d9a90",
      "parents": [
        "b29bbbc00071f56a4a98a2d94c3968a36763ed55"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 30 00:18:49 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu May 30 10:20:05 2013 -0700"
      },
      "message": "Profiler directed clean-up of dex2oat.\n\nFix bad usage of std::string in: the verifier and compiler driver method\narguments, causing unnecessary boxing and allocations; in creating a symbol for\nthe dex compilation unit, that is only used in portable builds; in pattern\nmatching for intrinsics by name.\n\nMake class linker dex and classes locks reader/writer to allow concurrent\ndex cache or class querying. Refactor ComputeCompilingMethodsClass to pass in a\ndex cache hint, to avoid taking any locks when the dex file of the compiling\nmethod matches that of the field or method being resolved.\n\nMake the RegType\u0027s HasClass method virtual to avoid frequent virtual method\ndispatch. Make RegTypeCache GetFromId inlinable.\n\nVarious other bits of whitespace and formatting clean-up.\n\nChange-Id: Id152e1e5a6fed2961dad0b612b7aa0c48001ef94\n"
    },
    {
      "commit": "790ad90ccd2f3e297e2cf0a47adbf4f9ffb10149",
      "tree": "719a141f77194d4eeab03bfb1e7385799e001263",
      "parents": [
        "ca6ad221d1bd857e26817f6b63d4ad9f3fe7ca40"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed May 22 15:02:08 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu May 23 10:17:09 2013 -0700"
      },
      "message": "Some more interpreter cleanup.\n\n- Pass method helper and code item to entry point so they don\u0027t\n  have to be regenerated.\n- Removed interpreter only check from invoke, changing entry\n  points instead.\n\nChange-Id: Ib0ea83dcffcdb295d3a48d92ad8a93ac59f9932e\n"
    },
    {
      "commit": "6951067ee14754454e17221fdef0d3d5ed7c4f7e",
      "tree": "5994c12990ea02ca7a73377787ced2c700351557",
      "parents": [
        "7b15b1b6809a3dc46c69610491d1b10513f449db"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 21 17:34:55 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 21 17:34:55 2013 -0700"
      },
      "message": "Some interpreter cleanup.\n\n- Pass result pointer to interpreter to interpreter entry point.\n- Avoid using MethodHelper.ChangeMethod in DoInvoke.\n\nChange-Id: I714b78d50fb14d7a0edced54cd4de78ae54021da\n"
    },
    {
      "commit": "33e9566255c426e7a2c8fca5b8a1b6a94a5d352c",
      "tree": "80965d3d329c09ec5a574863a356562e42f639ff",
      "parents": [
        "34d64cba998cb86867109db351113e6f7c9293f7"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 20 20:29:14 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 20 21:16:03 2013 -0700"
      },
      "message": "Various GCC 3.6 and clang build fixes.\n\nRemove #error in common_test.h that fires with clang build and replace with\nruntime error.\nFix bit rot caused by not compiling with Wthread-safety.\nFix clang build issues in compiler relating to missing header file definitions\nin object files.\nOther minor build and tidying issues.\n\nChange-Id: Ife829ab0664581936155be524de46e6181c750b0\n"
    },
    {
      "commit": "d8274bcbc565fff1254574b3cbf46dc4e7b52812",
      "tree": "f3435a06f129a1620212b0253074df2292c976cb",
      "parents": [
        "fa46d3ee8cba2985c5c8bdfe47d15daf0613ebdc"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 15 15:54:45 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed May 15 15:54:45 2013 -0700"
      },
      "message": "Fix clang build issues.\n\nAlso add PREAMBLE macro to allow head of interpreter loop to be simply hoisted.\n\nChange-Id: Id4a3f81d56b5981e1a497cf2bc72f1c263364fe5\n"
    },
    {
      "commit": "aa4a793d7175ceeb1efa215c2af5e52e42b22f0a",
      "tree": "9c3db54a108d4327471c6d4890d28cdfe1f030ff",
      "parents": [
        "167436311a08a65dea28dda079a137893821c9c7"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon May 13 11:28:27 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon May 13 13:14:19 2013 -0700"
      },
      "message": "Rename abstract method code_ to entry_point_from_compiled_code_.\n\nChange-Id: I9b02d2df95bbeafa6e6387b461f574c57337a61e\n"
    },
    {
      "commit": "167436311a08a65dea28dda079a137893821c9c7",
      "tree": "4754f47306a0ffa0ad97635015d9596b427dd425",
      "parents": [
        "c44f68fb6a6d55c0df28dd05b93d8906ec20bd08"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed May 08 10:59:04 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri May 10 17:16:00 2013 -0700"
      },
      "message": "Improve interpreter to interpreter invokes.\n\nThe interpreter constructs a shadow frame instead of arg array to make\ninterpreter to interpreter transitions faster. This adds a pointer to\nan entry for the interpreter to each method.\n\nChange-Id: If48911d3aa3470847b8548a9e92090b829f4f254\n"
    },
    {
      "commit": "2c6de22d6dcdc6fe1a065480582989e15a47fcb5",
      "tree": "a1c248a80352e66951681cfc7dbe94f5afc88d4b",
      "parents": [
        "8a01a3a8caee37d4c4cf1a8c673f897c74aaf785"
      ],
      "author": {
        "name": "Sameer Abu Asal",
        "email": "sasal@google.com",
        "time": "Thu May 02 17:38:59 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon May 06 23:04:06 2013 -0700"
      },
      "message": "Improve verifier speed.\n\nMain improvement is in the RegTypeCache::From() Class lookup, the cache is first\nlooked up for the passed descriptor instead of trying to resolve the class.\nFor cases when the descriptor is not found it is resolved to a class and a new type is\ncreated and added to the cache.\n\nChange-Id: I594a4c00b351843dd576b5af29e9dcaed18e04e8\n"
    },
    {
      "commit": "79fe539587d4c09244172d0168eeed0ec9770466",
      "tree": "4fb8fbd03727a74acb4dfde7e969adf32ee32750",
      "parents": [
        "09b55e1df3b0bcecee25882e45e882887cc8654f"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 24 18:41:58 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 26 14:50:52 2013 -0700"
      },
      "message": "Removing remaining compiled stubs from image.\n\nAbstract method error stub and jni dlsym lookup stubs are gone.\nAfter this change, the image no longer needs to be executable.\n\nChange-Id: Ic75d72bf7e76e3b8ecc596e82af68ab592dde15e\n"
    },
    {
      "commit": "58df32711162823647356afe25ae2cde04133563",
      "tree": "df1b2b43b90f4861b475f1452b175353a56ec3d7",
      "parents": [
        "ede1807e3481a6937416964bb7556364f2d428e1"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 22 15:28:53 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 23 16:34:16 2013 -0700"
      },
      "message": "Removed compiled resolution trampoline.\n\nCreated assembly versions of resolution trampoline for portable and\nquick. Removed compiled version from the image.\n\nChange-Id: I183e110c4e102fb45ce6e7f4e855f8bed7986251\n"
    },
    {
      "commit": "ee9889502a34a08741a6f8ecc02917202de9d773",
      "tree": "cdcfd55a15efe64b9acc14c9f0ab7d901f5a07c9",
      "parents": [
        "3e13ae7b85cc559f72bde6d2a3de61b9792f7de5"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 16 14:23:47 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 16 14:41:14 2013 -0700"
      },
      "message": "Add bool to verifier to allow soft failures.\n\nWhen false, soft failures in the verifier become hard failures. It should\nonly be false when not compiling, and calling the verifier from the class\nlinker.\n\nChange-Id: I664e5cbe491784b280aa5bfdb7e7fc0b771814f5\n"
    },
    {
      "commit": "c4f105d75cd0cbc5145620068bbb8a819148e535",
      "tree": "f34fce100c4fcd351e0de0bbccb4293df94d0804",
      "parents": [
        "ed1790e83352e54420018d1495eb010f7cd48a64"
      ],
      "author": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Wed Apr 10 16:12:11 2013 -0700"
      },
      "committer": {
        "name": "Anwar Ghuloum",
        "email": "anwarg@google.com",
        "time": "Tue Apr 16 10:24:36 2013 -0700"
      },
      "message": "Compile less stuff\n\nDon\u0027t compile class initializers, compile programs with fewer than\ncommmand-line specified number of methods, mildly refactor SLOW_MODE,\nrename into LIGHT_MODE.\n\nAlso, walks the image for uncompiled methods and fixes up with pointers to the\ninterpreter entry point.\n\n(Removed hot method list and light method limit as these are experimental.)\n\nChange-Id: I2ae33d8add84ab9f4d76f9d910cae422c81a7832\n"
    },
    {
      "commit": "62d6c772205b8859f0ebf7ad105402ec4c3e2e01",
      "tree": "e2f2ba6d71ed5a39c9f6909e3f7c08e998053315",
      "parents": [
        "c9b17c7ee96cd04fac9048aab624ed554fe260bf"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 08:32:07 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Apr 08 14:24:13 2013 -0700"
      },
      "message": "Interpreter entries and instrumentation as a listener.\n\nMake the instrumentation responsible for whether we want method entry/exit\nstubs, and allow it to use interpreter entry stubs when instruction by\ninstruction instrumentation is required. Improve deoptimization so more JDWP\ntest cases are passing.\n\nRefactor exception debug posting, in particular improve reporting in the\ninterpreter. Improve class linker exception throwing so that broken dex files\nare more likely to be reported. Fixes the performance issue Bug: 8410519.\n\nFix some error reporting lock level errors for the large object space. Make\nfast object verification faster.\n\nAdd some debug mode robustness to finding dex PCs in GC maps.\n\nAdd printf attributes to JniAbortF and fix errors.\n\nExpand run-test 044 to test return behaviors and fix issues with not throwing\nappropriate exceptions for proxies.\n\nEnsure causes are reported with a class linker NoClassDefFoundError and JNI\nNoSuchFieldError.\n\nRemove unused debugMe and updateDebuggerFromCode.\n\nThere\u0027s a minor sizing tweak to the arg array builder, and an extra reference\narray check in the interpreter.\n\nSome clean-up of trace code.\n\nFix reg type cache destructor if it is called after the reg type cache is\nshutdown (as is the case in oatdump).\n\nChange-Id: I6519c7b35df77f978d011999354c864f4918e8ce\n"
    },
    {
      "commit": "5fa60c3db4208df407113b5a69d295a9c93d53b1",
      "tree": "b56704a7f97cb524c2cf269700fabcae25bf0f08",
      "parents": [
        "a966e18b402b0568fc556c38d7ef2e7e8df943a2"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 04 17:57:01 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Apr 05 11:01:06 2013 -0700"
      },
      "message": "Remove use of compiled proxy stub from portable.\n\nARM implementation is tested, but x86 and MIPS are not.\n\nChange-Id: I497d650c55fe7fd4ea24d283c8d8ee99b1456610\n"
    },
    {
      "commit": "6474d190d5604898354ebf767f1944b6e3e9b445",
      "tree": "ac4be675c62fd8129fe85f740dcd2e3bfee424e2",
      "parents": [
        "52003fe9e2020e9d68cee1300fdb4a3f55be85a5"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 26 14:08:09 2013 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Mar 26 16:03:53 2013 -0700"
      },
      "message": "Remove use of compiled invoke stubs from portable.\n\nNow the invoke stubs can be safely removed. Tested and working on ARM,\nbasic testing done on x86/MIPS, but portable is currently broken for them\neven without the change.\n\nChange-Id: Ib73f2b7aa9d81f5f0e1e817d16b9bec464c5a5aa\n"
    },
    {
      "commit": "f3e9855ee2000106b54fd479f7a46da2dc2ad079",
      "tree": "0fb43ed2fc7f7b66190ff8a9c581c241b262270a",
      "parents": [
        "2da15eda3ff7c4d7f5f35606cb8e5e596a1e0e74"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 20 15:49:49 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Mar 20 18:28:32 2013 -0700"
      },
      "message": "Slow ART.\n\nRun ART with the interpreter for all but boot.oat code.\n\nChange-Id: I1654ecff6769a6c754f713be7580717d5ce07dc1\n"
    },
    {
      "commit": "4f6ad8ab428038129b2d0d6c40b7fd625cca15e1",
      "tree": "d1025ed9203d0cdf7aa959d9cecd8dc1f0c0bfeb",
      "parents": [
        "aabe8adacc7bf3a8ab6f6f3dd37fc839b6fd762f"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 18 15:27:28 2013 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 18 15:29:59 2013 -0700"
      },
      "message": "Various performance improvements.\n\nPerformance had regressed due to verify object and method invocation changes.\nAvoid trampolines for static calls in same class.\nVarious inlining changes.\nMake verify object something that\u0027s only compiled-in in debug builds.\n\nChange-Id: Ia261a52232c3b10667c668f8adfadc0da3048bc5\n"
    },
    {
      "commit": "5d9173014c1ca09f7249a6b07629aa37778b5f8f",
      "tree": "80543dbe9af6795212373bb12532b638ff3b22f3",
      "parents": [
        "aed0716b9592bb3095cdfc4b111011f9ed74877d"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 27 17:57:33 2013 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Mar 15 14:18:28 2013 -0700"
      },
      "message": "Changes to remove need for compiled invoke stubs for quick.\n\nARM, x86, and MIPS implementation complete, though MIPS is untested.\n\nThe ArgArray is changed to be a uint32_t array instead of a JValue array.\nAlso, a separate result for float/double was needed for x86/MIPS. The invoke\nstubs are currently still there, but only used for portable.\n\nChange-Id: I0647f8d5d420cea61370e662e85bdc0c13b5e378\n"
    },
    {
      "commit": "265091e581c9f643b37e7966890911f09e223269",
      "tree": "ae493ce6c3537aebc3a85f59a73500fa819a7baf",
      "parents": [
        "4c1c283a7410784e9cab309f868248690b788a9c"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jan 30 14:08:26 2013 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Mar 06 14:08:46 2013 -0800"
      },
      "message": "Remove ExtractCodeAndPrelink and switch Portable to MCLinker\n\nChange-Id: Ia2459c7da6b79e0a1c0f1148c6e28ad9cbbe27a2\n"
    },
    {
      "commit": "4c1c283a7410784e9cab309f868248690b788a9c",
      "tree": "629ce783004007641a9a5b0c9f8e269d0fd57a8f",
      "parents": [
        "89756f21c107d96e6d1bbc75811bd33078c8ceee"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 04 18:30:13 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Mar 04 18:38:16 2013 -0800"
      },
      "message": "Move compiler_llvm to art::llvm.\n\nAlso move the invoke stubs (soon to be removed) under compiler.\nStart moving LLVM code under compiler. Will move GBC expander to dex/portable\nonce it is disentangled from other builds (moving toward solving Bug: 8195425).\n\nChange-Id: I8829f9db6ade9ac8e32bd16198b90f83619769f1\n"
    },
    {
      "commit": "c928de90ad22ecdf83c18a07008409595f13d3b1",
      "tree": "065a08f379960f7ba946318aaa742d7ddd0c94bd",
      "parents": [
        "0f827169742aad6209d830db773a101849c32a83"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 14:30:44 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 27 14:30:44 2013 -0800"
      },
      "message": "Remove Iceland.\n\nART_USE_LLVM_COMPILER is removed and when necessary ART_USE_PORTABLE_COMPILER\nis used in #ifdefs.\n\nChange-Id: Iffa9ce5b0246c7c427ccc4e67ecc134624632e55\n"
    },
    {
      "commit": "68243614c7a0aa21f0ad34bb31e825db4a20dffa",
      "tree": "472c3597a77ab108575b9297c7af4cc99a59d837",
      "parents": [
        "cb69306eefc1e6e42b3eaec8b479a268222b01b6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 22 17:16:07 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Feb 22 17:16:07 2013 -0800"
      },
      "message": "Port the \"abstract methods are not implementations\" fix to art.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d42991\nChange-Id: I08e46361a9d7275bc870ee1ec38c40ae22ddf08a\n"
    },
    {
      "commit": "05f3057d6a4d23d712092ccd36a531590bff323b",
      "tree": "3f342c813afdb44a08466e379c060f917d073e5a",
      "parents": [
        "4aeb567fa8b1f5e17ef7beacf86fed505cc7335c"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 20 12:13:11 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Feb 20 12:15:09 2013 -0800"
      },
      "message": "Move monitor related object routines to object-inl.h\n\nAlso pass through readily available self Thread. Remove unused wait method.\nRename ObjectLock.Wait to document it doesn\u0027t honor interrupts.\n\nChange-Id: I991e5036997b3f60ee4fdf1a420beabab9a70c85\n"
    },
    {
      "commit": "8dbb708c7dc05c786329eb5c3fff3194ab6472ac",
      "tree": "1374ac8244bb13612e027de23516ecddfb2bba3c",
      "parents": [
        "cc07edb6bb274593c687188c99015c30dd73acae"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "loganchien@google.com",
        "time": "Fri Jan 25 20:31:17 2013 +0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Feb 06 19:14:06 2013 -0800"
      },
      "message": "Rename run-time functions to distinguish art_quick_[name] vs art_portable_[name].\n\nWe have two different sets of run-time functions:\n(1) the one used by quick compiler, and\n(2) the one used by portable compiler.\n\nPreviosuly, the one used by quick compiler is placed in ``extern\n\"C\"\u0027\u0027, and the one used by portable compiler is placed in ``namespace\nart\u0027\u0027.  That\u0027s why we can link them together in the past.  From the\npoint of view of the linker, they had different names:\n\n(1) Quick RT: art_set32_static_from_code\n(2) LLVM RT: _ZN3art27art_set32_static_from_codeEjPNS_14AbstractMethodEi\n\nPreviously for portable, ExtractCodeAndPrelink would have translated\nthe art_module.ll names referenced by portable code at compile time to\npoint to a runtime table populated with the mangled names.\n\nHowever, when using MCLinker linker to link the object images\ngenerated by the portable compiler, the linker will only see the\nunmangled names. So now the have to be unique between quick and\nportable, so we\u0027ve adopted the naming convention of:\n\n(1) Quick RT: art_quick_set32_static_from_code\n(2) LLVM RT: art_portable_set32_static_from_code\n\nChange-Id: Id5bb9f8f1574433ada6b1d6734f509cca26b98a5\n"
    },
    {
      "commit": "2dd0e2cea360bc9206eb88ecc40d259e796c239d",
      "tree": "9d619dc9508cbe73e4793bf6f08cbc761abfb48a",
      "parents": [
        "ac21b797b3a425975d656d6b84a7b24401d35f42"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Jan 24 12:42:14 2013 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Jan 30 16:48:31 2013 -0800"
      },
      "message": "Directory restructuring of object.h\n\nBreak object.h into constituent files.\nReduce number of #includes in other GC header files.\nIntroduce -inl.h files to avoid mirror files #include-ing each other.\nCheck invariants of verifier RegTypes for all constructors.\n\nChange-Id: Iecf1171c02910ac152d52947330ef456df4043bc\n"
    },
    {
      "commit": "700c8d31733534a3d978b75a03f6f7e177dc7e81",
      "tree": "6b9d8d93a70e31dba3b0a880f886ce408776314c",
      "parents": [
        "9adbff5b85fcae2b3e2443344415f6c17ea3ba0a"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Nov 05 10:42:02 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jan 25 14:28:43 2013 -0800"
      },
      "message": "Move .oat files to ELF format\n\nGenerates .oat in ELF file format using MCLinker\n- Uses MCLinker IRBuilder to create a synthetic .o from OatWriter output.\n- Uses new ElfFile for prelinking to support art image optimizations.\n\nAdapted OatFile to load using dlopen, ElfFile, or memory, removing raw MemMap mechanism.\n\nChanged image code to not assume oat data will be immediately after\nimage to allow space for ELF headers.\n\nPasses test-art and works with installd.\n\nChange-Id: Idc026eddb5de93f4b97490c405f3ed7b39589749\n"
    },
    {
      "commit": "4c5b265e66bebf890b6f9e53cddeb512774b1613",
      "tree": "8278a6619b4dc4ec6009dcac01cf3fd4046108cb",
      "parents": [
        "2933d538b45cae733349b81a6a1d4a6f4dc9d3ec"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Dec 15 21:36:16 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Sat Dec 15 22:36:34 2012 -0800"
      },
      "message": "Test and fixes for invoke-interface on java.lang.Object methods.\n\nBug: 7614818\n\nChange-Id: I704596cf3d36887e6d6d589cb3ec89e31d5b8901\n"
    },
    {
      "commit": "1aa246dec5abe212f699de1413a0c4a191ca364a",
      "tree": "ee9f5be423f56620f211525070273afc7a19c27d",
      "parents": [
        "07ed66b5ae659c452cbe1ab20c3dbf1d6f546461"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 13 09:29:36 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Dec 13 09:29:36 2012 -0800"
      },
      "message": "Move casts.h and stl_util.h into base/.\n\nChange-Id: Idb3bfa5cec3d146e488031d91265737cde2b4cf4\n"
    },
    {
      "commit": "07ed66b5ae659c452cbe1ab20c3dbf1d6f546461",
      "tree": "2350745da33df6fcb9fb0c9059e55ea5d5ea8f67",
      "parents": [
        "76b6167407c2b6f5d40ad895b2793a6b037f54b2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 18:34:25 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 18:35:05 2012 -0800"
      },
      "message": "Move logging.h into base/logging.h.\n\nChange-Id: Id68f85f7c3a71b156cb40dec63f94d4fb827f279\n"
    },
    {
      "commit": "fe8723b27d5ef942ffa5a0a77c8169ffdfde8f4b",
      "tree": "68030b2f4cdd150d6644432c04681f0c79b9f82b",
      "parents": [
        "b7eb10825af77b60cdae0d58232075a0704071da",
        "761600567d73b23324ae0251e871c15d6849ffd8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 17:03:35 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 17:03:36 2012 -0800"
      },
      "message": "Merge \"Switch over to the google3 unix_file File*.\" into dalvik-dev"
    },
    {
      "commit": "761600567d73b23324ae0251e871c15d6849ffd8",
      "tree": "4757cb01233394fa2e9c461a68fc37a35c12dabb",
      "parents": [
        "89c41e5f2fa10e7b97698b9714bd4883a73132f0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 16:31:20 2012 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 12 16:31:20 2012 -0800"
      },
      "message": "Switch over to the google3 unix_file File*.\n\nI also moved macros.h to base/macros.h to ease google3 porting, at\nthe expense of a larger than necessary change. (I learned my lesson,\nthough, and didn\u0027t make the equivalent base/logging.h change.)\n\nI\u0027m not sure whether we want to keep the unix_file MappedFile given\nour existing MemMap, but it\u0027s easier to bring it over and then remove\nit (and possibly revert the removal) than to bring it over later.\n\nChange-Id: Id50a66faa5ab17b9bc936cc9043dbc26f791f0ca\n"
    },
    {
      "commit": "7331813aa84c82f003b58da7a9225622f8b0eeeb",
      "tree": "27d605e356312e8c067fff33eb98b362742edde1",
      "parents": [
        "1cac343f8621a81bcd3f52f8eee0f497a66d7408"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 12:05:56 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 12:05:56 2012 -0800"
      },
      "message": "Remove now unused RelocateExecutable\n\nChange-Id: Ief03e9154d038fa977fe5eb38b1b9aef6659231f\n"
    },
    {
      "commit": "1cac343f8621a81bcd3f52f8eee0f497a66d7408",
      "tree": "b2c2dc7326ae708e4d2aa185c6234df8341d3dcc",
      "parents": [
        "89c41e5f2fa10e7b97698b9714bd4883a73132f0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 10:56:22 2012 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Dec 12 10:56:22 2012 -0800"
      },
      "message": "Remove now unused RelocationBehavior\n\nChange-Id: Ifdb98a63376014a698b53bc926fb1c5512dc2e57\n"
    },
    {
      "commit": "2bcb4a496b7aa00d996df3a070524f7568fb35a1",
      "tree": "8422ab8d65b7422008094b2eaadec0dad87b2df3",
      "parents": [
        "efc6369224b036a1fb77849f7ae65b3492c832c0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 08 10:39:18 2012 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Nov 16 14:01:34 2012 -0800"
      },
      "message": "Add \"kind\" argument to Get/SetVReg.\n\nIn order to determine where a register is promoted its necessary to know\nthe kind of use of the register.\nExtend notion of precise-ness to numeric verifier register types.\nDump verifier output in oatdump.\nDump vregs with their location or constant value.\nIntroduce indenting ostream utility.\n\nChange-Id: Ia3d29497877976bc24465484743bca08236e1768\n"
    },
    {
      "commit": "725a957985171d712d5c048cc3d00ff14968784b",
      "tree": "3bd4b161268ecd477aa471665316fb27a3dda145",
      "parents": [
        "35883cc623fdf475a4ead1dafcba9e9becc1ed11"
      ],
      "author": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 13 18:20:12 2012 -0800"
      },
      "committer": {
        "name": "jeffhao",
        "email": "jeffhao@google.com",
        "time": "Wed Nov 14 11:42:33 2012 -0800"
      },
      "message": "Pulled out instrumentation into its own class separate from trace.\n\nThis is in preparation for Ian\u0027s debugger changes. The instrumentation\nstill needs support for debugging, which I\u0027ll add later.\n\nChange-Id: I29ce0af1ff2eaec8f6d2f54963263381363ebf72\n"
    },
    {
      "commit": "02b6a78038f12c109f95eb31713cfc747f5512f1",
      "tree": "c36841561a47b2ce3cf15b00fdae822e5a6c5b64",
      "parents": [
        "bcc2926b9721f94c17ed98fae5264cc98f0e066f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 26 13:51:26 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 06 16:07:36 2012 -0800"
      },
      "message": "Parellel mark stack processing\n\nEnabled parallel mark stack processing by using a thread pool.\n\nOptimized object scanning by removing dependent loads for IsClass.\n\nPerformance:\nPrime: ~10% speedup of partial GC.\nNakasi: ~50% speedup of partial GC.\n\nChange-Id: I43256a068efc47cb52d93108458ea18d4e02fccc\n"
    },
    {
      "commit": "64b6d145fa53b8dfb07a8fc2426af13f155d5a4d",
      "tree": "727647da235e21508d6661c7e2a780ff8ee2003e",
      "parents": [
        "0f79d728370ab51b9b16a356b058c48330f43148"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Mon Oct 29 16:34:15 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Nov 01 17:26:15 2012 -0700"
      },
      "message": "Interpret class initializers when building image.\n\nWe initialize all image classes with the interpreter if they have a\nclass/static initializer.\nBlack list classes whose initializers need access to on device native\ncode. If such classes are added to the image classes they will fail when\nthey attempt to enter JNI code. A number of \"intrinsic\" style JNI\nroutines are special cased to allow more than just trivial class\ninitializers to run.\nAdd a lock for initialization in the compiler to serialize the execution\nof class initializers and avoid deadlock.\nRemove InSourceSpace from image writer (cruft) and teach the image writer\nto fix up referent fields in references.\nFix bugs in the interprerter and implement filled-new-array.\nFactor some VM code to more easily share between the interpreter and\nJNI entry points.\n\nChange-Id: I6bb811dea84f1b82260b1a4e73ac7412179c0b41\n"
    },
    {
      "commit": "e35517ad40e0713df8420aeb5d3540f146a59f62",
      "tree": "b9f5a153774d89c73545365d54cc7e4128ce3d76",
      "parents": [
        "4696b5b20be2f51f4ada5f3771a205d90bff351d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 30 18:49:55 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 31 16:38:12 2012 -0700"
      },
      "message": "Remove disable card marks, fix SetPatchLocation.\n\nShould slightly improve performance. Added a no thread suspension allowed in patch oat code and\nmethods.\n\nAdded a new function to class linker, GetOatCodeFor which takes in a method reference instead of\npointer.\n\nThis fixes the issue where pruned methods were getting re-loaded during code and method patching.\n\nChange-Id: I676bb88cb021b6d2e0db00adbcf1f2f04f82b72a\n"
    },
    {
      "commit": "2fa6b2e2fc3d2a2fc27808ce518dc76b80ce369a",
      "tree": "daba5f5e64409452e31ae42e3b1b6b6491ccb007",
      "parents": [
        "6ed960d260d0ec3cbbef455c646ccd47f4e78119"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Oct 17 00:10:17 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Oct 26 16:12:59 2012 -0700"
      },
      "message": "Interpreter.\n\nThe opcodes filled-new-array and packed-switch aren\u0027t implemented but\nare trivial given that they are variants of implemented opcodes.\nRefactor Field::Get routines to take the declaring class in the case of\nstatic field accesses. This avoids a check on every use of a field.\nRefactor arg array builder to be shared by JNI invokes and invocations\ninto the interpreter.\nFix benign bug in const decoding in the verifier.\n\nChange-Id: I8dee6c1f4b7f033e6c003422c56e9471cfaccda8\n"
    },
    {
      "commit": "6ffd0967027c092a62d7100ca42ceded369c8ca1",
      "tree": "95a87e608aab1934058204c0ae7a3a85a8e8601f",
      "parents": [
        "9281f004db3f194930ef34d31e5d80c98341f38f"
      ],
      "author": {
        "name": "mikaelpeltier",
        "email": "mikaelpeltier@google.com",
        "time": "Thu Oct 25 15:37:45 2012 +0200"
      },
      "committer": {
        "name": "mikaelpeltier",
        "email": "mikaelpeltier@google.com",
        "time": "Fri Oct 26 10:40:19 2012 +0200"
      },
      "message": "Add Jack modifier.\n\nBug: 7419545\nChange-Id: I58f40e11f3b3256ca7f7922f12b7bdeef724930f\n"
    },
    {
      "commit": "28db0129e5d7ef642cf8845c86c0e11832817085",
      "tree": "3f1ca5abeb2e622e193573165bf20a626447337e",
      "parents": [
        "a85b8376740641f13dc078aea6be94d15a800803"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 18 16:20:41 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 18 22:26:03 2012 -0700"
      },
      "message": "Add oat file dependency on boot.oat load location\n\nChange-Id: I89742e361675bd4e5177e3af213bcc826ddd60de\n"
    },
    {
      "commit": "a85b8376740641f13dc078aea6be94d15a800803",
      "tree": "b6eba1210de1e98d66c0011c599997322f7714b8",
      "parents": [
        "2e92fd62b8b1e3a14be4642d4e77a022d863a94e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 18 17:00:32 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 18 18:13:32 2012 -0700"
      },
      "message": "Update image oat checksum when patching\n\nChange-Id: I766d2745bc817a5cb3a36d62bc733bab43a31fe0\n"
    },
    {
      "commit": "88f365433dd8412a80258847e0b0359b125c06c2",
      "tree": "9a646f251ca1f64e1718bc47c2f65393db22afaf",
      "parents": [
        "dc1cd1037bf1b81c55b842b230fcc5f0d1e73003"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 16 23:24:21 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 17 10:51:25 2012 -0700"
      },
      "message": "Add support for Value Format VALUE_TYPE in the encoded_array_item used for initial values of static field references from a class_def_item\n\nBug: 7356558\nChange-Id: I2bef6de9b41605f17518bbcc72907bf5a92c6c26\n"
    },
    {
      "commit": "9ebae1f30b84dfd8dab4144f80eebec4f8fc8851",
      "tree": "379f7606cf7c1b5bbeb41caccc4cb681fc1ef2b4",
      "parents": [
        "30de32dec8dba21f7fec117b779c2b4e6bb4e4e6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 15 17:38:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 16 10:05:04 2012 -0700"
      },
      "message": "Concurrent class linker and intern table root marking\n\nWe now mark the class linker and intern table roots concurrently\n(with mutators unpaused), only re-marking these roots in the second pause if\nthey get dirtied.\n\nReduces root marking time by ~1ms for each pause.\n\nChange-Id: I833fc557bac9a2930868db715587318293fa4655\n"
    },
    {
      "commit": "9bc81918a2c663339f7739d9cf968f354506e3a7",
      "tree": "372dc5beb2969c5467d1553cee583130085e442f",
      "parents": [
        "3cc3981018b0eb2c4f1b05ed620d8aad36098e7e"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 11 21:43:36 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 11 22:56:17 2012 -0700"
      },
      "message": "Flatten interface entries into the iftable.\n\nAvoid an indirection when scanning the iftable by inlining the interface\nentry into the iftable.\nCopy the iftable for marker interfaces from parents to their children\n(for example for exceptions).\nDon\u0027t allocate method arrays for 0 element interface method tables.\n\nChange-Id: I8402960d4ddbe4b1ffd335ed4ce4b4825210fd0d\n"
    },
    {
      "commit": "155dfe958412b71ab2adcc21611217c22277ec69",
      "tree": "91db1d5a368c8b9bc26a432064a272ce2a788051",
      "parents": [
        "bac4334bb222e24fb3a080b69de0262a39e397c2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 09 14:24:49 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 11 18:18:21 2012 -0700"
      },
      "message": "More Gc statistics and logging\n\nAdded a few metrics to Gc performance measurements:\nMean GC throughput, total time spent in Gc, total time spent in allocation code, mean time per allocation.\n\nSlightly optimized object allocation.\n\nChange-Id: Ie68153a7100affafc4a01dab34b341077e754867\n"
    },
    {
      "commit": "52813c93d1319964cea01ff6714a01880fd1c501",
      "tree": "1770b66312ad5a8a6d33e7536e585a259317591f",
      "parents": [
        "1aae273f8827bcbfff6b00c5babd77a111852272"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 11 11:50:38 2012 -0700"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Thu Oct 11 13:51:31 2012 -0700"
      },
      "message": "Fix typo.\n\nChange-Id: Id7ac8c14aa201b018c5dc3c77ad2089449d03ae4\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": "d8195f19840911a73b1491dfc8e7c18139753731",
      "tree": "0df5a92659dc0472f5368695a2e33ac37c149666",
      "parents": [
        "59e5384d894836ace0b8ea22ff12d26ffb3026d4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 05 12:21:28 2012 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 08 10:53:25 2012 -0700"
      },
      "message": "Reduce mark stack / allocation stack / live stack address space usage.\n\nWe now have upper bounds on the stack sizes so that we don\u0027t run out of\nvirtual addresses with large heaps.\n\nRename mark stack to atomic stack, which now takes any data type.\n\nAdded behaviour to force GC when the allocation stack becomes too full.\n\nAdded a new special map for reserving the oat file address range.\n\nChange-Id: I5169dd98b5f5072ac67637798da50cb8fc68af2b\n"
    }
  ],
  "next": "4445a7e3398a6143939168097a3aa275b734504d"
}
